OSDN Git Service

* sparc/sparc.md (mov[sdt]f_const_insn): Fix condition to match
authordevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Nov 1997 00:39:39 +0000 (00:39 +0000)
committerdevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Nov 1997 00:39:39 +0000 (00:39 +0000)
what the instruction can handle.

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

gcc/ChangeLog
gcc/config/sparc/sparc.md

index 3322230..b0b82d9 100644 (file)
@@ -1,3 +1,8 @@
+Mon Nov 10 16:21:58 1997  Doug Evans  <devans@canuck.cygnus.com>
+
+       * sparc/sparc.md (mov[sdt]f_const_insn): Fix condition to match
+       what the instruction can handle.
+
 Mon Nov 10 03:02:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
        * stmt.c (expand_decl_cleanup_no_eh): New fn.
index b1afbcd..8ec12f5 100644 (file)
 (define_insn "*movsf_const_insn"
   [(set (match_operand:SF 0 "general_operand" "=?r,f,m")
        (match_operand:SF 1 "" "?F,m,G"))]
-  "TARGET_FPU && GET_CODE (operands[1]) == CONST_DOUBLE"
+  "TARGET_FPU
+   && GET_CODE (operands[1]) == CONST_DOUBLE
+   && (GET_CODE (operands[0]) == REG
+       || fp_zero_operand (operands[1]))"
   "*
 {
   switch (which_alternative)
 (define_insn "*movdf_const_insn"
   [(set (match_operand:DF 0 "general_operand" "=?r,e,o")
        (match_operand:DF 1 "" "?F,m,G"))]
-  "TARGET_FPU && GET_CODE (operands[1]) == CONST_DOUBLE"
+  "TARGET_FPU
+   && GET_CODE (operands[1]) == CONST_DOUBLE
+   && (GET_CODE (operands[0]) == REG
+       || fp_zero_operand (operands[1]))"
   "*
 {
   switch (which_alternative)
 (define_insn "*movtf_const_insn"
   [(set (match_operand:TF 0 "general_operand" "=?r,e,o")
        (match_operand:TF 1 "" "?F,m,G"))]
-  "TARGET_FPU && GET_CODE (operands[1]) == CONST_DOUBLE"
+  "TARGET_FPU
+   && GET_CODE (operands[1]) == CONST_DOUBLE
+   && (GET_CODE (operands[0]) == REG
+       || fp_zero_operand (operands[1]))"
   "*
 {
   switch (which_alternative)