From acf7c9e0750b30a9db9381e87095b78dcd515cac Mon Sep 17 00:00:00 2001 From: SingleAccretion Date: Fri, 26 May 2023 01:22:10 +0300 Subject: [PATCH] Fix a few issues The unhandled exception handling code needs to always reset the scratch block, since it'll put it into a protected region. Some helpers changed signatures in https://github.com/dotnet/runtime/pull/85962. --- src/coreclr/jit/llvm.cpp | 8 ++++---- src/coreclr/jit/llvmlower.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/coreclr/jit/llvm.cpp b/src/coreclr/jit/llvm.cpp index be3e9803b8f0..a5e97ab80eef 100644 --- a/src/coreclr/jit/llvm.cpp +++ b/src/coreclr/jit/llvm.cpp @@ -377,8 +377,8 @@ bool Llvm::helperCallHasManagedCallingConvention(CorInfoHelpAnyFunc helperFunc) // Implemented in "CoreLib\src\Internal\Runtime\CompilerHelpers\SynchronizedMethodHelpers.cs". { FUNC(CORINFO_HELP_MON_ENTER) CORINFO_TYPE_VOID, { CORINFO_TYPE_CLASS, CORINFO_TYPE_BYREF }, HFIF_SS_ARG }, { FUNC(CORINFO_HELP_MON_EXIT) CORINFO_TYPE_VOID, { CORINFO_TYPE_CLASS, CORINFO_TYPE_BYREF }, HFIF_SS_ARG }, - { FUNC(CORINFO_HELP_MON_ENTER_STATIC) CORINFO_TYPE_VOID, { CORINFO_TYPE_NATIVEINT, CORINFO_TYPE_BYREF }, HFIF_SS_ARG }, // Oddity: IntPtr used for MethodTable*. - { FUNC(CORINFO_HELP_MON_EXIT_STATIC) CORINFO_TYPE_VOID, { CORINFO_TYPE_NATIVEINT, CORINFO_TYPE_BYREF }, HFIF_SS_ARG }, // Oddity: IntPtr used for MethodTable*. + { FUNC(CORINFO_HELP_MON_ENTER_STATIC) CORINFO_TYPE_VOID, { CORINFO_TYPE_PTR, CORINFO_TYPE_BYREF }, HFIF_SS_ARG }, + { FUNC(CORINFO_HELP_MON_EXIT_STATIC) CORINFO_TYPE_VOID, { CORINFO_TYPE_PTR, CORINFO_TYPE_BYREF }, HFIF_SS_ARG }, // Apparently NYI in NativeAOT. { FUNC(CORINFO_HELP_GETCLASSFROMMETHODPARAM) }, @@ -469,8 +469,8 @@ bool Llvm::helperCallHasManagedCallingConvention(CorInfoHelpAnyFunc helperFunc) { FUNC(CORINFO_HELP_RUNTIMEHANDLE_CLASS_LOG) }, // Implemented in "CoreLib\src\Internal\Runtime\CompilerHelpers\TypedReferenceHelpers.cs". - { FUNC(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE) CORINFO_TYPE_CLASS, { CORINFO_TYPE_NATIVEINT }, HFIF_SS_ARG }, - { FUNC(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE_MAYBENULL) CORINFO_TYPE_CLASS, { CORINFO_TYPE_NATIVEINT }, HFIF_SS_ARG }, + { FUNC(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE) CORINFO_TYPE_CLASS, { CORINFO_TYPE_PTR }, HFIF_SS_ARG }, + { FUNC(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE_MAYBENULL) CORINFO_TYPE_CLASS, { CORINFO_TYPE_PTR }, HFIF_SS_ARG }, // Implemented in "CoreLib\src\Internal\Runtime\CompilerHelpers\LdTokenHelpers.cs". { FUNC(CORINFO_HELP_METHODDESC_TO_STUBRUNTIMEMETHOD) CORINFO_TYPE_VALUECLASS, { CORINFO_TYPE_NATIVEINT }, HFIF_SS_ARG }, diff --git a/src/coreclr/jit/llvmlower.cpp b/src/coreclr/jit/llvmlower.cpp index e4967f8f8728..9b96d89225e8 100644 --- a/src/coreclr/jit/llvmlower.cpp +++ b/src/coreclr/jit/llvmlower.cpp @@ -20,8 +20,8 @@ void Llvm::AddUnhandledExceptionHandler() { _compiler->fgEnsureFirstBBisScratch(); firstTryBlock = _compiler->fgFirstBBScratch; - _compiler->fgFirstBBScratch = nullptr; } + _compiler->fgFirstBBScratch = nullptr; // Create a block for the filter and filter handler. The handler part is unreachable, but // we need it for the EH table to be well-formed.