summaryrefslogtreecommitdiff
path: root/systemv64call.asm
diff options
context:
space:
mode:
Diffstat (limited to 'systemv64call.asm')
-rw-r--r--systemv64call.asm6
1 files changed, 4 insertions, 2 deletions
diff --git a/systemv64call.asm b/systemv64call.asm
index e12f304..e2caa70 100644
--- a/systemv64call.asm
+++ b/systemv64call.asm
@@ -113,6 +113,8 @@ systemv64_call_other:
mov r11, 0 ; floating point index
mov rbx, 0 ; arg index
.fp_loop:
+ cmp rbx, rdx ; if arg_index >= nargs
+ jge .fp_loop_end
cmp byte [rcx], 0
jne .fp_loop_float
; integer argument
@@ -123,8 +125,8 @@ systemv64_call_other:
.fp_continue:
inc rbx ; ++arg_index
inc rcx ; ++is_float
- cmp rbx, rdx ; if arg_index < nargs
- jl .fp_loop
+ jmp .fp_loop
+.fp_loop_end:
; r10 now holds the number of integer arguments, and r11 holds the number of floating point arguments