diff options
-rw-r--r-- | newlib/ChangeLog | 4 | ||||
-rw-r--r-- | newlib/libc/machine/sparc/setjmp.S | 8 |
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 |