aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Erik Werner <martinerikwerner.aac@gmail.com>2019-06-26 17:44:54 +0200
committerCorinna Vinschen <corinna@vinschen.de>2019-06-27 09:09:37 +0200
commit8b080534cadd8b9e920c8b023e341937a2e274bc (patch)
tree1c3098f7badb8a6baa765e396e9aa801e313a370
parent09e2ec87efa5ba167dffd19d39ce7a59b7ef7877 (diff)
downloadnewlib-8b080534cadd8b9e920c8b023e341937a2e274bc.zip
newlib-8b080534cadd8b9e920c8b023e341937a2e274bc.tar.gz
newlib-8b080534cadd8b9e920c8b023e341937a2e274bc.tar.bz2
or1k: Correct longjmp return value
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.
-rw-r--r--newlib/libc/machine/or1k/setjmp.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/newlib/libc/machine/or1k/setjmp.S b/newlib/libc/machine/or1k/setjmp.S
index 5c02327..0b93a03 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