--- a/libs/context/src/asm/jump_mips64_n64_elf_gas.S +++ b/libs/context/src/asm/jump_mips64_n64_elf_gas.S @@ -67,7 +67,7 @@ jump_fcontext: sd $ra, 144($sp) # save RA sd $ra, 152($sp) # save RA as PC - +#if defined(__mips_hard_float) s.d $f24, 0($sp) # save F24 s.d $f25, 8($sp) # save F25 s.d $f26, 16($sp) # save F26 @@ -76,6 +76,7 @@ jump_fcontext: s.d $f29, 40($sp) # save F29 s.d $f30, 48($sp) # save F30 s.d $f31, 56($sp) # save F31 +#endif # store SP (pointing to old context-data) in v0 as return move $v0, $sp @@ -83,6 +84,7 @@ jump_fcontext: # get SP (pointing to new context-data) from a0 param move $sp, $a0 +#if defined(__mips_hard_float) l.d $f24, 0($sp) # restore F24 l.d $f25, 8($sp) # restore F25 l.d $f26, 16($sp) # restore F26 @@ -91,6 +93,7 @@ jump_fcontext: l.d $f29, 40($sp) # restore F29 l.d $f30, 48($sp) # restore F30 l.d $f31, 56($sp) # restore F31 +#endif ld $s0, 64($sp) # restore S0 ld $s1, 72($sp) # restore S1 --- a/libs/context/src/asm/ontop_mips64_n64_elf_gas.S +++ b/libs/context/src/asm/ontop_mips64_n64_elf_gas.S @@ -67,7 +67,7 @@ ontop_fcontext: sd $ra, 144($sp) # save RA sd $ra, 152($sp) # save RA as PC - +#if defined(__mips_hard_float) s.d $f24, 0($sp) # save F24 s.d $f25, 8($sp) # save F25 s.d $f26, 16($sp) # save F26 @@ -76,6 +76,7 @@ ontop_fcontext: s.d $f29, 40($sp) # save F29 s.d $f30, 48($sp) # save F30 s.d $f31, 56($sp) # save F31 +#endif # store SP (pointing to context-data) in t0 move $t0, $sp @@ -83,6 +84,7 @@ ontop_fcontext: # restore SP (pointing to context-data) from a0 move $sp, $a0 +#if defined(__mips_hard_float) l.d $f24, 0($sp) # restore F24 l.d $f25, 8($sp) # restore F25 l.d $f26, 16($sp) # restore F26 @@ -91,6 +93,7 @@ ontop_fcontext: l.d $f29, 40($sp) # restore F29 l.d $f30, 48($sp) # restore F30 l.d $f31, 56($sp) # restore F31 +#endif ld $s0, 64($sp) # restore S0 ld $s1, 72($sp) # restore S1