diff dyncall/dyncall_call_mips_n64.S @ 305:b104c5beec8b

- softfloat support for mips64/n64 abi
author Tassilo Philipp
date Wed, 23 May 2018 11:41:34 +0200
parents d55f9d508074
children
line wrap: on
line diff
--- a/dyncall/dyncall_call_mips_n64.S	Wed May 23 11:39:40 2018 +0200
+++ b/dyncall/dyncall_call_mips_n64.S	Wed May 23 11:41:34 2018 +0200
@@ -86,11 +86,9 @@
 
 	/* locals: */
 	/* $13 = register data */
-	/* $14 = useDouble flags */
 	move    $13, $5
-	ld      $14, 128($13)
 	
-	/* load integer parameter registers */
+	/* load parameter registers (only ints on hardfloat) */
 
 	ld      $4 , 0($13)
 	ld      $5 , 8($13)
@@ -101,6 +99,11 @@
 	ld      $10,48($13)
 	ld      $11,56($13)
 
+#if defined(DC__ABI_HARDFLOAT)
+
+	/* $14 = useDouble flags */
+	ld      $14, 128($13)
+
 	/* load float-or-double floating pointer parameter registers 
 	   a 64-bit bitmask given at byte offset 128 of regdata indicates
 	   if loading a float (bit cleared) or double (bit set), starting
@@ -172,6 +175,8 @@
 .d7:
 	l.d     $f19,120($13)
 
+#endif /* DC__ABI_HARDFLOAT) */
+
 .fregend:
 
 	/* jump-and-link to register $25 */