i386.md (movsf_1): Allow moving SF values in MMX registers.
authorJakub Jelinek <jakub@redhat.com>
Mon, 4 Feb 2002 09:48:34 +0000 (10:48 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 4 Feb 2002 09:48:34 +0000 (10:48 +0100)
* config/i386/i386.md (movsf_1): Allow moving SF values in MMX
registers.

From-SVN: r49474

gcc/ChangeLog
gcc/config/i386/i386.md

index 825d95e450809b02e86cb0ac6c526d8cfc5ea72d..11e1f63ab16ac44f9ecb536f0141659ec9fd660e 100644 (file)
@@ -1,3 +1,8 @@
+2002-02-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
+       registers.
+
 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
 
        * combine.c (recog_for_combine): Create a dummy insn with PATTERN
index b9f6c1508883495f788cd3075ccfe98f26b596da..e85cb95168b0edb84915bdb2c60bc667486d7426 100644 (file)
    (set (mem:SF (reg:DI 7)) (match_dup 1))])
 
 (define_insn "*movsf_1"
-  [(set (match_operand:SF 0 "nonimmediate_operand" "=f#xr,m,f#xr,r#xf,m,x#rf,x#rf,x#rf,m")
-       (match_operand:SF 1 "general_operand" "fm#rx,f#rx,G,rmF#fx,Fr#fx,H,x,xm#rf,x#rf"))]
+  [(set (match_operand:SF 0 "nonimmediate_operand" "=f#xr,m,f#xr,r#xf,m,x#rf,x#rf,x#rf,m,!*y,!rm")
+       (match_operand:SF 1 "general_operand" "fm#rx,f#rx,G,rmF#fx,Fr#fx,H,x,xm#rf,x#rf,rm,*y"))]
   "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
    && (reload_in_progress || reload_completed
        || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
     case 8:
       return "movss\t{%1, %0|%0, %1}";
 
+    case 9:
+    case 10:
+      return "movd\t{%1, %0|%0, %1}";
+
     default:
       abort();
     }
 }
-  [(set_attr "type" "fmov,fmov,fmov,imov,imov,sse,sse,sse,sse")
-   (set_attr "mode" "SF,SF,SF,SI,SI,TI,SF,SF,SF")])
+  [(set_attr "type" "fmov,fmov,fmov,imov,imov,sse,sse,sse,sse,mmx,mmx")
+   (set_attr "mode" "SF,SF,SF,SI,SI,TI,SF,SF,SF,SI,SI")])
 
 (define_insn "*swapsf"
   [(set (match_operand:SF 0 "register_operand" "+f")