From f478aa15de720970b21db50ddab2c44b84bc7e0c Mon Sep 17 00:00:00 2001 From: Eduardo Velarde Date: Thu, 5 Mar 2026 17:05:05 -0800 Subject: [PATCH 1/4] Verify failing test --- .../System.Diagnostics.StackTrace/tests/StackTraceTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs b/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs index 276f6485c82030..7b7fa769de3935 100644 --- a/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs +++ b/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs @@ -631,7 +631,6 @@ public static IEnumerable Ctor_Async_TestData() yield return new object[] { () => V2Methods.Bux(), MethodExceptionStrings["Bux"] }; } - [ActiveIssue("https://github.com/dotnet/runtime/issues/123979", typeof(PlatformDetection), nameof(PlatformDetection.IsArmProcess))] [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsRuntimeAsyncSupported))] [MemberData(nameof(Ctor_Async_TestData))] [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] From 1749d26dc63e88b674e7c2cc7b130b9386b31e0c Mon Sep 17 00:00:00 2001 From: Eduardo Velarde Date: Wed, 11 Mar 2026 23:31:31 -0700 Subject: [PATCH 2/4] Save r2 in RhpThrowImpl --- src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S index e2522111524cde..f120ce4544a1c6 100644 --- a/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S @@ -127,6 +127,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler str r4, [sp, #(rsp_offsetof_Context + OFFSETOF__PAL_LIMITED_CONTEXT__SP)] mov r4, r0 // Save exception object + mov r5, r2 // Save ExKind // r0 = GetThread() INLINE_GETTHREAD @@ -180,7 +181,7 @@ LOCAL_LABEL(NotHiJacked): str r3, [r1, #OFFSETOF__ExInfo__m_exception] // init the exception object to null mov r3, #1 strb r3, [r1, #OFFSETOF__ExInfo__m_passNumber] // init to the first pass - strb r2, [r1, #OFFSETOF__ExInfo__m_kind] // ExKind (from r2) + strb r5, [r1, #OFFSETOF__ExInfo__m_kind] // ExKind (from r5, saved from r2) mov r3, #0xFFFFFFFF str r3, [r1, #OFFSETOF__ExInfo__m_idxCurClause] From c9c50ee19cfe02a4b91962dc728a4df83a908797 Mon Sep 17 00:00:00 2001 From: Eduardo Velarde Date: Thu, 12 Mar 2026 10:44:53 -0700 Subject: [PATCH 3/4] Add comment --- src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S | 1 + 1 file changed, 1 insertion(+) diff --git a/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S index f120ce4544a1c6..50e62071031cca 100644 --- a/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S @@ -144,6 +144,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler ldr r3, [r0, #OFFSETOF__Thread__m_ppvHijackedReturnAddressLocation] // r4: exception object + // r5: ExKind // r1: hijacked return address // r0: pThread // r3: hijacked return address location From d6804bdce6c4a5b83f05436e983b5bc3f331e049 Mon Sep 17 00:00:00 2001 From: Eduardo Velarde <32459232+eduardo-vp@users.noreply.github.com> Date: Thu, 12 Mar 2026 14:47:18 -0700 Subject: [PATCH 4/4] Update src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michal Strehovský --- src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S index 50e62071031cca..da5716d3bf0b59 100644 --- a/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/arm/ExceptionHandling.S @@ -182,7 +182,7 @@ LOCAL_LABEL(NotHiJacked): str r3, [r1, #OFFSETOF__ExInfo__m_exception] // init the exception object to null mov r3, #1 strb r3, [r1, #OFFSETOF__ExInfo__m_passNumber] // init to the first pass - strb r5, [r1, #OFFSETOF__ExInfo__m_kind] // ExKind (from r5, saved from r2) + strb r5, [r1, #OFFSETOF__ExInfo__m_kind] // ExKind mov r3, #0xFFFFFFFF str r3, [r1, #OFFSETOF__ExInfo__m_idxCurClause]