From: SaeHie Park Date: Thu, 9 Feb 2017 07:27:33 +0000 (+0900) Subject: [x86/Linux] Fix stack alignment in helper stub X-Git-Tag: accepted/tizen/base/20180629.140029~2265^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=377076ef09772ce4a467c6db307e3c13bc66998a;p=platform%2Fupstream%2Fcoreclr.git [x86/Linux] Fix stack alignment in helper stub Add 8 byte padding for stack alignment before making a call --- diff --git a/src/vm/i386/jitinterfacex86.cpp b/src/vm/i386/jitinterfacex86.cpp index a80b5e6..01d8119 100644 --- a/src/vm/i386/jitinterfacex86.cpp +++ b/src/vm/i386/jitinterfacex86.cpp @@ -1397,6 +1397,10 @@ 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 // push edx (must be preserved) psl->X86EmitPushReg(kEDX); @@ -1406,6 +1410,10 @@ 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 // ret psl->X86EmitReturn(0); }