|
@@ -103,16 +103,20 @@ cglobal checked_call, 2,15,16,max_args*8+8 |
|
|
mov [rsp+(i-6)*8], r9 |
|
|
mov [rsp+(i-6)*8], r9 |
|
|
%assign i i+1 |
|
|
%assign i i+1 |
|
|
%endrep |
|
|
%endrep |
|
|
%else |
|
|
|
|
|
|
|
|
%else ; WIN64 |
|
|
%assign i 4 |
|
|
%assign i 4 |
|
|
%rep max_args-4 |
|
|
%rep max_args-4 |
|
|
mov r9, [rsp+stack_offset+(i+7)*8] |
|
|
mov r9, [rsp+stack_offset+(i+7)*8] |
|
|
mov [rsp+i*8], r9 |
|
|
mov [rsp+i*8], r9 |
|
|
%assign i i+1 |
|
|
%assign i i+1 |
|
|
%endrep |
|
|
%endrep |
|
|
%endif |
|
|
|
|
|
|
|
|
|
|
|
%if WIN64 |
|
|
|
|
|
|
|
|
; Move possible floating-point arguments to the correct registers |
|
|
|
|
|
movq m0, r0 |
|
|
|
|
|
movq m1, r1 |
|
|
|
|
|
movq m2, r2 |
|
|
|
|
|
movq m3, r3 |
|
|
|
|
|
|
|
|
%assign i 6 |
|
|
%assign i 6 |
|
|
%rep 16-6 |
|
|
%rep 16-6 |
|
|
mova m %+ i, [x %+ i] |
|
|
mova m %+ i, [x %+ i] |
|
|