summaryrefslogtreecommitdiff
path: root/tests/checkasm/aarch64
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-03-23 17:38:20 -0300
committerJames Almer <jamrial@gmail.com>2017-03-23 17:38:20 -0300
commit67b639b496268d1d2b0ec64978f754ab692c44d1 (patch)
tree4c9ef4068c1567fc86cad75dc61fb24fc36a39f4 /tests/checkasm/aarch64
parenta2d34cc51ba1e3c19928f1c5aedd7a2990593c47 (diff)
parentc91d6a33f872574c95c8784277cf60ffcf6bff4f (diff)
Merge commit 'c91d6a33f872574c95c8784277cf60ffcf6bff4f'
* commit 'c91d6a33f872574c95c8784277cf60ffcf6bff4f': checkasm: aarch64: Add filler args to make sure all parameters are passed on the stack Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'tests/checkasm/aarch64')
-rw-r--r--tests/checkasm/aarch64/checkasm.S16
1 files changed, 6 insertions, 10 deletions
diff --git a/tests/checkasm/aarch64/checkasm.S b/tests/checkasm/aarch64/checkasm.S
index 8e4f8c35e4..03bd983160 100644
--- a/tests/checkasm/aarch64/checkasm.S
+++ b/tests/checkasm/aarch64/checkasm.S
@@ -93,22 +93,18 @@ function checkasm_checked_call, export=1
sub sp, sp, #ARG_STACK
.equ pos, 0
-// the first stacked arg is copied to x7
.rept MAX_ARGS-8
- ldr x9, [x29, #16 + 8 + pos]
+ // Skip the first 8 args, that are loaded into registers
+ ldr x9, [x29, #16 + 8*8 + pos]
str x9, [sp, #pos]
.equ pos, pos + 8
.endr
mov x12, x0
- mov x0, x1
- mov x1, x2
- mov x2, x3
- mov x3, x4
- mov x4, x5
- mov x5, x6
- mov x6, x7
- ldr x7, [x29, #16]
+ ldp x0, x1, [x29, #16]
+ ldp x2, x3, [x29, #32]
+ ldp x4, x5, [x29, #48]
+ ldp x6, x7, [x29, #64]
blr x12
add sp, sp, #ARG_STACK
stp x0, x1, [sp, #-16]!