From c457bdebe7af643b380aa0f6add3cb4335d218dc Mon Sep 17 00:00:00 2001
From: Henrik Gramner <henrik@gramner.com>
Date: Mon, 24 Aug 2015 22:53:56 +0200
Subject: [PATCH] checkasm: Fix floating point arguments on 64-bit Windows

Signed-off-by: Anton Khirnov <anton@khirnov.net>
---
 tests/checkasm/x86/checkasm.asm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/tests/checkasm/x86/checkasm.asm b/tests/checkasm/x86/checkasm.asm
index 4948fc9e264..828352ce329 100644
--- a/tests/checkasm/x86/checkasm.asm
+++ b/tests/checkasm/x86/checkasm.asm
@@ -103,16 +103,20 @@ cglobal checked_call, 2,15,16,max_args*8+8
         mov  [rsp+(i-6)*8], r9
         %assign i i+1
     %endrep
-%else
+%else ; WIN64
     %assign i 4
     %rep max_args-4
         mov  r9, [rsp+stack_offset+(i+7)*8]
         mov  [rsp+i*8], r9
         %assign i i+1
     %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
     %rep 16-6
         mova m %+ i, [x %+ i]
-- 
GitLab