[comp.os.minix] 68000 C Compiler C68.II - Patch 3

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (09/19/90)

68000 C-Compiler C68, Version II, Patch Number 3
================================================

two errors were reported from the net and fixed:

1.) There was an error in optimize.c, peep_and() which converted

move.w 0(a0,d0.l),d0
and.l  #65535,d0

to

clr.l  d0
move.w 0(a0,d0.l),d0

i.e. the source depends on the target (d0). this is now checked for.
The only other case where an operand depends on a data register
would be move.w d0,d0. Other addressing modes exist (pc,d0.l), but are
not used by the compiler. move.l d0,d0 is already eliminated at this point.

There should be a function which very generally checks such dependencies.

2.) There was a problem doing arithmetic with enums.

The net convinced me that C should handle enums less strict than PASCAL.
So I convert enums to int in forcefit and to short in forceft2, knowing that	enu
Christoph van Wuellen