Commit dd5d4a0e authored by Martin Storsjö's avatar Martin Storsjö

checkasm: aarch64: Don't clobber x29 in checkasm_stack_clobber

x29 (FP) is a callee saved register and should be restored on
return. Instead of backing up x29 and restoring it here, back up
sp in a register that we are allowed to overwrite.

This fixes crashes in checkasm on aarch64 since f1b3e131.
For some reason, gcc builds didn't crash, but clang builds do.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 7911186e
......@@ -55,13 +55,13 @@ endconst
#define CLOBBER_STACK ((8*MAX_ARGS + 15) & ~15)
function checkasm_stack_clobber, export=1
mov x29, sp
mov x3, sp
mov x2, #CLOBBER_STACK
1:
stp x0, x1, [sp, #-16]!
subs x2, x2, #16
b.gt 1b
mov sp, x29
mov sp, x3
ret
endfunc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment