pa.md (muldi3): Force subregs to registers in 64-bit expander.
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Sat, 24 Feb 2007 19:16:45 +0000 (19:16 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sat, 24 Feb 2007 19:16:45 +0000 (19:16 +0000)
* pa.md (muldi3): Force subregs to registers in 64-bit expander.

From-SVN: r122294

gcc/ChangeLog
gcc/config/pa/pa.md

index 84e83e40844cd69301ad5d9efe76f443362f2739..58980dcd200c7afdc1e467c0410d03a5ed6f9dba 100644 (file)
@@ -1,3 +1,7 @@
+2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.md (muldi3): Force subregs to registers in 64-bit expander.
+
 2007-02-24  Jan Hubicka  <jh@suse.cz>
 
        * cgraphunit.c (decide_is_function_needed): Honor
index d686cb82b575eddb0d669e6176f78b5659c41af6..720bf15012236d8426e253a238131a1293d9aa55 100644 (file)
                                                GEN_INT (32)));
   emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2],
                                                GEN_INT (32)));
-  op1r = gen_rtx_SUBREG (SImode, operands[1], 4);
-  op2r = gen_rtx_SUBREG (SImode, operands[2], 4);
-  op1l = gen_rtx_SUBREG (SImode, op1shifted, 4);
-  op2l = gen_rtx_SUBREG (SImode, op2shifted, 4);
+  op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4));
+  op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4));
+  op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4));
+  op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4));
 
   /* Emit multiplies for the cross products.  */
   emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l));