Created
March 18, 2015 20:24
-
-
Save kangaroo/8c0164bf35283b998f5b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/debug/di/amd64/floatconversion.S b/src/debug/di/amd64/floatconversion.S | |
index ae02176..932fcf3 100644 | |
--- a/src/debug/di/amd64/floatconversion.S | |
+++ b/src/debug/di/amd64/floatconversion.S | |
@@ -9,4 +9,4 @@ | |
LEAF_ENTRY FPFillR8, _TEXT | |
movdqa xmm0, [rdi] | |
ret | |
-LEAF_END FPFillR8, _TEXT | |
+LEAF_END FPFillR8, _TEXT, Unwind | |
diff --git a/src/debug/ee/amd64/dbghelpers.S b/src/debug/ee/amd64/dbghelpers.S | |
index 7debc0e..facb784 100644 | |
--- a/src/debug/ee/amd64/dbghelpers.S | |
+++ b/src/debug/ee/amd64/dbghelpers.S | |
@@ -33,7 +33,7 @@ NESTED_ENTRY FuncEvalHijack, _TEXT, FuncEvalHijackPersonalityRoutine | |
// | |
add rsp, 20h | |
TAILJMP_RAX | |
-NESTED_END FuncEvalHijack, _TEXT | |
+NESTED_END FuncEvalHijack, _TEXT, Unwind | |
//extern ExceptionHijackWorker:proc | |
@@ -91,7 +91,7 @@ NESTED_ENTRY ExceptionHijack, _TEXT, ExceptionHijackPersonalityRoutine | |
// Put a label here to tell the debugger where the end of this function is. | |
PATCH_LABEL ExceptionHijackEnd | |
-NESTED_END ExceptionHijack, _TEXT | |
+NESTED_END ExceptionHijack, _TEXT, Unwind | |
// | |
// Flares for interop debugging. | |
@@ -105,7 +105,7 @@ LEAF_ENTRY SignalHijackStartedFlare, _TEXT | |
// make sure that the basic block is unique | |
test rax,1 | |
ret | |
-LEAF_END SignalHijackStartedFlare, _TEXT | |
+LEAF_END SignalHijackStartedFlare, _TEXT, Unwind | |
// Start the handoff | |
LEAF_ENTRY ExceptionForRuntimeHandoffStartFlare, _TEXT | |
@@ -113,7 +113,7 @@ LEAF_ENTRY ExceptionForRuntimeHandoffStartFlare, _TEXT | |
// make sure that the basic block is unique | |
test rax,2 | |
ret | |
-LEAF_END ExceptionForRuntimeHandoffStartFlare, _TEXT | |
+LEAF_END ExceptionForRuntimeHandoffStartFlare, _TEXT, Unwind | |
// Finish the handoff. | |
LEAF_ENTRY ExceptionForRuntimeHandoffCompleteFlare, _TEXT | |
@@ -121,7 +121,7 @@ LEAF_ENTRY ExceptionForRuntimeHandoffCompleteFlare, _TEXT | |
// make sure that the basic block is unique | |
test rax,3 | |
ret | |
-LEAF_END ExceptionForRuntimeHandoffCompleteFlare, _TEXT | |
+LEAF_END ExceptionForRuntimeHandoffCompleteFlare, _TEXT, Unwind | |
// Signal execution return to unhijacked state | |
LEAF_ENTRY SignalHijackCompleteFlare, _TEXT | |
@@ -129,7 +129,7 @@ LEAF_ENTRY SignalHijackCompleteFlare, _TEXT | |
// make sure that the basic block is unique | |
test rax,4 | |
ret | |
-LEAF_END SignalHijackCompleteFlare, _TEXT | |
+LEAF_END SignalHijackCompleteFlare, _TEXT, Unwind | |
// This exception is from unmanaged code. | |
LEAF_ENTRY ExceptionNotForRuntimeFlare, _TEXT | |
@@ -137,7 +137,7 @@ LEAF_ENTRY ExceptionNotForRuntimeFlare, _TEXT | |
// make sure that the basic block is unique | |
test rax,5 | |
ret | |
-LEAF_END ExceptionNotForRuntimeFlare, _TEXT | |
+LEAF_END ExceptionNotForRuntimeFlare, _TEXT, Unwind | |
// The Runtime is synchronized. | |
LEAF_ENTRY NotifyRightSideOfSyncCompleteFlare, _TEXT | |
@@ -145,4 +145,4 @@ LEAF_ENTRY NotifyRightSideOfSyncCompleteFlare, _TEXT | |
// make sure that the basic block is unique | |
test rax,6 | |
ret | |
-LEAF_END NotifyRightSideOfSyncCompleteFlare, _TEXT | |
+LEAF_END NotifyRightSideOfSyncCompleteFlare, _TEXT, Unwind | |
diff --git a/src/pal/inc/unixasmmacros.inc b/src/pal/inc/unixasmmacros.inc | |
index 22b4f7e..eac29e0 100644 | |
--- a/src/pal/inc/unixasmmacros.inc | |
+++ b/src/pal/inc/unixasmmacros.inc | |
@@ -48,7 +48,7 @@ C_FUNC(\Name): | |
.macro LEAF_ENTRY Name, Section | |
.global C_FUNC(\Name) | |
#if defined(__APPLE__) | |
- .text | |
+ .section __TEXT,__text,regular,pure_instructions | |
#else | |
.type \Name, %function | |
#endif | |
@@ -56,17 +56,28 @@ C_FUNC(\Name): | |
.cfi_startproc | |
.endm | |
-.macro LEAF_END_MARKED Name, Section | |
+.macro LEAF_END_MARKED Name, Section, EmitUnwind | |
C_FUNC(\Name\()_End): | |
.global C_FUNC(\Name\()_End) | |
#if !defined(__APPLE__) | |
.size \Name, .-\Name | |
#endif | |
.cfi_endproc | |
+#if defined(__APPLE__) | |
+ .ifnc \EmitUnwind, NoUnwind | |
+ .section __LD,__compact_unwind,regular,debug | |
+ .quad C_FUNC(\Name) | |
+ .set C_FUNC(\Name\()_Size), C_FUNC(\Name\()_End) - C_FUNC(\Name) | |
+ .long C_FUNC(\Name\()_Size) | |
+ .long 0x04000000 # DWARF | |
+ .quad 0 | |
+ .quad 0 | |
+ .endif | |
+#endif | |
.endm | |
-.macro LEAF_END Name, Section | |
- LEAF_END_MARKED \Name, \Section | |
+.macro LEAF_END Name, Section, EmitUnwind | |
+ LEAF_END_MARKED \Name, \Section, \EmitUnwind | |
.endm | |
.macro PREPARE_EXTERNAL_VAR Name, HelperReg | |
@@ -92,8 +103,8 @@ C_FUNC(\Name\()_End): | |
.endif | |
.endm | |
-.macro NESTED_END Name, Section | |
- LEAF_END \Name, \Section | |
+.macro NESTED_END Name, Section, EmitUnwind | |
+ LEAF_END \Name, \Section, \EmitUnwind | |
.endm | |
.macro END_PROLOGUE | |
diff --git a/src/pal/src/arch/i386/context2.S b/src/pal/src/arch/i386/context2.S | |
index c1aaf73..904f089 100644 | |
--- a/src/pal/src/arch/i386/context2.S | |
+++ b/src/pal/src/arch/i386/context2.S | |
@@ -146,12 +146,12 @@ LEAF_ENTRY CONTEXT_CaptureContext, _TEXT | |
mov [rdi + CONTEXT_Dr7], rdx | |
4: | |
ret | |
-LEAF_END CONTEXT_CaptureContext, _TEXT | |
+LEAF_END CONTEXT_CaptureContext, _TEXT, Unwind | |
LEAF_ENTRY RtlCaptureContext, _TEXT | |
mov DWORD PTR [rdi + CONTEXT_ContextFlags], (CONTEXT_AMD64 | CONTEXT_FULL | CONTEXT_SEGMENTS) | |
jmp C_FUNC(CONTEXT_CaptureContext) | |
-LEAF_END RtlCaptureContext, _TEXT | |
+LEAF_END RtlCaptureContext, _TEXT, Unwind | |
#else | |
diff --git a/src/vm/amd64/calldescrworkeramd64.S b/src/vm/amd64/calldescrworkeramd64.S | |
index efee6f3..3211fb6 100644 | |
--- a/src/vm/amd64/calldescrworkeramd64.S | |
+++ b/src/vm/amd64/calldescrworkeramd64.S | |
@@ -37,7 +37,7 @@ NESTED_ENTRY FastCallFinalizeWorker, _TEXT, NoHandler | |
ret | |
-NESTED_END FastCallFinalizeWorker, _TEXT | |
+NESTED_END FastCallFinalizeWorker, _TEXT, Unwind | |
//extern "C" void CallDescrWorkerInternal(CallDescrData * pCallDescrData); | |
@@ -129,6 +129,4 @@ LOCAL_LABEL(ReturnsDouble): | |
movsd real8 ptr [rbx+CallDescrData__returnValue], xmm0 | |
jmp LOCAL_LABEL(Epilog) | |
-NESTED_END CallDescrWorkerInternal, _TEXT | |
- | |
- | |
+NESTED_END CallDescrWorkerInternal, _TEXT, Unwind | |
diff --git a/src/vm/amd64/crthelpers.S b/src/vm/amd64/crthelpers.S | |
index 5183e30..c6d4704 100644 | |
--- a/src/vm/amd64/crthelpers.S | |
+++ b/src/vm/amd64/crthelpers.S | |
@@ -26,7 +26,7 @@ LEAF_ENTRY JIT_MemSet, _TEXT | |
Exit_MemSet: | |
ret | |
-LEAF_END_MARKED JIT_MemSet, _TEXT | |
+LEAF_END_MARKED JIT_MemSet, _TEXT, Unwind | |
LEAF_ENTRY JIT_MemCpy, _TEXT | |
test rdx, rdx | |
@@ -40,4 +40,4 @@ LEAF_ENTRY JIT_MemCpy, _TEXT | |
Exit_MemCpy: | |
ret | |
-LEAF_END_MARKED JIT_MemCpy, _TEXT | |
+LEAF_END_MARKED JIT_MemCpy, _TEXT, Unwind | |
diff --git a/src/vm/amd64/externalmethodfixupthunk.S b/src/vm/amd64/externalmethodfixupthunk.S | |
index ed58f70..2538004 100644 | |
--- a/src/vm/amd64/externalmethodfixupthunk.S | |
+++ b/src/vm/amd64/externalmethodfixupthunk.S | |
@@ -26,7 +26,7 @@ NESTED_ENTRY ExternalMethodFixupStub, _TEXT, ProcessCLRException | |
PATCH_LABEL ExternalMethodFixupPatchLabel | |
TAILJMP_RAX | |
-NESTED_END ExternalMethodFixupStub, _TEXT | |
+NESTED_END ExternalMethodFixupStub, _TEXT, Unwind | |
//============================================================================================ | |
@@ -44,4 +44,4 @@ NESTED_ENTRY VirtualMethodFixupStub, _TEXT, ProcessCLRException | |
PATCH_LABEL VirtualMethodFixupPatchLabel | |
TAILJMP_RAX | |
-NESTED_END VirtualMethodFixupStub, _TEXT | |
+NESTED_END VirtualMethodFixupStub, _TEXT, Unwind | |
diff --git a/src/vm/amd64/getstate.S b/src/vm/amd64/getstate.S | |
index 25ba115..ec12ff7 100644 | |
--- a/src/vm/amd64/getstate.S | |
+++ b/src/vm/amd64/getstate.S | |
@@ -13,7 +13,7 @@ LEAF_ENTRY GetCurrentSP, _TEXT | |
add rax, 8 | |
ret | |
-LEAF_END GetCurrentSP, _TEXT | |
+LEAF_END GetCurrentSP, _TEXT, Unwind | |
LEAF_ENTRY GetCurrentIP, _TEXT | |
@@ -21,7 +21,7 @@ LEAF_ENTRY GetCurrentIP, _TEXT | |
mov rax, [rsp] | |
ret | |
-LEAF_END GetCurrentIP, _TEXT | |
+LEAF_END GetCurrentIP, _TEXT, Unwind | |
// EXTERN_C void LazyMachStateCaptureState(struct LazyMachState *pState) | |
@@ -45,4 +45,4 @@ LEAF_ENTRY LazyMachStateCaptureState, _TEXT | |
ret | |
-LEAF_END LazyMachStateCaptureState, _TEXT | |
+LEAF_END LazyMachStateCaptureState, _TEXT, Unwind | |
diff --git a/src/vm/amd64/jithelpers_fast.S b/src/vm/amd64/jithelpers_fast.S | |
index a981254..2e71e51 100644 | |
--- a/src/vm/amd64/jithelpers_fast.S | |
+++ b/src/vm/amd64/jithelpers_fast.S | |
@@ -9,7 +9,7 @@ | |
// Mark start of the code region that we patch at runtime | |
LEAF_ENTRY JIT_PatchedCodeStart, _TEXT | |
ret | |
-LEAF_END JIT_PatchedCodeStart, _TEXT | |
+LEAF_END JIT_PatchedCodeStart, _TEXT, NoUnwind | |
// This is used by the mechanism to hold either the JIT_WriteBarrier_PreGrow | |
// or JIT_WriteBarrier_PostGrow code (depending on the state of the GC). It _WILL_ | |
@@ -73,12 +73,12 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT | |
// make sure this guy is bigger than any of the other guys | |
.balign 16 | |
nop | |
-LEAF_END_MARKED JIT_WriteBarrier, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier, _TEXT, NoUnwind | |
// Mark start of the code region that we patch at runtime | |
LEAF_ENTRY JIT_PatchedCodeLast, _TEXT | |
ret | |
-LEAF_END JIT_PatchedCodeLast, _TEXT | |
+LEAF_END JIT_PatchedCodeLast, _TEXT, NoUnwind | |
// There is an even more optimized version of these helpers possible which takes | |
// advantage of knowledge of which way the ephemeral heap is growing to only do 1/2 | |
@@ -115,7 +115,7 @@ LEAF_ENTRY JIT_CheckedWriteBarrier, _TEXT | |
// See comment above about possible AV | |
mov [rdi], rsi | |
ret | |
-LEAF_END_MARKED JIT_CheckedWriteBarrier, _TEXT | |
+LEAF_END_MARKED JIT_CheckedWriteBarrier, _TEXT, NoUnwind | |
// JIT_ByRefWriteBarrier has weird symantics, see usage in StubLinkerX86.cpp | |
// | |
@@ -248,4 +248,4 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT | |
add rsi, 8h | |
pop rax | |
ret | |
-LEAF_END JIT_ByRefWriteBarrier, _TEXT | |
+LEAF_END JIT_ByRefWriteBarrier, _TEXT, NoUnwind | |
diff --git a/src/vm/amd64/jithelpers_fastwritebarriers.S b/src/vm/amd64/jithelpers_fastwritebarriers.S | |
index 1e225b0..0e710d0 100644 | |
--- a/src/vm/amd64/jithelpers_fastwritebarriers.S | |
+++ b/src/vm/amd64/jithelpers_fastwritebarriers.S | |
@@ -38,7 +38,7 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow32_PatchLabel_CardTable_Update | |
.balign 16 | |
Exit_PreGrow32: | |
REPRET | |
-LEAF_END_MARKED JIT_WriteBarrier_PreGrow32, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_PreGrow32, _TEXT, NoUnwind | |
.balign 8 | |
LEAF_ENTRY JIT_WriteBarrier_PreGrow64, _TEXT | |
@@ -79,7 +79,7 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardTable | |
.balign 16 | |
Exit_PreGrow64: | |
REPRET | |
-LEAF_END_MARKED JIT_WriteBarrier_PreGrow64, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_PreGrow64, _TEXT, NoUnwind | |
.balign 8 | |
// See comments for JIT_WriteBarrier_PreGrow (above). | |
@@ -133,7 +133,7 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardTable | |
.balign 16 | |
Exit_PostGrow64: | |
REPRET | |
-LEAF_END_MARKED JIT_WriteBarrier_PostGrow64, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_PostGrow64, _TEXT, NoUnwind | |
.balign 4 | |
LEAF_ENTRY JIT_WriteBarrier_PostGrow32, _TEXT | |
@@ -178,7 +178,7 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow32_PatchLabel_UpdateCardTable | |
.balign 16 | |
Exit_PostGrow32: | |
REPRET | |
-LEAF_END_MARKED JIT_WriteBarrier_PostGrow32, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_PostGrow32, _TEXT, NoUnwind | |
.balign 4 | |
@@ -212,7 +212,7 @@ PATCH_LABEL JIT_WriteBarrier_SVR32_PatchLabel_UpdateCardTable | |
UpdateCardTable_SVR32: | |
mov byte ptr [rdi + 0F0F0F0F0h], 0FFh | |
ret | |
-LEAF_END_MARKED JIT_WriteBarrier_SVR32, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_SVR32, _TEXT, NoUnwind | |
.balign 8 | |
LEAF_ENTRY JIT_WriteBarrier_SVR64, _TEXT | |
@@ -244,4 +244,4 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardTable | |
UpdateCardTable_SVR64: | |
mov byte ptr [rdi + rax], 0FFh | |
ret | |
-LEAF_END_MARKED JIT_WriteBarrier_SVR64, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_SVR64, _TEXT, NoUnwind | |
diff --git a/src/vm/amd64/jithelpers_slow.S b/src/vm/amd64/jithelpers_slow.S | |
index 0cd5768..b9d9a44 100644 | |
--- a/src/vm/amd64/jithelpers_slow.S | |
+++ b/src/vm/amd64/jithelpers_slow.S | |
@@ -95,6 +95,6 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT | |
.balign 16 | |
Exit_Debug: | |
REPRET | |
-LEAF_END_MARKED JIT_WriteBarrier_Debug, _TEXT | |
+LEAF_END_MARKED JIT_WriteBarrier_Debug, _TEXT, NoUnwind | |
#endif | |
diff --git a/src/vm/amd64/theprestubamd64.S b/src/vm/amd64/theprestubamd64.S | |
index dd9a042..6082167 100644 | |
--- a/src/vm/amd64/theprestubamd64.S | |
+++ b/src/vm/amd64/theprestubamd64.S | |
@@ -20,12 +20,12 @@ NESTED_ENTRY ThePreStub, _TEXT, ProcessCLRException | |
EPILOG_WITH_TRANSITION_BLOCK_TAILCALL | |
TAILJMP_RAX | |
-NESTED_END ThePreStub, _TEXT | |
+NESTED_END ThePreStub, _TEXT, Unwind | |
LEAF_ENTRY ThePreStubPatch, _TEXT | |
// make sure that the basic block is unique | |
test eax,34 | |
PATCH_LABEL ThePreStubPatchLabel | |
ret | |
-LEAF_END ThePreStubPatch, _TEXT | |
+LEAF_END ThePreStubPatch, _TEXT, Unwind | |
diff --git a/src/vm/amd64/umthunkstub.S b/src/vm/amd64/umthunkstub.S | |
index 724cef7..e6d9281 100644 | |
--- a/src/vm/amd64/umthunkstub.S | |
+++ b/src/vm/amd64/umthunkstub.S | |
@@ -28,7 +28,7 @@ NESTED_ENTRY TheUMEntryPrestub, _TEXT, UMEntryPrestubUnwindFrameChainHandler | |
POP_ARGUMENT_REGISTERS | |
TAILJMP_RAX | |
-NESTED_END TheUMEntryPrestub, _TEXT | |
+NESTED_END TheUMEntryPrestub, _TEXT , Unwind | |
// | |
// METHODDESC_REGISTER: UMEntryThunk* | |
@@ -189,7 +189,7 @@ LOCAL_LABEL(WrongAppDomain): | |
int3 | |
#endif | |
-NESTED_END UMThunkStub, _TEXT | |
+NESTED_END UMThunkStub, _TEXT, Unwind | |
// | |
// EXTERN_C void __stdcall UM2MThunk_WrapperHelper( | |
@@ -201,4 +201,4 @@ NESTED_END UMThunkStub, _TEXT | |
// | |
NESTED_ENTRY UM2MThunk_WrapperHelper, _TEXT, NoHandler | |
int3 | |
-NESTED_END UM2MThunk_WrapperHelper, _TEXT | |
+NESTED_END UM2MThunk_WrapperHelper, _TEXT, Unwind | |
diff --git a/src/vm/amd64/unixasmhelpers.S b/src/vm/amd64/unixasmhelpers.S | |
index fb96845..ced3a09 100644 | |
--- a/src/vm/amd64/unixasmhelpers.S | |
+++ b/src/vm/amd64/unixasmhelpers.S | |
@@ -29,7 +29,7 @@ LEAF_ENTRY PrecodeFixupThunk, _TEXT | |
// Tail call to prestub | |
jmp C_FUNC(ThePreStub) | |
-LEAF_END PrecodeFixupThunk, _TEXT | |
+LEAF_END PrecodeFixupThunk, _TEXT, Unwind | |
// EXTERN_C int __fastcall HelperMethodFrameRestoreState( | |
// INDEBUG_COMMA(HelperMethodFrame *pFrame) | |
@@ -82,7 +82,7 @@ DoRestore: | |
xor eax, eax | |
ret | |
-LEAF_END HelperMethodFrameRestoreState, _TEXT | |
+LEAF_END HelperMethodFrameRestoreState, _TEXT, Unwind | |
////////////////////////////////////////////////////////////////////////// | |
// | |
@@ -132,7 +132,7 @@ NESTED_ENTRY NDirectImportThunk, _TEXT, NoHandler | |
POP_ARGUMENT_REGISTERS | |
TAILJMP_RAX | |
-NESTED_END NDirectImportThunk, _TEXT | |
+NESTED_END NDirectImportThunk, _TEXT, Unwind | |
// EXTERN_C void moveOWord(LPVOID* src, LPVOID* target); | |
// <NOTE> | |
@@ -143,7 +143,7 @@ LEAF_ENTRY moveOWord, _TEXT | |
movdqu [rsi], xmm0 | |
ret | |
-LEAF_END moveOWord, _TEXT | |
+LEAF_END moveOWord, _TEXT, Unwind | |
//------------------------------------------------ | |
// JIT_RareDisableHelper | |
@@ -172,7 +172,7 @@ NESTED_ENTRY JIT_RareDisableHelper, _TEXT, NoHandler | |
pop_register rax | |
ret | |
-NESTED_END JIT_RareDisableHelper, _TEXT | |
+NESTED_END JIT_RareDisableHelper, _TEXT, Unwind | |
LEAF_ENTRY SinglecastDelegateInvokeStub, _TEXT | |
@@ -189,7 +189,7 @@ NullObject: | |
mov rdi, CORINFO_NullReferenceException_ASM | |
jmp C_FUNC(JIT_InternalThrow) | |
-LEAF_END SinglecastDelegateInvokeStub, _TEXT | |
+LEAF_END SinglecastDelegateInvokeStub, _TEXT, Unwind | |
////////////////////////////////////////////////////////////////////////// | |
// | |
@@ -227,5 +227,5 @@ LEAF_ENTRY StartUnwindingNativeFrames, _TEXT | |
push_register rax | |
push_nonvol_reg rbp | |
call EXTERNAL_C_FUNC(__cxa_rethrow) | |
-LEAF_END StartUnwindingNativeFrames, _TEXT | |
+LEAF_END StartUnwindingNativeFrames, _TEXT, Unwind | |
diff --git a/src/vm/amd64/virtualcallstubamd64.S b/src/vm/amd64/virtualcallstubamd64.S | |
index 043d12b..b79d3cc 100644 | |
--- a/src/vm/amd64/virtualcallstubamd64.S | |
+++ b/src/vm/amd64/virtualcallstubamd64.S | |
@@ -41,7 +41,7 @@ NESTED_ENTRY ResolveWorkerAsmStub, _TEXT, NoHandler | |
EPILOG_WITH_TRANSITION_BLOCK_TAILCALL | |
TAILJMP_RAX | |
-NESTED_END ResolveWorkerAsmStub, _TEXT | |
+NESTED_END ResolveWorkerAsmStub, _TEXT, Unwind | |
// extern void ResolveWorkerChainLookupAsmStub() | |
LEAF_ENTRY ResolveWorkerChainLookupAsmStub, _TEXT | |
@@ -87,7 +87,7 @@ Fail_RWCLAS: | |
jmp C_FUNC(ResolveWorkerAsmStub) | |
-LEAF_END ResolveWorkerChainLookupAsmStub, _TEXT | |
+LEAF_END ResolveWorkerChainLookupAsmStub, _TEXT, Unwind | |
#ifdef FEATURE_PREJIT | |
NESTED_ENTRY StubDispatchFixupStub, _TEXT, ProcessCLRException | |
@@ -106,5 +106,5 @@ NESTED_ENTRY StubDispatchFixupStub, _TEXT, ProcessCLRException | |
PATCH_LABEL StubDispatchFixupPatchLabel | |
TAILJMP_RAX | |
-NESTED_END StubDispatchFixupStub, _TEXT | |
+NESTED_END StubDispatchFixupStub, _TEXT, Unwind | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment