+2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
+ * defaults.h: New definition of EH_RETURN_DATA_REGNO.
+ * except.c: Remove definition of EH_RETURN_DATA_REGNO.
+ * builtins.c (expand_builtin): Remove check if
+ EH_RETURN_DATA_REGNO is defined.
+ * df-scan.c (df_bb_refs_collect): Likewise.
+ (df_get_exit_block_use_set): Likewise.
+ * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
+ * ira-lives.c (process_bb_node_lives): Likewise.
+ * lra-lives.c (process_bb_lives): Likewise.
+
2015-04-21 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
expand_builtin_eh_return (CALL_EXPR_ARG (exp, 0),
CALL_EXPR_ARG (exp, 1));
return const0_rtx;
-#ifdef EH_RETURN_DATA_REGNO
case BUILT_IN_EH_RETURN_DATA_REGNO:
return expand_builtin_eh_return_data_regno (exp);
-#endif
case BUILT_IN_EXTEND_POINTER:
return expand_builtin_extend_pointer (CALL_EXPR_ARG (exp, 0));
case BUILT_IN_EH_POINTER:
#endif
#endif
+/* Provide defaults for stuff that may not be defined when using
+ sjlj exceptions. */
+#ifndef EH_RETURN_DATA_REGNO
+#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
+#endif
+
/* If we have named section and we support weak symbols, then use the
.jcr section for recording java classes which need to be registered
at program start-up time. */
return;
}
-#ifdef EH_RETURN_DATA_REGNO
if (bb_has_eh_pred (bb))
{
unsigned int i;
bb, NULL, DF_REF_REG_DEF, DF_REF_AT_TOP);
}
}
-#endif
/* Add the hard_frame_pointer if this block is the target of a
non-local goto. */
bitmap_set_bit (exit_block_uses, i);
}
-#ifdef EH_RETURN_DATA_REGNO
/* Mark the registers that will contain data for the handler. */
if (reload_completed && crtl->calls_eh_return)
for (i = 0; ; ++i)
break;
bitmap_set_bit (exit_block_uses, regno);
}
-#endif
#ifdef EH_RETURN_STACKADJ_RTX
if ((!HAVE_epilogue || ! epilogue_completed)
#include "cfgloop.h"
#include "builtins.h"
-/* Provide defaults for stuff that may not be defined when using
- sjlj exceptions. */
-#ifndef EH_RETURN_DATA_REGNO
-#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
-#endif
-
static GTY(()) int call_site_base;
struct tree_hash_traits : default_hashmap_traits
if (NONDEBUG_INSN_P (insn))
setup_ref_regs (PATTERN (insn));
initiate_reg_pressure_info (df_get_live_in (bb));
-#ifdef EH_RETURN_DATA_REGNO
if (bb_has_eh_pred (bb))
for (i = 0; ; ++i)
{
mark_regno_birth_or_death (curr_reg_live, curr_reg_pressure,
regno, true);
}
-#endif
}
/* Save current register pressure related info. */
curr_point++;
}
-#ifdef EH_RETURN_DATA_REGNO
if (bb_has_eh_pred (bb))
for (j = 0; ; ++j)
{
break;
make_hard_regno_born (regno);
}
-#endif
/* Allocnos can't go in stack regs at the start of a basic block
that is reached by an abnormal edge. Likewise for call
add_reg_note (curr_insn, REG_UNUSED, regno_reg_rtx[j]);
}
-#ifdef EH_RETURN_DATA_REGNO
if (bb_has_eh_pred (bb))
for (j = 0; ; ++j)
{
break;
make_hard_regno_born (regno, false);
}
-#endif
/* Pseudos can't go in stack regs at the start of a basic block that
is reached by an abnormal edge. Likewise for call clobbered regs,