diff --git a/src/coreclr/nativeaot/Runtime/amd64/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/amd64/ExceptionHandling.S index 8be19fcc8086ca..adadd8ea2123d2 100644 --- a/src/coreclr/nativeaot/Runtime/amd64/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/amd64/ExceptionHandling.S @@ -143,6 +143,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler END_PROLOGUE mov rbx, rdi + mov r12, r8 // Save ExKind INLINE_GETTHREAD mov rdi, rbx @@ -161,7 +162,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler mov [rsi + OFFSETOF__ExInfo__m_exception], rdx // init the exception object to null mov byte ptr [rsi + OFFSETOF__ExInfo__m_passNumber], 1 // init to the first pass mov dword ptr [rsi + OFFSETOF__ExInfo__m_idxCurClause], 0xFFFFFFFF - mov byte ptr [rsi + OFFSETOF__ExInfo__m_kind], r8b // ExKind (from r8b) + mov byte ptr [rsi + OFFSETOF__ExInfo__m_kind], r12b // ExKind // link the ExInfo into the thread's ExInfo chain mov rdx, [rax + OFFSETOF__Thread__m_pExInfoStackHead] diff --git a/src/coreclr/nativeaot/Runtime/arm64/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/arm64/ExceptionHandling.S index aa8ac5e79069c3..dbec0bd8ac998e 100644 --- a/src/coreclr/nativeaot/Runtime/arm64/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/arm64/ExceptionHandling.S @@ -287,6 +287,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler ALLOC_THROW_FRAME SOFTWARE_EXCEPTION + mov x19, x4 // Save ExKind GetThreadX2 @@ -340,7 +341,7 @@ LOCAL_LABEL(NotHijacked): strb w3, [x1, #OFFSETOF__ExInfo__m_passNumber] // pExInfo->m_passNumber = 1 mov w3, #0xFFFFFFFF str w3, [x1, #OFFSETOF__ExInfo__m_idxCurClause] // pExInfo->m_idxCurClause = MaxTryRegionIdx - strb w4, [x1, #OFFSETOF__ExInfo__m_kind] // pExInfo->m_kind = ExKind (from w4) + strb w19, [x1, #OFFSETOF__ExInfo__m_kind] // pExInfo->m_kind = ExKind // link the ExInfo into the thread's ExInfo chain ldr x3, [x2, #OFFSETOF__Thread__m_pExInfoStackHead] diff --git a/src/coreclr/nativeaot/Runtime/loongarch64/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/loongarch64/ExceptionHandling.S index 469dd8d03aea93..8cc46fbcc1d904 100644 --- a/src/coreclr/nativeaot/Runtime/loongarch64/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/loongarch64/ExceptionHandling.S @@ -303,6 +303,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler ALLOC_THROW_FRAME SOFTWARE_EXCEPTION + ori $r23, $a4, 0 // Save ExKind GetThreadA2 @@ -355,7 +356,7 @@ LOCAL_LABEL(NotHijacked): st.b $a3, $a1, OFFSETOF__ExInfo__m_passNumber // pExInfo->m_passNumber = 1 addi.w $a3, $zero, -1 st.w $a3, $a1, OFFSETOF__ExInfo__m_idxCurClause // pExInfo->m_idxCurClause = MaxTryRegionIdx - st.b $a4, $a1, OFFSETOF__ExInfo__m_kind // pExInfo->m_kind = ExKind (from a4) + st.b $r23, $a1, OFFSETOF__ExInfo__m_kind // pExInfo->m_kind = ExKind // link the ExInfo into the thread's ExInfo chain ld.d $a3, $a2, OFFSETOF__Thread__m_pExInfoStackHead diff --git a/src/coreclr/nativeaot/Runtime/riscv64/ExceptionHandling.S b/src/coreclr/nativeaot/Runtime/riscv64/ExceptionHandling.S index 210355fb28ef91..8cbe1b6a276982 100644 --- a/src/coreclr/nativeaot/Runtime/riscv64/ExceptionHandling.S +++ b/src/coreclr/nativeaot/Runtime/riscv64/ExceptionHandling.S @@ -338,6 +338,7 @@ NESTED_ENTRY RhpThrowImpl, _TEXT, NoHandler ALLOC_THROW_FRAME SOFTWARE_EXCEPTION + mv s1, a4 // Save ExKind GetThreadA2 @@ -381,7 +382,7 @@ LOCAL_LABEL(NotHijacked): sb a3, OFFSETOF__ExInfo__m_passNumber(a1) // pExInfo->m_passNumber = 1 addiw a3, zero, -1 sw a3, OFFSETOF__ExInfo__m_idxCurClause(a1) // pExInfo->m_idxCurClause = MaxTryRegionIdx - sb a4, OFFSETOF__ExInfo__m_kind(a1) // pExInfo->m_kind = ExKind (from a4) + sb s1, OFFSETOF__ExInfo__m_kind(a1) // pExInfo->m_kind = ExKind // Link the ExInfo into the thread's ExInfo chain ld a3, OFFSETOF__Thread__m_pExInfoStackHead(a2)