diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0bbc54cdb5..449df03ec7e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-07-28 Richard Sandiford + + * target-insns.def (reload_load_address): New targetm instruction + pattern. + * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface. + 2015-07-28 Richard Sandiford * target-insns.def (atomic_test_and_set): New targetm instruction diff --git a/gcc/reload1.c b/gcc/reload1.c index cbfcae7adef..ce06e0696e4 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -8803,10 +8803,8 @@ gen_reload (rtx out, rtx in, int opnum, enum reload_type type) mark_jump_label (in, tem, 0); } -#ifdef HAVE_reload_load_address - else if (HAVE_reload_load_address) - emit_insn (gen_reload_load_address (out, in)); -#endif + else if (targetm.have_reload_load_address ()) + emit_insn (targetm.gen_reload_load_address (out, in)); /* Otherwise, just write (set OUT IN) and hope for the best. */ else diff --git a/gcc/target-insns.def b/gcc/target-insns.def index d1343cde157..0c64a6b2c7f 100644 --- a/gcc/target-insns.def +++ b/gcc/target-insns.def @@ -61,6 +61,7 @@ DEF_TARGET_INSN (probe_stack, (rtx x0)) DEF_TARGET_INSN (probe_stack_address, (rtx x0)) DEF_TARGET_INSN (prologue, (void)) DEF_TARGET_INSN (ptr_extend, (rtx x0, rtx x1)) +DEF_TARGET_INSN (reload_load_address, (rtx x0, rtx x1)) DEF_TARGET_INSN (restore_stack_block, (rtx x0, rtx x1)) DEF_TARGET_INSN (restore_stack_function, (rtx x0, rtx x1)) DEF_TARGET_INSN (restore_stack_nonlocal, (rtx x0, rtx x1))