Bootstrapped & regression-tested on x86_64-linux-gnu and aarch64-linux-gnu. Also tested via config-list.mk. Committed as preapproved.
Thanks, Richard gcc/ * target-insns.def (reload_load_address): New targetm instruction pattern. * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface. Index: gcc/target-insns.def =================================================================== --- gcc/target-insns.def 2015-06-28 12:29:34.245633312 +0100 +++ gcc/target-insns.def 2015-06-28 12:30:58.298088971 +0100 @@ -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)) Index: gcc/reload1.c =================================================================== --- gcc/reload1.c 2015-06-27 17:11:38.224086135 +0100 +++ gcc/reload1.c 2015-06-28 12:29:34.245633312 +0100 @@ -8813,10 +8813,8 @@ gen_reload (rtx out, rtx in, int opnum, 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