From a8fc545442ea115a0491afd5df960d7be8a29c52 Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Mon, 10 Apr 2017 21:51:10 +0900 Subject: [PATCH] [x86/Linux] 16-byte aligned ResolveWorkerChainLookupAsmStub (dotnet/coreclr#10754) Commit migrated from https://github.com/dotnet/coreclr/commit/14297c85ddef362b18f758b15dfac05de0601f4a --- src/coreclr/src/vm/i386/asmhelpers.S | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/coreclr/src/vm/i386/asmhelpers.S b/src/coreclr/src/vm/i386/asmhelpers.S index fd5a2a9..45774fa 100644 --- a/src/coreclr/src/vm/i386/asmhelpers.S +++ b/src/coreclr/src/vm/i386/asmhelpers.S @@ -1135,11 +1135,19 @@ LOCAL_LABEL(main_loop): // be quick to reset the counter so we don't get a bunch of contending threads mov dword ptr [edx], CALL_STUB_CACHE_INITIAL_SUCCESS_COUNT + #define STACK_ALIGN_PADDING 12 + sub esp, STACK_ALIGN_PADDING + // promote the entry to the beginning of the chain mov ecx, eax + + CHECK_STACK_ALIGNMENT // call C_FUNC(VirtualCallStubManager::PromoteChainEntry) call C_FUNC(_ZN22VirtualCallStubManager17PromoteChainEntryEP16ResolveCacheElem) + add esp, STACK_ALIGN_PADDING + #undef STACK_ALIGN_PADDING + LOCAL_LABEL(nopromote): pop ecx -- 2.7.4