summaryrefslogtreecommitdiff
path: root/src/vm/arm64/CallDescrWorkerARM64.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/arm64/CallDescrWorkerARM64.asm')
-rw-r--r--src/vm/arm64/CallDescrWorkerARM64.asm35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/vm/arm64/CallDescrWorkerARM64.asm b/src/vm/arm64/CallDescrWorkerARM64.asm
index 7495eb767f..556983934e 100644
--- a/src/vm/arm64/CallDescrWorkerARM64.asm
+++ b/src/vm/arm64/CallDescrWorkerARM64.asm
@@ -52,29 +52,30 @@ Lstackloop
bne Lstackloop
Ldonestack
- ;; If FP arguments are supplied in registers (x8 != NULL) then initialize all of them from the pointer
- ;; given in x8.
- ldr x8, [x19,#CallDescrData__pFloatArgumentRegisters]
- cbz x8, LNoFloatingPoint
- ldp d0, d1, [x8]
- ldp d2, d3, [x8, #16]
- ldp d4, d5, [x8, #32]
- ldp d6, d7, [x8, #48]
+ ;; If FP arguments are supplied in registers (x9 != NULL) then initialize all of them from the pointer
+ ;; given in x9.
+ ldr x9, [x19,#CallDescrData__pFloatArgumentRegisters]
+ cbz x9, LNoFloatingPoint
+ ldp d0, d1, [x9]
+ ldp d2, d3, [x9, #16]
+ ldp d4, d5, [x9, #32]
+ ldp d6, d7, [x9, #48]
LNoFloatingPoint
- ;; Copy [pArgumentRegisters, ..., pArgumentRegisters + 56]
- ;; into x0, ..., x7
+ ;; Copy [pArgumentRegisters, ..., pArgumentRegisters + 64]
+ ;; into x0, ..., x7, x8
- ldr x8, [x19,#CallDescrData__pArgumentRegisters]
- ldp x0, x1, [x8]
- ldp x2, x3, [x8, #16]
- ldp x4, x5, [x8, #32]
- ldp x6, x7, [x8, #48]
+ ldr x9, [x19,#CallDescrData__pArgumentRegisters]
+ ldp x0, x1, [x9]
+ ldp x2, x3, [x9, #16]
+ ldp x4, x5, [x9, #32]
+ ldp x6, x7, [x9, #48]
+ ldr x8, [x9, #64]
;; ARM64TODO: => see if anything special needs to be done for remoting
;; call pTarget
- ldr x8, [x19,#CallDescrData__pTarget]
- blr x8
+ ldr x9, [x19,#CallDescrData__pTarget]
+ blr x9
ldr w3, [x19,#CallDescrData__fpReturnSize]