openwrt-packages/libs/boost/patches/010-mips64.patch

71 lines
2.1 KiB
Diff

--- 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