diff options
Diffstat (limited to 'src/vm/i386/asmhelpers.S')
-rw-r--r-- | src/vm/i386/asmhelpers.S | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/vm/i386/asmhelpers.S b/src/vm/i386/asmhelpers.S index 98525aceee..75f4a26a80 100644 --- a/src/vm/i386/asmhelpers.S +++ b/src/vm/i386/asmhelpers.S @@ -439,6 +439,7 @@ NESTED_ENTRY OnHijackTripThread, _TEXT, NoHandler sub esp,12 push esp + CHECK_STACK_ALIGNMENT call C_FUNC(OnHijackWorker) // unused space for floating point state @@ -474,6 +475,7 @@ NESTED_ENTRY OnHijackFPTripThread, _TEXT, NoHandler fstp QWORD PTR [esp] push esp + CHECK_STACK_ALIGNMENT call C_FUNC(OnHijackWorker) // restore top of the floating point stack @@ -752,8 +754,10 @@ NESTED_ENTRY StubDispatchFixupStub, _TEXT, NoHandler mov esi, esp - push 0 - push 0 +.att_syntax + pushl $0 + pushl $0 +.intel_syntax noprefix push eax // siteAddrForRegisterIndirect (for tailcalls) push esi // pTransitionBlock @@ -784,8 +788,10 @@ NESTED_ENTRY ExternalMethodFixupStub, _TEXT_ NoHandler // EAX is return address into CORCOMPILE_EXTERNAL_METHOD_THUNK. Subtract 5 to get start address. sub eax, 5 - push 0 - push 0 +.att_syntax + pushl $0 + pushl $0 +.intel_syntax noprefix push eax @@ -811,6 +817,14 @@ PATCH_LABEL ExternalMethodFixupPatchLabel NESTED_END ExternalMethodFixupStub, _TEXT #ifdef FEATURE_READYTORUN +NESTED_ENTRY DynamicHelperArgsStub, _TEXT, NoHandler + .cfi_def_cfa_offset 16 + CHECK_STACK_ALIGNMENT + call eax + add esp, 12 + ret +NESTED_END DynamicHelperArgsStub, _TEXT + // ========================================================================== NESTED_ENTRY DelayLoad_MethodCall, _TEXT, NoHandler STUB_PROLOG_2_HIDDEN_ARGS @@ -967,6 +981,7 @@ NESTED_ENTRY DelayLoad_Helper\suffix, _TEXT, NoHandler push eax // indirection cell address. push esi // pTransitionBlock + CHECK_STACK_ALIGNMENT call C_FUNC(DynamicHelperWorker) test eax,eax jnz LOCAL_LABEL(TailCallDelayLoad_Helper\suffix) |