From cea925bc599af5cff5e3ee170b19b4535cec75bd Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Thu, 13 Apr 2017 06:44:20 +0900 Subject: [PATCH] [x86/Linux] 16-byte aligned DelayLoad_MethodCall (dotnet/coreclr#10760) Commit migrated from https://github.com/dotnet/coreclr/commit/789879bb302416c511b01442d60a037b2c6ece4a --- src/coreclr/src/vm/i386/asmhelpers.S | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/coreclr/src/vm/i386/asmhelpers.S b/src/coreclr/src/vm/i386/asmhelpers.S index 45774fa..2242c80 100644 --- a/src/coreclr/src/vm/i386/asmhelpers.S +++ b/src/coreclr/src/vm/i386/asmhelpers.S @@ -817,16 +817,19 @@ NESTED_ENTRY DelayLoad_MethodCall, _TEXT, NoHandler mov esi, esp + #define STACK_ALIGN_PADDING 4 + sub esp, STACK_ALIGN_PADDING + push ecx push edx - push eax - - // pTransitionBlock - push esi - + push esi // pTransitionBlock + CHECK_STACK_ALIGNMENT call C_FUNC(ExternalMethodFixupWorker) + add esp, STACK_ALIGN_PADDING + #undef STACK_ALIGN_PADDING + // eax now contains replacement stub. PreStubWorker will never return // NULL (it throws an exception if stub creation fails.) -- 2.7.4