From: Jonghyun Park Date: Thu, 16 Feb 2017 16:40:03 +0000 (+0900) Subject: [x86/Linux] Emit proper frame for FastGetSharedStaticBase (dotnet/coreclr#9618) X-Git-Tag: submit/tizen/20210909.063632~11030^2~8052 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=99a09df33d6637d708a624d5652f499707a551db;p=platform%2Fupstream%2Fdotnet%2Fruntime.git [x86/Linux] Emit proper frame for FastGetSharedStaticBase (dotnet/coreclr#9618) * [x86/Linux] Emit proper frame for FastGetSharedStaticBase * Adjust Stack-align Padding * Remove FEATURE_PAL ifdef Commit migrated from https://github.com/dotnet/coreclr/commit/0ec02d7375a1aa96206fd755b02e553e075ac3ae --- diff --git a/src/coreclr/src/vm/i386/jitinterfacex86.cpp b/src/coreclr/src/vm/i386/jitinterfacex86.cpp index 89b0cf7..f686e8f 100644 --- a/src/coreclr/src/vm/i386/jitinterfacex86.cpp +++ b/src/coreclr/src/vm/i386/jitinterfacex86.cpp @@ -1300,10 +1300,14 @@ void EmitFastGetSharedStaticBase(CPUSTUBLINKER *psl, CodeLabel *init, bool bCCto // DoInit: psl->EmitLabel(DoInit); -#if defined(UNIX_X86_ABI) - // sub esp, 8 ; to align the stack - psl->X86EmitSubEsp(8); -#endif + psl->X86EmitPushEBPframe(); + +#ifdef UNIX_X86_ABI +#define STACK_ALIGN_PADDING 4 + // sub esp, STACK_ALIGN_PADDING; to align the stack + psl->X86EmitSubEsp(STACK_ALIGN_PADDING); +#endif // UNIX_X86_ABI + // push edx (must be preserved) psl->X86EmitPushReg(kEDX); @@ -1313,10 +1317,14 @@ void EmitFastGetSharedStaticBase(CPUSTUBLINKER *psl, CodeLabel *init, bool bCCto // pop edx psl->X86EmitPopReg(kEDX); -#if defined(UNIX_X86_ABI) - // add esp, 8 - psl->X86EmitAddEsp(8); -#endif +#ifdef UNIX_X86_ABI + // add esp, STACK_ALIGN_PADDING + psl->X86EmitAddEsp(STACK_ALIGN_PADDING); +#undef STACK_ALIGN_PADDING +#endif // UNIX_X86_ABI + + psl->X86EmitPopReg(kEBP); + // ret psl->X86EmitReturn(0); }