On 11/23/19 9:53 PM, Bernd Schmidt wrote: > I'll spend a few more days trying to see if I can do something about the > bootstrap failure Mikael saw (currently trying to do a two-stage cross > build rather than a really slow bootstrap).
Whew, I think I have it. One tst instruction eliminated when it shouldn't have been: move.w %a4,%d0 - tst.b %d0 - jeq .L352 + jeq .L353 And the reason - that's a movqi using move.w. The following should fix it. I'll run a few more tests, and then check it all in as Jeff suggested if things looks OK. Bernd
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index c72325fa4ab..8d010ebe6e9 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -3314,7 +3314,11 @@ output_move_qimode (rtx *operands) /* 68k family (including the 5200 ColdFire) does not support byte moves to from address registers. */ if (ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1])) - return "move%.w %1,%0"; + { + if (ADDRESS_REG_P (operands[1])) + CC_STATUS_INIT; + return "move%.w %1,%0"; + } return "move%.b %1,%0"; }