Mercurial > pub > dyncall > dyncall
comparison 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 |
comparison
equal
deleted
inserted
replaced
304:6869d834a847 | 305:b104c5beec8b |
---|---|
84 | 84 |
85 /* load registers */ | 85 /* load registers */ |
86 | 86 |
87 /* locals: */ | 87 /* locals: */ |
88 /* $13 = register data */ | 88 /* $13 = register data */ |
89 /* $14 = useDouble flags */ | |
90 move $13, $5 | 89 move $13, $5 |
91 ld $14, 128($13) | |
92 | 90 |
93 /* load integer parameter registers */ | 91 /* load parameter registers (only ints on hardfloat) */ |
94 | 92 |
95 ld $4 , 0($13) | 93 ld $4 , 0($13) |
96 ld $5 , 8($13) | 94 ld $5 , 8($13) |
97 ld $6 ,16($13) | 95 ld $6 ,16($13) |
98 ld $7 ,24($13) | 96 ld $7 ,24($13) |
99 ld $8 ,32($13) | 97 ld $8 ,32($13) |
100 ld $9 ,40($13) | 98 ld $9 ,40($13) |
101 ld $10,48($13) | 99 ld $10,48($13) |
102 ld $11,56($13) | 100 ld $11,56($13) |
101 | |
102 #if defined(DC__ABI_HARDFLOAT) | |
103 | |
104 /* $14 = useDouble flags */ | |
105 ld $14, 128($13) | |
103 | 106 |
104 /* load float-or-double floating pointer parameter registers | 107 /* load float-or-double floating pointer parameter registers |
105 a 64-bit bitmask given at byte offset 128 of regdata indicates | 108 a 64-bit bitmask given at byte offset 128 of regdata indicates |
106 if loading a float (bit cleared) or double (bit set), starting | 109 if loading a float (bit cleared) or double (bit set), starting |
107 at bit position 0 in bitmask. | 110 at bit position 0 in bitmask. |
170 l.s $f19,120($13) | 173 l.s $f19,120($13) |
171 j .fregend | 174 j .fregend |
172 .d7: | 175 .d7: |
173 l.d $f19,120($13) | 176 l.d $f19,120($13) |
174 | 177 |
178 #endif /* DC__ABI_HARDFLOAT) */ | |
179 | |
175 .fregend: | 180 .fregend: |
176 | 181 |
177 /* jump-and-link to register $25 */ | 182 /* jump-and-link to register $25 */ |
178 | 183 |
179 jal $31, $25 | 184 jal $31, $25 |