[comp.sys.m68k] 68020 bfffo instruction

andy@cit-vax.UUCP (03/13/87)

The bfffo instruction can take a bit offset in a register in which
case the range is that of a 32-bit signed integer.  The returned
offset is in the range [orignal_offset .. original_offset+field_width].
If the given offset is very near 2^31 - 1, the returned offset can
be negative (and hence wrong).  This gives no indication of an error.
(I'd expect the overflow flag to be raised.)  The N and Z flags
arise from the value in the bit field and not the returned value of
the offset -- is this why the overflow is ignored (since there is no
overflow in the bit field itself)?

As an aside, are all the memory references for the PC indirect
addressing modes made to the program space?  (This isn't clear from
my reading of the manual, at least for the reference through the
indirect pointer, but for consistency, I'd have to assume they are.)

Andy Fyfe				andy@csvax.caltech.edu