[comp.os.minix] C68 problems

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.