Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20261110052827.3742542-1-alex@alexrp.com>
Date: Tue, 10 Nov 2026 06:28:27 +0100
From: Alex Rønne Petersen <alex@...xrp.com>
To: musl@...ts.openwall.com
Cc: Alex Rønne Petersen <alex@...xrp.com>
Subject: [PATCH] mipsn32: fix callee-saved FPRs in setjmp/longjmp

It seems this code was incorrectly copied from N64. N32 considers the
even FPRs in $20-$30 to be callee-saved.
---
 src/setjmp/mipsn32/longjmp.S | 12 +++++-------
 src/setjmp/mipsn32/setjmp.S  | 12 +++++-------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/setjmp/mipsn32/longjmp.S b/src/setjmp/mipsn32/longjmp.S
index 30c3ee0b..3b51fbb7 100644
--- a/src/setjmp/mipsn32/longjmp.S
+++ b/src/setjmp/mipsn32/longjmp.S
@@ -11,14 +11,12 @@ longjmp:
 	addu	$2, $2, 1
 1:
 #ifndef __mips_soft_float
-	ldc1	$24, 96($4)
-	ldc1	$25, 104($4)
-	ldc1	$26, 112($4)
-	ldc1	$27, 120($4)
+	sdc1	$20, 96($4)
+	sdc1	$22, 104($4)
+	sdc1	$24, 112($4)
+	sdc1	$26, 120($4)
 	ldc1	$28, 128($4)
-	ldc1	$29, 136($4)
-	ldc1	$30, 144($4)
-	ldc1	$31, 152($4)
+	sdc1	$30, 136($4)
 #endif
 	ld	$ra, 0($4)
 	ld	$sp, 8($4)
diff --git a/src/setjmp/mipsn32/setjmp.S b/src/setjmp/mipsn32/setjmp.S
index b9646c2a..86d4d9e8 100644
--- a/src/setjmp/mipsn32/setjmp.S
+++ b/src/setjmp/mipsn32/setjmp.S
@@ -21,14 +21,12 @@ setjmp:
 	sd	$23, 80($4)
 	sd	$30, 88($4)
 #ifndef __mips_soft_float
-	sdc1	$24, 96($4)
-	sdc1	$25, 104($4)
-	sdc1	$26, 112($4)
-	sdc1	$27, 120($4)
+	ldc1	$20, 96($4)
+	ldc1	$22, 104($4)
+	ldc1	$24, 112($4)
+	ldc1	$26, 120($4)
 	sdc1	$28, 128($4)
-	sdc1	$29, 136($4)
-	sdc1	$30, 144($4)
-	sdc1	$31, 152($4)
+	ldc1	$30, 136($4)
 #endif
 	jr	$ra
 	li	$2, 0
-- 
2.53.0

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.