+/**\r
+ This macro aligns the address of a variable with auto storage\r
+ duration down to CPU_STACK_ALIGNMENT.\r
+\r
+ Since the stack grows downward, the result preserves more of the\r
+ stack than the original address (or the same amount), not less.\r
+**/\r
+#define STACK_ALIGN_DOWN(Ptr) \\r
+ ((UINTN)(Ptr) & ~(UINTN)(CPU_STACK_ALIGNMENT - 1))\r
+\r