gay%elde.epfl.ch@cunyvm.cuny.edu (David Gay) (08/01/88)
I recently found a bug in Lattice C 4.01 (both patches), in the 16-bit
library routine movmem (well, actually there were 2 bugs !). Here is a
correct version:
CSECT text
XDEF _movmem
_movmem MOVEA.L 4(A7),A0
MOVEA.L 8(A7),A1
MOVE.W 12(A7),D0
BLE exit
CMPA.L A0,A1
BCS upwards
ADDA.W D0,A0 The old version had ADDA.L ...
ADDA.W D0,A1
SUBQ.W #1,D0
lpdown MOVE.B -(A0),-(A1)
DBRA D0,lpdown
RTS
upwards SUBQ.W #1,D0 This line was missing
loopup MOVE.B (A0)+,(A1)+
DBRA D0,loopup
exit RTS
END
To