diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S b/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S --- a/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S +++ b/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S @@ -72,7 +72,7 @@ dtrace_fuword8_nocheck(void *addr) */ ENTRY(dtrace_fuword8_nocheck) - ldrb w0, [x0] + ldtrb w0, [x0] RET END(dtrace_fuword8_nocheck) @@ -81,7 +81,7 @@ dtrace_fuword16_nocheck(void *addr) */ ENTRY(dtrace_fuword16_nocheck) - ldrh w0, [x0] + ldtrh w0, [x0] RET END(dtrace_fuword16_nocheck) @@ -90,7 +90,7 @@ dtrace_fuword32_nocheck(void *addr) */ ENTRY(dtrace_fuword32_nocheck) - ldr w0, [x0] + ldtr w0, [x0] RET END(dtrace_fuword32_nocheck) @@ -99,7 +99,7 @@ dtrace_fuword64_nocheck(void *addr) */ ENTRY(dtrace_fuword64_nocheck) - ldr x0, [x0] + ldtr x0, [x0] RET END(dtrace_fuword64_nocheck) @@ -110,7 +110,8 @@ ENTRY(dtrace_copy) cbz x2, 2f /* If len == 0 then skip loop */ 1: - ldrb w4, [x0], #1 /* Load from uaddr */ + ldtrb w4, [x0] /* Load from uaddr */ + add x0, x0, #1 strb w4, [x1], #1 /* Store in kaddr */ sub x2, x2, #1 /* len-- */ cbnz x2, 1b @@ -126,8 +127,9 @@ */ ENTRY(dtrace_copystr) cbz x2, 2f /* If len == 0 then skip loop */ - -1: ldrb w4, [x0], #1 /* Load from uaddr */ +1: + ldtrb w4, [x0] /* Load from uaddr */ + add x0, x0, #1 strb w4, [x1], #1 /* Store in kaddr */ cbz w4, 2f /* If == 0 then break */ sub x2, x2, #1 /* len-- */