From 3dff0e446a214c6a56cd1dcc7eda569ff8050dee Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Thu, 6 Apr 2017 09:47:12 +0900 Subject: [PATCH] [x86/Linux] 16-byte aligned ResolveWorkerChainLookupAsmStub --- src/vm/i386/asmhelpers.S | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/vm/i386/asmhelpers.S b/src/vm/i386/asmhelpers.S index 0ab23f1572e5..60f2ab63c86a 100644 --- a/src/vm/i386/asmhelpers.S +++ b/src/vm/i386/asmhelpers.S @@ -1117,11 +1117,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