// Maximum legal EBC address\r
//\r
#define MAX_ADDRESS ((UINTN) ~0)\r
+\r
+//\r
+// The stack alignment required for EBC\r
+//\r
+#define CPU_STACK_ALIGNMENT sizeof(UINTN)\r
+\r
//\r
// Modifier to ensure that all protocol member functions and EFI intrinsics\r
// use the correct C calling convention. All protocol member functions and\r
//\r
#define MAX_ADDRESS 0xFFFFFFFF\r
\r
+//\r
+// The stack alignment required for IA-32\r
+//\r
+#define CPU_STACK_ALIGNMENT sizeof(UINTN)\r
+\r
//\r
// Modifier to ensure that all protocol member functions and EFI intrinsics\r
// use the correct C calling convention. All protocol member functions and\r
//\r
#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL\r
\r
+//\r
+// Per the Itanium Software Conventions and Runtime Architecture Guide,\r
+// section 3.3.4, IPF stack must always be 16-byte aligned.\r
+//\r
+#define CPU_STACK_ALIGNMENT 16\r
+\r
//\r
// Modifier to ensure that all protocol member functions and EFI intrinsics\r
// use the correct C calling convention. All protocol member functions and\r
#define MAX_2_BITS 0xC000000000000000\r
\r
//\r
-// Maximum legal Itanium-based address\r
+// Maximum legal X64 address\r
//\r
#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF\r
\r
+//\r
+// The stack alignment required for X64\r
+//\r
+#define CPU_STACK_ALIGNMENT sizeof(UINTN)\r
+\r
//\r
// Modifier to ensure that all protocol member functions and EFI intrinsics\r
// use the correct C calling convention. All protocol member functions and\r