diff --git a/src/setjmp/mips/longjmp.S b/src/setjmp/mips/longjmp.S index fdb6c95d..162646b6 100644 --- a/src/setjmp/mips/longjmp.S +++ b/src/setjmp/mips/longjmp.S @@ -12,6 +12,14 @@ longjmp: addu $2, $2, 1 1: #ifndef __mips_soft_float +#if __mips_isa_rev >= 6 + ldc1 $20, 56($4) + ldc1 $22, 64($4) + ldc1 $24, 72($4) + ldc1 $26, 80($4) + ldc1 $28, 88($4) + ldc1 $30, 96($4) +#else lwc1 $20, 56($4) lwc1 $21, 60($4) lwc1 $22, 64($4) @@ -24,6 +32,7 @@ longjmp: lwc1 $29, 92($4) lwc1 $30, 96($4) lwc1 $31, 100($4) +#endif #endif lw $ra, 0($4) lw $sp, 4($4) diff --git a/src/setjmp/mips/setjmp.S b/src/setjmp/mips/setjmp.S index 501d5264..c2700bcb 100644 --- a/src/setjmp/mips/setjmp.S +++ b/src/setjmp/mips/setjmp.S @@ -22,6 +22,14 @@ setjmp: sw $30, 40($4) sw $28, 44($4) #ifndef __mips_soft_float +#if __mips_isa_rev >= 6 + sdc1 $20, 56($4) + sdc1 $22, 64($4) + sdc1 $24, 72($4) + sdc1 $26, 80($4) + sdc1 $28, 88($4) + sdc1 $30, 96($4) +#else swc1 $20, 56($4) swc1 $21, 60($4) swc1 $22, 64($4) @@ -34,6 +42,7 @@ setjmp: swc1 $29, 92($4) swc1 $30, 96($4) swc1 $31, 100($4) +#endif #endif jr $ra li $2, 0