aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2002-02-04 10:48:34 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2002-02-04 10:48:34 +0100
commitac300a450e90716c10f8aaaf1ecbafba6ec2f8e2 (patch)
tree540a4514d4fb5a2eebb3dfd906fbb121aabe659b /gcc
parentfa85240399ae47b61db39f956ce498aecac4daf3 (diff)
downloadgcc-ac300a450e90716c10f8aaaf1ecbafba6ec2f8e2.zip
gcc-ac300a450e90716c10f8aaaf1ecbafba6ec2f8e2.tar.gz
gcc-ac300a450e90716c10f8aaaf1ecbafba6ec2f8e2.tar.bz2
i386.md (movsf_1): Allow moving SF values in MMX registers.
* config/i386/i386.md (movsf_1): Allow moving SF values in MMX registers. From-SVN: r49474
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.md12
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 825d95e..11e1f63 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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
pat for recog.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index b9f6c15..e85cb95 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2713,8 +2713,8 @@
(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)
@@ -2762,12 +2762,16 @@
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")