aarch64: Do not alter force_reg returned rtx expanding pauth builtins
authorAndrea Corallo <andrea.corallo@arm.com>
Mon, 21 Sep 2020 12:52:45 +0000 (13:52 +0100)
committerAndrea Corallo <andrea.corallo@arm.com>
Mon, 28 Sep 2020 10:31:57 +0000 (12:31 +0200)
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.

gcc/config/aarch64/aarch64-builtins.c

index 1cfb5c07d705057fe54739430abb2bba1307eadc..732a4dcbcc328c7b79263b4d80314fd060e2794d 100644 (file)
@@ -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];