This PR adds a simple command-line debugger. It can be invoked like that:
./dingusppc debugger
Moreover, I fixed the following stuff:
mask generation for rotation instructions (rlwinm, rlwimi, rlwnm)
XER[CA] updates for addc, adde & subfic
mfmsr emulation
These fixes are enough to pass the PowerMac 6100 ROM checksum validation.
Please note that carry update logic after adde has been taken from http://tomoyo.osdn.jp/cgi-bin/lxr/source/arch/powerpc/lib/sstep.c?v=linux-4.12.14#L1113
Unfortunately, it does't match the MAME debugger. The question is which one - Linux code or MAME debugger - is wrong. I don't know.
Carry updates after subfze and perhaps some other arithmetic instructions are wrong and need to be carefully checked and fixed...
This PR adds a simple command-line debugger. It can be invoked like that:
./dingusppc debugger
Moreover, I fixed the following stuff:
These fixes are enough to pass the PowerMac 6100 ROM checksum validation.
Please note that carry update logic after
adde
has been taken from http://tomoyo.osdn.jp/cgi-bin/lxr/source/arch/powerpc/lib/sstep.c?v=linux-4.12.14#L1113 Unfortunately, it does't match the MAME debugger. The question is which one - Linux code or MAME debugger - is wrong. I don't know. Carry updates aftersubfze
and perhaps some other arithmetic instructions are wrong and need to be carefully checked and fixed...