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