summaryrefslogtreecommitdiffstats
path: root/gcc/libgcc2.c
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>1997-06-06 23:18:36 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>1997-06-06 23:18:36 +0000
commitca7e521fc5c16116f8e90eb902c490e36ae5feea (patch)
treee1ac1e967ef794bea51ee8cff6e71c8cf9964543 /gcc/libgcc2.c
parent861ca0c44e8a8f5e9730cbcb965c97e0dcc131b3 (diff)
downloadppe42-gcc-ca7e521fc5c16116f8e90eb902c490e36ae5feea.tar.gz
ppe42-gcc-ca7e521fc5c16116f8e90eb902c490e36ae5feea.zip
* libgcc2.c (__eh_ffetmnpc): Add support for machines that cannot
access globals after throw's epilogue when -fno-sjlj-exceptions is used. * rs6000.c (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. * mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. (INITIAL_ELIMINATION_OFFSET): Fix RETURN_ADDRESS_POINTER_REGNUM for 64 bit words, with 32 bit pointers and variable endianness. Fixes throwing across shared library lines (useful at times on mips and rs6000) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14168 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/libgcc2.c')
-rw-r--r--gcc/libgcc2.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 0d53b104b67..c32a7e03fa2 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -3436,6 +3436,16 @@ __throw ()
void *__eh_pc;
+/* See expand_builtin_throw for details. */
+
+void **__eh_ffetmnpc () {
+ static void *buf[2] = {
+ &__find_first_exception_table_match,
+ &__eh_pc
+ };
+ return buf;
+}
+
void
__empty ()
{
OpenPOWER on IntegriCloud