diff mbox series

[v4,1/2] riscv: simplify longjmp

Message ID 20210325073150.12934-2-xypron.glpk@gmx.de
State Accepted
Commit a718e2aed52a135f7a6a8745a49e4f5bdff49ecf
Delegated to: Andes
Headers show
Series riscv: simplify longjmp | expand

Commit Message

Heinrich Schuchardt March 25, 2021, 7:31 a.m. UTC
The value returned by setjmp must be nonzero. If zero is passed as
parameter it must be replaced by 1.

This patch reduces the code size a bit.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
---
v4:
	no change
v3:
	no change
v2:
	correct typo in title
---
 arch/riscv/lib/setjmp.S | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

--
2.30.2
diff mbox series

Patch

diff --git a/arch/riscv/lib/setjmp.S b/arch/riscv/lib/setjmp.S
index 72bc9241f6..99d6195827 100644
--- a/arch/riscv/lib/setjmp.S
+++ b/arch/riscv/lib/setjmp.S
@@ -54,12 +54,8 @@  ENTRY(longjmp)
 	LOAD_IDX(sp, 13)

 	/* Move the return value in place, but return 1 if passed 0. */
-	beq a1, zero, longjmp_1
-	mv a0, a1
-	ret
-
-	longjmp_1:
-	li a0, 1
+	seqz a0, a1
+	add a0, a0, a1
 	ret
 ENDPROC(longjmp)
 .popsection