re PR target/66148 (build/genpreds: Internal error: abort in choose_enum_order, at...
authorJohn David Anglin <danglin@gcc.gnu.org>
Thu, 28 May 2015 01:09:59 +0000 (01:09 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Thu, 28 May 2015 01:09:59 +0000 (01:09 +0000)
PR target/66148
* config/pa/pa.c (pa_emit_move_sequence): Correct placement of
REG_EQUAL note when doing insert.

From-SVN: r223791

gcc/ChangeLog
gcc/config/pa/pa.c

index 903bd6903009f876c4725329da2b0c1b716a9cb2..6a4571f635281fdcca8f2b53be3d568bdc57c71a 100644 (file)
@@ -1,5 +1,9 @@
 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
 
+       PR target/66148
+       * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
+       REG_EQUAL note when doing insert.
+
        * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
        instead of "%d" for 'o' operand.
 
index 5551654c49e72cd28c572547799232b46af78ecb..bb4d7b386d63f8ee9099b5b1b2107892dacd572e 100644 (file)
@@ -2248,11 +2248,11 @@ pa_emit_move_sequence (rtx *operands, machine_mode mode, rtx scratch_reg)
                                          gen_rtx_HIGH (mode, operand1)));
                  emit_move_insn (temp, gen_rtx_LO_SUM (mode, temp, operand1));
                  if (mode == DImode)
-                   emit_insn (gen_insvdi (operand0, GEN_INT (32),
-                                          const0_rtx, temp));
+                   insn = emit_insn (gen_insvdi (operand0, GEN_INT (32),
+                                                 const0_rtx, temp));
                  else
-                   emit_insn (gen_insvsi (operand0, GEN_INT (32),
-                                          const0_rtx, temp));
+                   insn = emit_insn (gen_insvsi (operand0, GEN_INT (32),
+                                                 const0_rtx, temp));
                }
              else
                {
@@ -2274,11 +2274,15 @@ pa_emit_move_sequence (rtx *operands, machine_mode mode, rtx scratch_reg)
                        }
 
                      if (mode == DImode)
-                       emit_insn (gen_insvdi (operand0, GEN_INT (len),
-                                              GEN_INT (pos), GEN_INT (v5)));
+                       insn = emit_insn (gen_insvdi (operand0,
+                                                     GEN_INT (len),
+                                                     GEN_INT (pos),
+                                                     GEN_INT (v5)));
                      else
-                       emit_insn (gen_insvsi (operand0, GEN_INT (len),
-                                              GEN_INT (pos), GEN_INT (v5)));
+                       insn = emit_insn (gen_insvsi (operand0,
+                                                     GEN_INT (len),
+                                                     GEN_INT (pos),
+                                                     GEN_INT (v5)));
 
                      len = pos > 0 && pos < 5 ? pos : 5;
                      pos -= len;