forecast@shell.nac.dec.com (John Forecast) (09/08/90)
I tried to mail directly to Christoph but it doesn't look as though it made it.
1. Patch 2 seems to have broken some enum arithmetic. In particular,
enum - enum now reports an error from g_addsub indicating that the compiler
does not support the operation or it's a compiler bug.
2. The peephole optimizer for and (peep_and) does not check if a source
addressing mode relies on the destination register before applying one of
it's optimizations. This results in:
move.w 0(a2,d0.l),d0
and.l #65535,d0.l being changed to
clr.l d0.l
move.w 0(a2,d0.l),d0
I added the following check to the last if statement in peep_and
|| (prev->oper1->mode == am_indx2 &&
prev->oper1->sreg == ip->oper2->preg)
If you use C68 to build your kernel, there is at least one of these in
mm/signal.s.
John.