diff options
author | Andrea Corallo <andrea.corallo@arm.com> | 2020-09-21 13:52:45 +0100 |
---|---|---|
committer | Andrea Corallo <andrea.corallo@arm.com> | 2020-09-28 12:31:57 +0200 |
commit | 92f0d3d03a78a8aabe62e4c1e1b300b01516732f (patch) | |
tree | d9567f4fd8884852cfe0ea85a3052b4784fabaf3 /gcc | |
parent | 1923f615f726efd02b8b1845740adabca67146d7 (diff) | |
download | gcc-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.c | 13 |
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]; |