diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2015-11-15 00:18:01 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2015-11-15 00:18:01 +0000 |
commit | dd4fb6097ad6c16af5ba806c56513e5d756ab852 (patch) | |
tree | 188a369c272c1a7ac81ed20762dcfe4179b01bc7 /gcc | |
parent | ab7b56730bc193083d0a778b79ca5be0390e17d5 (diff) | |
download | gcc-dd4fb6097ad6c16af5ba806c56513e5d756ab852.tar.gz |
always define EH_RETURN_HANDLER_RTX
gcc/ChangeLog:
2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
* df-scan.c (df_get_exit_block_use_set): Adjust.
* except.c (expand_eh_return): Likewise.
From-SVN: r230392
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/defaults.h | 4 | ||||
-rw-r--r-- | gcc/df-scan.c | 2 | ||||
-rw-r--r-- | gcc/except.c | 9 |
4 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2254c009260..5b3bf501ad0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> + * defaults.h (EH_RETURN_HANDLER_RTX): New default definition. + * df-scan.c (df_get_exit_block_use_set): Adjust. + * except.c (expand_eh_return): Likewise. + +2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> + * config/i386/i386.h (TARGET_PECOFF): Remove define. * defaults.h (TARGET_PECOFF): New default definition. * varasm.c (handle_vtv_comdat_section): Adjust. diff --git a/gcc/defaults.h b/gcc/defaults.h index eca624ca1be..0f1c713c889 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1305,6 +1305,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define TARGET_PECOFF 0 #endif +#ifndef EH_RETURN_HANDLER_RTX +#define EH_RETURN_HANDLER_RTX NULL +#endif + #ifdef GCC_INSN_FLAGS_H /* Dependent default target macro definitions diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 2e5fe974a5a..a7359259d33 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -3714,7 +3714,6 @@ df_get_exit_block_use_set (bitmap exit_block_uses) } #endif -#ifdef EH_RETURN_HANDLER_RTX if ((!targetm.have_epilogue () || ! epilogue_completed) && crtl->calls_eh_return) { @@ -3722,7 +3721,6 @@ df_get_exit_block_use_set (bitmap exit_block_uses) if (tmp && REG_P (tmp)) df_mark_reg (tmp, exit_block_uses); } -#endif /* Mark function return value. */ diddle_return_value (df_mark_reg, (void*) exit_block_uses); diff --git a/gcc/except.c b/gcc/except.c index 1801fe726d1..1a41a34cd04 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -2255,11 +2255,10 @@ expand_eh_return (void) emit_insn (targetm.gen_eh_return (crtl->eh.ehr_handler)); else { -#ifdef EH_RETURN_HANDLER_RTX - emit_move_insn (EH_RETURN_HANDLER_RTX, crtl->eh.ehr_handler); -#else - error ("__builtin_eh_return not supported on this target"); -#endif + if (rtx handler = EH_RETURN_HANDLER_RTX) + emit_move_insn (handler, crtl->eh.ehr_handler); + else + error ("__builtin_eh_return not supported on this target"); } emit_label (around_label); |