s390.md ("fix_trunc<mode>di2", [...]): Expander removed.
authorAndreas Krebbel <krebbel1@de.ibm.com>
Fri, 4 May 2007 16:23:08 +0000 (16:23 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Fri, 4 May 2007 16:23:08 +0000 (16:23 +0000)
2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>

* config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
Expander removed.
("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.

From-SVN: r124433

gcc/ChangeLog
gcc/config/s390/s390.md

index b31ca09b49e322758a144d5bc2f89ddfc8cb4331..86cc306e240451ab61388ca969c84589c5f76c43 100644 (file)
@@ -1,3 +1,9 @@
+2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
+       Expander removed.
+       ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
+
 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
        
        * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
index 4190535e62c31516cccb57e9695af03ca6d24e32..c4ce3f46d68e1180ba1b98d4fba0e9347ff26b01 100644 (file)
   DONE;
 })
 
-(define_expand "fix_trunc<mode>di2"
-  [(set (match_operand:DI 0 "register_operand" "")
-        (fix:DI (match_operand:DSF 1 "nonimmediate_operand" "")))]
-  "TARGET_64BIT && TARGET_HARD_FLOAT"
+(define_expand "fix_trunc<DSF:mode><GPR:mode>2"
+  [(set (match_operand:GPR 0 "register_operand" "")
+        (fix:GPR (match_operand:DSF 1 "register_operand" "")))]
+  "TARGET_HARD_FLOAT"
 {
-  operands[1] = force_reg (<MODE>mode, operands[1]);
-  emit_insn (gen_fix_trunc<mode>di2_bfp (operands[0], operands[1],
-      GEN_INT (5)));
+  emit_insn (gen_fix_trunc<DSF:mode><GPR:mode>2_bfp (operands[0], operands[1],
+             GEN_INT (5)));
   DONE;
 })
 
   "TARGET_HARD_FLOAT"
   "")
 
-;
-; fix_trunc(df|sf)si2 instruction pattern(s).
-;
-
-(define_expand "fix_trunc<mode>si2"
-  [(set (match_operand:SI 0 "register_operand" "")
-        (fix:SI (match_operand:DSF 1 "nonimmediate_operand" "")))]
-  "TARGET_HARD_FLOAT"
-{
-  operands[1] = force_reg (<MODE>mode, operands[1]);
-  emit_insn (gen_fix_trunc<mode>si2_bfp (operands[0], operands[1], GEN_INT (5)));
-  DONE;
-})
 
 ;
 ; float(si|di)(tf|df|sf|td|dd)2 instruction pattern(s).