Hi,

Currently I'm looking at making a sparse hardware re-implementation of an mcs51-like core. It does not have to be 100% binary compatible as long as it can run compiled C code.

Two opcodes are a nuisance to implement in hardware:

0xd6/0xd7:  XCHD A,(Rx)

these opcodes take the place of what *logically* should have been the following instructions:

0xd6/0xd7: DJNZ (Rx),offset

Though I guess the XCHD opcodes had some use "back in the day", the DJNZ opcodes make more sense to me, and are much less effort to implement. Actually, they come for free while implementing XCHD is a special case in an otherwise mostly regular part of the opcode array. (There are some other instructions that are in odd positions imho)

I've grepped my way through the sources, and found few references to xchd, and my impression is that these instructions will never be emitted, but I'd appreciate some expert input:

Does the mcs51 backend ever emit XCHD instructions?


with kind regards,


Theo



_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to