OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c14211f
)
rs6000 exception handling support
author
mrs
<mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Feb 1995 21:05:17 +0000
(21:05 +0000)
committer
mrs
<mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Feb 1995 21:05:17 +0000
(21:05 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8970
138bc75d
-0d04-0410-961f-
82ee72b054a4
gcc/libgcc2.c
patch
|
blob
|
history
diff --git
a/gcc/libgcc2.c
b/gcc/libgcc2.c
index
661a799
..
3f12552
100644
(file)
--- a/
gcc/libgcc2.c
+++ b/
gcc/libgcc2.c
@@
-2277,6
+2277,24
@@
__unwind_function(void *ptr)
asm("ret");
}
#endif
+
+#if #machine(rs6000)
+__unwind_function(void *ptr)
+{
+ asm("mr 31,1");
+ asm("l 1,0(1)");
+ asm("l 31,-4(1)");
+ asm("# br");
+
+ asm("mr 31,1");
+ asm("l 1,0(1)");
+ /* use 31 as a scratch register to restore the link register. */
+ asm("l 31, 8(1);mtlr 31 # l lr,8(1)");
+ asm("l 31,-4(1)");
+ asm("# br");
+ asm("mtctr 3;bctr # b 3");
+}
+#endif
#endif /* L_eh */
\f
#ifdef L_pure