aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrea Corallo <andrea.corallo@arm.com>2020-09-21 13:52:45 +0100
committerAndrea Corallo <andrea.corallo@arm.com>2020-09-28 12:31:57 +0200
commit92f0d3d03a78a8aabe62e4c1e1b300b01516732f (patch)
treed9567f4fd8884852cfe0ea85a3052b4784fabaf3 /gcc
parent1923f615f726efd02b8b1845740adabca67146d7 (diff)
downloadgcc-92f0d3d03a78a8aabe62e4c1e1b300b01516732f.zip
gcc-92f0d3d03a78a8aabe62e4c1e1b300b01516732f.tar.gz
gcc-92f0d3d03a78a8aabe62e4c1e1b300b01516732f.tar.bz2
aarch64: Do not alter force_reg returned rtx expanding pauth builtins
2020-09-21 Andrea Corallo <andrea.corallo@arm.com> * config/aarch64/aarch64-builtins.c (aarch64_general_expand_builtin): Do not alter value on a force_reg returned rtx.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/aarch64-builtins.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index 1cfb5c0..732a4dc 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -2091,20 +2091,13 @@ aarch64_general_expand_builtin (unsigned int fcode, tree exp, rtx target,
arg0 = CALL_EXPR_ARG (exp, 0);
op0 = force_reg (Pmode, expand_normal (arg0));
- if (!target)
- target = gen_reg_rtx (Pmode);
- else
- target = force_reg (Pmode, target);
-
- emit_move_insn (target, op0);
-
if (fcode == AARCH64_PAUTH_BUILTIN_XPACLRI)
{
rtx lr = gen_rtx_REG (Pmode, R30_REGNUM);
icode = CODE_FOR_xpaclri;
emit_move_insn (lr, op0);
emit_insn (GEN_FCN (icode) ());
- emit_move_insn (target, lr);
+ return lr;
}
else
{
@@ -2134,11 +2127,9 @@ aarch64_general_expand_builtin (unsigned int fcode, tree exp, rtx target,
emit_move_insn (x17_reg, op0);
emit_move_insn (x16_reg, op1);
emit_insn (GEN_FCN (icode) ());
- emit_move_insn (target, x17_reg);
+ return x17_reg;
}
- return target;
-
case AARCH64_JSCVT:
{
expand_operand ops[2];