alpha.c (emit_insxl): Force the first operand of the insbl or inswl pattern into...
authorRoger Sayle <roger@eyesopen.com>
Fri, 9 Feb 2007 22:36:34 +0000 (22:36 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Fri, 9 Feb 2007 22:36:34 +0000 (22:36 +0000)
* config/alpha/alpha.c (emit_insxl): Force the first operand of
the insbl or inswl pattern into a register.

From-SVN: r121779

gcc/ChangeLog
gcc/config/alpha/alpha.c

index af251f449950f8125dccc040bf12f13d81be68d1..1467f09f43f956b358a3ee3851449f1f87516302 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-09  Roger Sayle  <roger@eyesopen.com>
+
+       * config/alpha/alpha.c (emit_insxl): Force the first operand of
+       the insbl or inswl pattern into a register.
+
 2007-02-09  Roger Sayle  <roger@eyesopen.com>
 
        * config/ia64/ia64.md (bswapdi2): New define_insn.
index d4808a7db15b1ed91a5b900bc3f76a0043b2c154..327efb458e5a87a2f579434eda2b88db5b98e578 100644 (file)
@@ -4518,6 +4518,8 @@ emit_insxl (enum machine_mode mode, rtx op1, rtx op2)
       else
        fn = gen_inswl_le;
     }
+  /* The insbl and inswl patterns require a register operand.  */
+  op1 = force_reg (mode, op1);
   emit_insn (fn (ret, op1, op2));
 
   return ret;