summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2014-12-12 20:17:26 +0000
committerJeff Johnston <jjohnstn@redhat.com>2014-12-12 20:17:26 +0000
commit31cf15b18062ff13b489a03e148d2b765d77981c (patch)
tree33665c154303482012cbfca538069d780d8d4609
parentc6332722d95f98c29fbdac3501464eeb816adfd2 (diff)
downloadcygnal-31cf15b18062ff13b489a03e148d2b765d77981c.tar.gz
cygnal-31cf15b18062ff13b489a03e148d2b765d77981c.tar.bz2
cygnal-31cf15b18062ff13b489a03e148d2b765d77981c.zip
2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
* libc/machine/or1k/setjmp.S: Remove save/restore of r3-r8
-rw-r--r--newlib/ChangeLog4
-rw-r--r--newlib/libc/machine/or1k/setjmp.S15
2 files changed, 6 insertions, 13 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 8a2536d3e..258154075 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
+
+ * libc/machine/or1k/setjmp.S: Remove save/restore of r3-r8
+
2014-12-11 Jonathan Roelofs <jonathan@codesourcery.com>
Corinna Vinschen <vinschen@redhat.com>
diff --git a/newlib/libc/machine/or1k/setjmp.S b/newlib/libc/machine/or1k/setjmp.S
index 2fbf15d0f..13ccf8a07 100644
--- a/newlib/libc/machine/or1k/setjmp.S
+++ b/newlib/libc/machine/or1k/setjmp.S
@@ -31,12 +31,7 @@ setjmp:
l.sw 4(r3), r1
l.sw 8(r3), r2
- l.sw 12(r3), r3
- l.sw 16(r3), r4
- l.sw 20(r3), r5
- l.sw 24(r3), r6
- l.sw 28(r3), r7
- l.sw 32(r3), r8
+ /* Skip r3-r8 as they are not preserved across function calls */
l.sw 36(r3), r9
/* Skip r10 as it's preserved to be used by TLS */
/* Skip r11, setjmp always set it to 0 */
@@ -77,12 +72,7 @@ longjmp:
l.lwz r1, 4(r3)
l.lwz r2, 8(r3)
- /* Skip r3 as it contains the current buffer address */
- l.lwz r4, 16(r3)
- l.lwz r5, 20(r3)
- l.lwz r6, 24(r3)
- l.lwz r7, 28(r3)
- l.lwz r8, 32(r3)
+ /* Skip r3-r8 as they are not preserved across function calls */
l.lwz r9, 36(r3)
/* Skip r11 as it's always set by longjmp */
l.lwz r14, 52(r3)
@@ -94,7 +84,6 @@ longjmp:
l.lwz r26, 100(r3)
l.lwz r28, 108(r3)
l.lwz r30, 116(r3)
- l.lwz r3, 12(r3)
l.jr r9
l.nop