Mercurial > pub > dyncall > dyncall
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 */