You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The decompiler creates an incorrect instruction flow. Maybe it gets confused by stack manipulation and interrupt control code being interleaved rather than nested.
To Reproduce
Steps to reproduce the behavior:
Load the attached test.bin file as a Z80 binary starting at $8000.
Let auto-analysis start - nothing will happen.
Start disassemble from the very first instruction, the decompiler window will fill up with some invalid code.
Expected behavior
In the decompiled code, enableMaskableInterrupts is supposed to appear after the write to DAT_io_00a1, not right after disableMaskableInterrupts.
@cbuschardt Marking the IO region as volatile lets the decompiler work as intended, indeed. Thanks for the tip.
That said, is it still a bug in the decompiler? Values are written to the IO area, so there are fewer assumptions to be made from the data in question.
Describe the bug
The decompiler creates an incorrect instruction flow. Maybe it gets confused by stack manipulation and interrupt control code being interleaved rather than nested.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
In the decompiled code,
enableMaskableInterrupts
is supposed to appear after the write toDAT_io_00a1
, not right afterdisableMaskableInterrupts
.Screenshots
Attachments
test.bin.gz
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: