Skip to content

Commit 8176a2b

Browse files
authored
Reorganize protection flipping (#48118)
Get rid of explicit protection change to RW
1 parent 9962cfd commit 8176a2b

File tree

3 files changed

+12
-17
lines changed

3 files changed

+12
-17
lines changed

src/coreclr/vm/dllimportcallback.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,6 @@ PCODE TheUMEntryPrestubWorker(UMEntryThunk * pUMEntryThunk)
249249
if (pThread->IsAbortRequested())
250250
pThread->HandleThreadAbort();
251251

252-
#if defined(HOST_OSX) && defined(HOST_ARM64)
253-
auto jitWriteEnableHolder = PAL_JITWriteEnable(true);
254-
#endif // defined(HOST_OSX) && defined(HOST_ARM64)
255-
256252
UMEntryThunk::DoRunTimeInit(pUMEntryThunk);
257253

258254
return (PCODE)pUMEntryThunk->GetCode();
@@ -288,6 +284,11 @@ void STDCALL UMEntryThunk::DoRunTimeInit(UMEntryThunk* pUMEntryThunk)
288284

289285
{
290286
GCX_PREEMP();
287+
288+
#if defined(HOST_OSX) && defined(HOST_ARM64)
289+
auto jitWriteEnableHolder = PAL_JITWriteEnable(true);
290+
#endif // defined(HOST_OSX) && defined(HOST_ARM64)
291+
291292
pUMEntryThunk->RunTimeInit();
292293
}
293294

src/coreclr/vm/exceptionhandling.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3312,10 +3312,6 @@ DWORD_PTR ExceptionTracker::CallHandler(
33123312
break;
33133313
}
33143314

3315-
#if defined(HOST_OSX) && defined(HOST_ARM64)
3316-
auto jitWriteEnableHolder = PAL_JITWriteEnable(false);
3317-
#endif // defined(HOST_OSX) && defined(HOST_ARM64)
3318-
33193315
#ifdef USE_FUNCLET_CALL_HELPER
33203316
// Invoke the funclet. We pass throwable only when invoking the catch block.
33213317
// Since the actual caller of the funclet is the assembly helper, pass the reference
@@ -3952,10 +3948,6 @@ void ExceptionTracker::ResumeExecution(
39523948
EH_LOG((LL_INFO100, "resuming execution at 0x%p\n", GetIP(pContextRecord)));
39533949
EH_LOG((LL_INFO100, "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"));
39543950

3955-
#if defined(HOST_OSX) && defined(HOST_ARM64)
3956-
auto jitWriteEnableHolder = PAL_JITWriteEnable(false);
3957-
#endif // defined(HOST_OSX) && defined(HOST_ARM64)
3958-
39593951
RtlRestoreContext(pContextRecord, pExceptionRecord);
39603952

39613953
UNREACHABLE();

src/coreclr/vm/prestub.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1921,10 +1921,6 @@ extern "C" PCODE STDCALL PreStubWorker(TransitionBlock* pTransitionBlock, Method
19211921

19221922
ETWOnStartup(PrestubWorker_V1, PrestubWorkerEnd_V1);
19231923

1924-
#if defined(HOST_OSX) && defined(HOST_ARM64)
1925-
auto jitWriteEnableHolder = PAL_JITWriteEnable(true);
1926-
#endif // defined(HOST_OSX) && defined(HOST_ARM64)
1927-
19281924
MAKE_CURRENT_THREAD_AVAILABLE();
19291925

19301926
// Attempt to check what GC mode we are running under.
@@ -1994,7 +1990,13 @@ extern "C" PCODE STDCALL PreStubWorker(TransitionBlock* pTransitionBlock, Method
19941990
}
19951991

19961992
GCX_PREEMP_THREAD_EXISTS(CURRENT_THREAD);
1997-
pbRetVal = pMD->DoPrestub(pDispatchingMT, CallerGCMode::Coop);
1993+
{
1994+
#if defined(HOST_OSX) && defined(HOST_ARM64)
1995+
auto jitWriteEnableHolder = PAL_JITWriteEnable(true);
1996+
#endif // defined(HOST_OSX) && defined(HOST_ARM64)
1997+
1998+
pbRetVal = pMD->DoPrestub(pDispatchingMT, CallerGCMode::Coop);
1999+
}
19982000

19992001
UNINSTALL_UNWIND_AND_CONTINUE_HANDLER;
20002002
UNINSTALL_MANAGED_EXCEPTION_DISPATCHER;

0 commit comments

Comments
 (0)