X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/b226f5e54a60dc81db17b1260381d7dbfea3cdf1..0a7de7458d150b5d4dffc935ba399be265ef0a1a:/osfmk/arm64/machine_routines_asm.s diff --git a/osfmk/arm64/machine_routines_asm.s b/osfmk/arm64/machine_routines_asm.s index 8f51e2a22..08756dc8d 100644 --- a/osfmk/arm64/machine_routines_asm.s +++ b/osfmk/arm64/machine_routines_asm.s @@ -681,10 +681,11 @@ L_mmu_kvtop_wpreflight_invalid: */ .macro SET_RECOVERY_HANDLER mrs $0, TPIDR_EL1 // Load thread pointer - ldr $1, [$0, TH_RECOVER] // Save previous recovery handler adrp $2, $3@page // Load the recovery handler address add $2, $2, $3@pageoff - str $2, [$0, TH_RECOVER] // Set new recovery handler + + ldr $1, [$0, TH_RECOVER] // Save previous recovery handler + str $2, [$0, TH_RECOVER] // Set new signed recovery handler .endmacro /* @@ -823,7 +824,9 @@ LEXT(_bcopyinstr) adr x4, Lcopyinstr_error // Get address for recover mrs x10, TPIDR_EL1 // Get thread pointer ldr x11, [x10, TH_RECOVER] // Save previous recover + str x4, [x10, TH_RECOVER] // Store new recover + mov x4, #0 // x4 - total bytes copied Lcopyinstr_loop: ldrb w5, [x0], #1 // Load a byte from the user source