The ashrdi3_const1 and lshrdi3_const1 insns don't produce a useful CC
status.  This fixes the 20_util/to_chars/1.cc test in the libstdc++
testsuite.

Andreas.

        * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add
        CC_STATUS_INIT.

diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 628e3889bb..a3a0f197db 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -4683,6 +4683,7 @@
   "!TARGET_COLDFIRE"
 {
   operands[1] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
+  CC_STATUS_INIT;
   return "asr%.l #1,%0\;roxr%.l #1,%1";
 })
 
@@ -4919,7 +4920,10 @@
        (lshiftrt:DI (match_operand:DI 1 "register_operand" "0")
                     (const_int 1)))]
   "!TARGET_COLDFIRE"
-  "lsr%.l #1,%0\;roxr%.l #1,%R0")
+{
+  CC_STATUS_INIT;
+  return "lsr%.l #1,%0\;roxr%.l #1,%R0";
+})
 
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
-- 
2.15.1


-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

Reply via email to