m68k.c (m68k_output_compare_fp): Restore differences between Coldfire and regular...
authorBernd Schmidt <bernds_cb1@t-online.de>
Wed, 27 Nov 2019 13:07:44 +0000 (13:07 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 27 Nov 2019 13:07:44 +0000 (13:07 +0000)
* 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

gcc/ChangeLog
gcc/config/m68k/m68k.c
gcc/config/m68k/m68k.md

index e15d2e598c862342154aa8d2773c6b2dd088b6f9..9899c377305a3742031308fb9fe1e994d5a461d0 100644 (file)
@@ -1,3 +1,9 @@
+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>
 
        * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
index 8d010ebe6e94c8f140503c6beb43280f540b45cc..4b30c401e80a3bb66f8a53fbc5fd9a0d34e132e8 100644 (file)
@@ -4501,7 +4501,12 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code)
   if (op1 == CONST0_RTX (GET_MODE (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
        output_asm_insn (("ftst%." + prec + " %0").c_str (), ops);
       return code;
@@ -4510,7 +4515,10 @@ m68k_output_compare_fp (rtx op0, rtx op1, rtx_code code)
   switch (which_alternative)
     {
     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;
     case 1:
       output_asm_insn (("fcmp%." + prec + " %f1,%0").c_str (), ops);
index 25e0b73741f44fad6364d3277cef145c10521537..454f822e39259f4c9be987933a1eead1046800a8 100644 (file)
 ;; needs to be reloaded.
 
 (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_predicate [(QI "const0_operand") (HI "const0_operand") (SI "general_operand")])