aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-08-24 17:59:51 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-08-24 17:59:51 +0000
commit58d745ec901a3707c1e6487ce8c0eca387ec5f42 (patch)
treec3042a200d6b63e1964f926ac1b634a9c69f950d /gcc/builtins.c
parent651159e5d652ae1dcc48f8107fa5e5b272767d5b (diff)
downloadgcc-58d745ec901a3707c1e6487ce8c0eca387ec5f42.zip
gcc-58d745ec901a3707c1e6487ce8c0eca387ec5f42.tar.gz
gcc-58d745ec901a3707c1e6487ce8c0eca387ec5f42.tar.bz2
genflags.c (gen_macro): Delete.
gcc/ * genflags.c (gen_macro): Delete. (gen_proto): Don't create GEN.*CALL.* macros. * gensupport.h (get_file_location): Declare. * gensupport.c (rtx_locs): New variable. (read_md_rtx): Record rtx locations. (get_file_location): New function. * target-insns.def (call, call_pop, call_value, call_value_pop) (sibcall, sibcall_value): New patterns. * gentarget-def.c (parse_argument): New function. (def_target_insn): Use it. Handle optional operands. Raise an error if an .md pattern has the wrong number of operands for the pattern name. Remove the names of unused operands from the prototype. * builtins.c (expand_builtin_apply): Use targetm functions instead of HAVE_call_value and GEN_CALL_VALUE. * calls.c (emit_call_1): Likewise. Remove support for sibcall_pop and sibcall_value_pop. * config/aarch64/aarch64.md (untyped_call): Use gen_call instead of GEN_CALL. * config/alpha/alpha.md (untyped_call): Likewise. * config/iq2000/iq2000.md (untyped_call): Likewise. * config/m68k/m68k.md (untyped_call): Likewise. * config/mips/mips.md (untyped_call): Likewise. * config/pa/pa.md (untyped_call): Likewise. * config/rs6000/rs6000.md (untyped_call): Likewise. * config/sparc/sparc.md (untyped_call): Likewise. * config/tilegx/tilegx.md (untyped_call): Likewise. * config/tilepro/tilepro.md (untyped_call): Likewise. * config/visium/visium.md (untyped_call): Likewise. * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use gen_call_value instead of GEN_CALL_VALUE. * config/arm/arm.md (untyped_call): Likewise. * config/cr16/cr16.c (cr16_function_arg): Remove reference to GEN_CALL. From-SVN: r227143
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 5021dcf..d79372c 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -1686,9 +1686,7 @@ expand_builtin_apply (rtx function, rtx arguments, rtx argsize)
emit_call_insn (targetm.gen_untyped_call (mem, result,
result_vector (1, result)));
}
- else
-#ifdef HAVE_call_value
- if (HAVE_call_value)
+ else if (targetm.have_call_value ())
{
rtx valreg = 0;
@@ -1699,19 +1697,18 @@ expand_builtin_apply (rtx function, rtx arguments, rtx argsize)
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
if ((mode = apply_result_mode[regno]) != VOIDmode)
{
- gcc_assert (!valreg); /* HAVE_untyped_call required. */
+ gcc_assert (!valreg); /* have_untyped_call required. */
valreg = gen_rtx_REG (mode, regno);
}
- emit_call_insn (GEN_CALL_VALUE (valreg,
- gen_rtx_MEM (FUNCTION_MODE, function),
- const0_rtx, NULL_RTX, const0_rtx));
+ emit_insn (targetm.gen_call_value (valreg,
+ gen_rtx_MEM (FUNCTION_MODE, function),
+ const0_rtx, NULL_RTX, const0_rtx));
emit_move_insn (adjust_address (result, GET_MODE (valreg), 0), valreg);
}
else
-#endif
gcc_unreachable ();
/* Find the CALL insn we just emitted, and attach the register usage