]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
bfin.md (movdi_insn, [...]): Don't allow constant to memory moves.
authorBernd Schmidt <bernd.schmidt@analog.com>
Mon, 11 Jun 2007 11:29:00 +0000 (11:29 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Mon, 11 Jun 2007 11:29:00 +0000 (11:29 +0000)
* config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
to memory moves.

From-SVN: r125617

gcc/ChangeLog
gcc/config/bfin/bfin.md

index 7a61593e7b80ffb5fe7ed2f4e2dea843547fef21..fd94652f733ee6a1264319db5986a61cbced3fe1 100644 (file)
@@ -1,3 +1,9 @@
+2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
+       movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
+       to memory moves.
+
 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
 
        * gcc/tree.c (signed_or_unsigned_type_for): New.
index 630694a0f9c1302da7f41a2165f71be436afea29..d447825477beefd0b8896c1ca27ac44f2a297b28 100644 (file)
 (define_insn_and_split "movdi_insn"
   [(set (match_operand:DI 0 "nonimmediate_operand" "=x,mx,r")
        (match_operand:DI 1 "general_operand" "iFx,r,mx"))]
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
   "#"
   "reload_completed"
   [(set (match_dup 2) (match_dup 3))
 (define_insn "*movsi_insn"
   [(set (match_operand:SI 0 "nonimmediate_operand" "=da,x*y,da,x,x,x,da,mr")
        (match_operand:SI 1 "general_operand" "da,x*y,xKs7,xKsh,xKuh,ix,mr,da"))]
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
  "@
    %0 = %1;
    %0 = %1;
   [(set (match_operand:V2HI 0 "nonimmediate_operand" "=da,da,d,dm")
         (match_operand:V2HI 1 "general_operand" "i,di,md,d"))]
 
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
   "@
    #
    %0 = %1;
 (define_insn "*movhi_insn"
   [(set (match_operand:HI 0 "nonimmediate_operand" "=x,da,x,d,mr")
         (match_operand:HI 1 "general_operand" "x,xKs7,xKsh,mr,d"))]
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
 {
   static const char *templates[] = {
     "%0 = %1;",
 (define_insn "*movqi_insn"
   [(set (match_operand:QI 0 "nonimmediate_operand" "=x,da,x,d,mr")
         (match_operand:QI 1 "general_operand" "x,xKs7,xKsh,mr,d"))]
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
   "@
    %0 = %1;
    %0 = %1 (X);
 (define_insn "*movsf_insn"
   [(set (match_operand:SF 0 "nonimmediate_operand" "=x,x,da,mr")
         (match_operand:SF 1 "general_operand" "x,Fx,mr,da"))]
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
   "@
    %0 = %1;
    #
 (define_insn_and_split "movdf_insn"
   [(set (match_operand:DF 0 "nonimmediate_operand" "=x,mx,r")
        (match_operand:DF 1 "general_operand" "iFx,r,mx"))]
-  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) == REG"
   "#"
   "reload_completed"
   [(set (match_dup 2) (match_dup 3))