summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-05-15 13:14:25 +0000
committerCorinna Vinschen <corinna@vinschen.de>2014-05-15 13:14:25 +0000
commite9eef8ec14692542d4987bb2a3d2bcacb5fb0f51 (patch)
tree6abbf5bcb55ca7e8f3c7299768160fa752d0d5d6
parent2d0cb1acc7f46e49595d9a36bf4db6c2e490585f (diff)
downloadcygnal-e9eef8ec14692542d4987bb2a3d2bcacb5fb0f51.tar.gz
cygnal-e9eef8ec14692542d4987bb2a3d2bcacb5fb0f51.tar.bz2
cygnal-e9eef8ec14692542d4987bb2a3d2bcacb5fb0f51.zip
* libc/machine/sparc/setjmp.S (longjmp): Use register g1 instead of g6.
-rw-r--r--newlib/ChangeLog4
-rw-r--r--newlib/libc/machine/sparc/setjmp.S8
2 files changed, 8 insertions, 4 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 3304be69e..8ad246198 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,7 @@
+2014-05-15 Daniel Cederman <cederman@gaisler.com>
+
+ * libc/machine/sparc/setjmp.S (longjmp): Use register g1 instead of g6.
+
2014-05-14 Kaushik Phatak <Kaushik.Phatak@kpit.com>
* libc/include/machine/ieeefp.h: Define _DOUBLE_IS_32BITS when double
diff --git a/newlib/libc/machine/sparc/setjmp.S b/newlib/libc/machine/sparc/setjmp.S
index 00d668f91..8df0a6e40 100644
--- a/newlib/libc/machine/sparc/setjmp.S
+++ b/newlib/libc/machine/sparc/setjmp.S
@@ -124,9 +124,9 @@ ENTRY(_setjmp)
ENTRY(longjmp)
ENTRY(_longjmp)
ta 0x03 /* flush registers */
- addcc %o1, %g0, %g6 ! compute v ? v : 1 in a global register
+ addcc %o1, %g0, %g1 ! compute v ? v : 1 in a global register
be,a 0f
- mov 1, %g6
+ mov 1, %g1
0:
ld [%o0], %sp /* caller's stack pointer */
@@ -143,6 +143,6 @@ ENTRY(_longjmp)
ld [%o0+8], %fp /* caller's frame pointer */
ld [%o0+12], %o7
- jmp %o7 + 8 ! success, return %g6
- mov %g6, %o0
+ jmp %o7 + 8 ! success, return %g1
+ mov %g1, %o0