summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b5b60e8)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1923
6f19259b-4bc3-4df7-8a09-
765794883524
//\r
#define EBC_THUNK_ALIGNMENT 16\r
\r
//\r
#define EBC_THUNK_ALIGNMENT 16\r
\r
-//\r
-// Per the IA-64 Software Conventions and Runtime Architecture Guide,\r
-// section 3.3.4, IPF stack must always be 16-byte aligned.\r
-//\r
-#define IPF_STACK_ALIGNMENT 16\r
-\r
//\r
// Opcodes for IPF instructions. We'll need to hand-create thunk code (stuffing\r
// bits) to insert a jump to the interpreter.\r
//\r
// Opcodes for IPF instructions. We'll need to hand-create thunk code (stuffing\r
// bits) to insert a jump to the interpreter.\r
//\r
FrameSize = (UINTN) FramePtr - (UINTN) EbcSp + 64;\r
Source = (VOID *) EbcSp;\r
//\r
FrameSize = (UINTN) FramePtr - (UINTN) EbcSp + 64;\r
Source = (VOID *) EbcSp;\r
- Destination = (VOID *) ((UINT8 *) EbcSp - FrameSize - IPF_STACK_ALIGNMENT);\r
- Destination = (VOID *) ((UINTN) ((UINTN) Destination + IPF_STACK_ALIGNMENT - 1) &~((UINTN) IPF_STACK_ALIGNMENT - 1));\r
+ Destination = (VOID *) ((UINT8 *) EbcSp - FrameSize - CPU_STACK_ALIGNMENT);\r
+ Destination = (VOID *) ((UINTN) ((UINTN) Destination + CPU_STACK_ALIGNMENT - 1) &~((UINTN) CPU_STACK_ALIGNMENT - 1));\r
gBS->CopyMem (Destination, Source, FrameSize);\r
EbcAsmLLCALLEX ((UINTN) CallAddr, (UINTN) Destination);\r
}\r
gBS->CopyMem (Destination, Source, FrameSize);\r
EbcAsmLLCALLEX ((UINTN) CallAddr, (UINTN) Destination);\r
}\r