Commit 45a45488 by Bernd Schmidt Committed by Bernd Schmidt

m68k.c (m68k_output_compare_fp): Restore differences between Coldfire and regular m68k.

	* config/m68k/m68k.c (m68k_output_compare_fp): Restore differences
	between Coldfire and regular m68k.
	* config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants.

From-SVN: r278767
parent 477daf83
2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
* config/m68k/m68k.c (m68k_output_compare_fp): Restore differences
between Coldfire and regular m68k.
* config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants.
2019-11-27 Richard Biener <rguenther@suse.de> 2019-11-27 Richard Biener <rguenther@suse.de>
* target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
...@@ -4501,7 +4501,12 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code) ...@@ -4501,7 +4501,12 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code)
if (op1 == CONST0_RTX (GET_MODE (op0))) if (op1 == CONST0_RTX (GET_MODE (op0)))
{ {
if (FP_REG_P (op0)) if (FP_REG_P (op0))
output_asm_insn ("ftst%.x %0", ops); {
if (TARGET_COLDFIRE_FPU)
output_asm_insn ("ftst%.d %0", ops);
else
output_asm_insn ("ftst%.x %0", ops);
}
else else
output_asm_insn (("ftst%." + prec + " %0").c_str (), ops); output_asm_insn (("ftst%." + prec + " %0").c_str (), ops);
return code; return code;
...@@ -4510,7 +4515,10 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code) ...@@ -4510,7 +4515,10 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code)
switch (which_alternative) switch (which_alternative)
{ {
case 0: case 0:
output_asm_insn ("fcmp%.x %1,%0", ops); if (TARGET_COLDFIRE_FPU)
output_asm_insn ("fcmp%.d %1,%0", ops);
else
output_asm_insn ("fcmp%.x %1,%0", ops);
break; break;
case 1: case 1:
output_asm_insn (("fcmp%." + prec + " %f1,%0").c_str (), ops); output_asm_insn (("fcmp%." + prec + " %f1,%0").c_str (), ops);
......
...@@ -496,7 +496,7 @@ ...@@ -496,7 +496,7 @@
;; needs to be reloaded. ;; needs to be reloaded.
(define_mode_attr scc0_cf_constraints [(QI "=d") (HI "=d") (SI "=d,d,d")]) (define_mode_attr scc0_cf_constraints [(QI "=d") (HI "=d") (SI "=d,d,d")])
(define_mode_attr cmp1_cf_constraints [(QI "dm") (HI "dm") (SI "mrKs,r,rm")]) (define_mode_attr cmp1_cf_constraints [(QI "dm") (HI "dm") (SI "mr,r,rm")])
(define_mode_attr cmp2_cf_constraints [(QI "C0") (HI "C0") (SI "r,mrKs,C0")]) (define_mode_attr cmp2_cf_constraints [(QI "C0") (HI "C0") (SI "r,mrKs,C0")])
(define_mode_attr cmp2_cf_predicate [(QI "const0_operand") (HI "const0_operand") (SI "general_operand")]) (define_mode_attr cmp2_cf_predicate [(QI "const0_operand") (HI "const0_operand") (SI "general_operand")])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment