-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup unused JIT stubs in vm #111237
Cleanup unused JIT stubs in vm #111237
Changes from 14 commits
d90d78f
4592b65
99607cd
6e522ae
a930c23
2a60bd4
945e842
a83462e
b2a39a4
d9cea0f
08260ee
f1947ac
5161abf
8a26bec
b2b2ebc
e42a013
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5891,7 +5891,7 @@ void FixupDispatcherContext(DISPATCHER_CONTEXT* pDispatcherContext, CONTEXT* pCo | |
|
||
pDispatcherContext->ControlPc = (UINT_PTR) GetIP(pDispatcherContext->ContextRecord); | ||
|
||
#if defined(TARGET_ARM) || defined(TARGET_ARM64) || defined(TARGET_LOONGARCH64) || defined(TARGET_RISCV64) | ||
#if defined(TARGET_ARM64) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit: It would be nice to change the ifdef around this method to |
||
// Since this routine is used to fixup contexts for async exceptions, | ||
// clear the CONTEXT_UNWOUND_TO_CALL flag since, semantically, frames | ||
// where such exceptions have happened do not have callsites. On a similar | ||
|
@@ -5911,21 +5911,10 @@ void FixupDispatcherContext(DISPATCHER_CONTEXT* pDispatcherContext, CONTEXT* pCo | |
// be fixing it at their end, in their implementation of collided unwind. | ||
pDispatcherContext->ContextRecord->ContextFlags &= ~CONTEXT_DEBUG_REGISTERS; | ||
|
||
#ifdef TARGET_ARM | ||
// But keep the architecture flag set (its part of CONTEXT_DEBUG_REGISTERS) | ||
pDispatcherContext->ContextRecord->ContextFlags |= CONTEXT_ARM; | ||
#elif defined(TARGET_LOONGARCH64) | ||
// But keep the architecture flag set (its part of CONTEXT_DEBUG_REGISTERS) | ||
pDispatcherContext->ContextRecord->ContextFlags |= CONTEXT_LOONGARCH64; | ||
#elif defined(TARGET_RISCV64) | ||
// But keep the architecture flag set (its part of CONTEXT_DEBUG_REGISTERS) | ||
pDispatcherContext->ContextRecord->ContextFlags |= CONTEXT_RISCV64; | ||
#else // TARGET_ARM64 | ||
// But keep the architecture flag set (its part of CONTEXT_DEBUG_REGISTERS) | ||
pDispatcherContext->ContextRecord->ContextFlags |= CONTEXT_ARM64; | ||
#endif // TARGET_ARM | ||
|
||
#endif // TARGET_ARM || TARGET_ARM64 || TARGET_LOONGARCH64 || TARGET_RISCV64 | ||
#endif // TARGET_ARM64 | ||
|
||
INDEBUG(pDispatcherContext->FunctionEntry = (PT_RUNTIME_FUNCTION)INVALID_POINTER_CD); | ||
INDEBUG(pDispatcherContext->ImageBase = INVALID_POINTER_CD); | ||
|
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UNIX_AMD64 was the only platform not implementing this in ASM.
What's the requirement for this method? Can it be implemented in C for all platforms?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method has custom calling convention - it has to preserve more register than the default calling convention is guaranteed to preserve. It cannot be implemented in C in general.
I think we just got lucky on UNIX_AMD64 or this profiling scenario is not tested on Unix Amd64.