Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
At a high-level these changes add M68040 floating point disassembly (not lifting) support. This doesn't add support for every floating point instruction, but just the instructions contained in my target binaries.
Support for disassembling the 'cinv' and 'pflush' instructions was also added.
Unfortunately, the changes are more intrusive than I would have liked. To be able to share the existing logic in 'decode_effective_address()' with the floating point logic, I had to modify its API to take a size in bytes. But on the positive side that code can now be shared (and not duplicated).
I also updated the IL methods of the new floating point operand classes, but it is not tested. It won't be needed until proper support for lifting of the floating point instructions is added. Every attempt has been made, though, to test the new disassembly logic. The accuracy of the disassembly was verified using GCC's m68k cross-toolchain.
A few other considerations I'd like to point out: