[PATCH] or1k: Correct longjmp return value

Martin Erik Werner <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Invert equality check instruction to correct the return value handling
in longjmp.

The return value should be the value of the second argument to longjmp,
unless the argument value was 0 in which case it should be 1.

Previously, longjmp would set return value 1 if the second argument was
non-zero, and 0 if it was 0, which was incorrect.
---
 newlib/libc/machine/or1k/setjmp.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/newlib/libc/machine/or1k/setjmp.S b/newlib/libc/machine/or1k/setjmp.S
index 5c023278d..0b93a0342 100644
--- a/newlib/libc/machine/or1k/setjmp.S
+++ b/newlib/libc/machine/or1k/setjmp.S
@@ -70,7 +70,7 @@ longjmp:
   /* If the second argument to longjmp is zero, set return address to 1,
   otherwise set it to the value of the second argument */
 	l.addi	r11, r0, 1
-	l.sfne	r4, r0
+	l.sfeq	r4, r0
 	l.bf	1f
 	l.nop
 	l.addi	r11, r4, 0
-- 
2.11.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.