OSDN Git Service

* config/alpha/alpha.c (emit_insxl): Force the first operand of
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Feb 2007 22:36:34 +0000 (22:36 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Feb 2007 22:36:34 +0000 (22:36 +0000)
the insbl or inswl pattern into a register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121779 138bc75d-0d04-0410-961f-82ee72b054a4

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

index af251f4..1467f09 100644 (file)
@@ -1,5 +1,10 @@
 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.
 
 2007-02-09  Richard Henderson  <rth@redhat.com>
index d4808a7..327efb4 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;