+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.
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).