Merge commit 'c91d6a33f872574c95c8784277cf60ffcf6bff4f'
[ffmpeg.git] / tests / checkasm / aarch64 / checkasm.S
index 8e4f8c3..03bd983 100644 (file)
@@ -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]!