diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-06-06 23:18:36 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-06-06 23:18:36 +0000 |
commit | ca7e521fc5c16116f8e90eb902c490e36ae5feea (patch) | |
tree | e1ac1e967ef794bea51ee8cff6e71c8cf9964543 /gcc/libgcc2.c | |
parent | 861ca0c44e8a8f5e9730cbcb965c97e0dcc131b3 (diff) | |
download | ppe42-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.c | 10 |
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 () { |