mirror of https://github.com/stella-emu/stella.git
Another attempt to fix #931 in a good way.
This commit is contained in:
parent
acbdaed7f3
commit
dd5b16f997
|
@ -755,7 +755,7 @@ void DiStella::disasmFromAddress(uInt32 distart)
|
||||||
// abort when we reach non-code areas
|
// abort when we reach non-code areas
|
||||||
if (checkBits(myPC, Device::Device::DATA | Device::GFX | Device::PGFX |
|
if (checkBits(myPC, Device::Device::DATA | Device::GFX | Device::PGFX |
|
||||||
Device::COL | Device::PCOL | Device::BCOL |
|
Device::COL | Device::PCOL | Device::BCOL |
|
||||||
Device::AUD | Device::ROW,
|
Device::AUD,
|
||||||
Device::CODE)) {
|
Device::CODE)) {
|
||||||
myPCEnd = (myPC - 1) + myOffset;
|
myPCEnd = (myPC - 1) + myOffset;
|
||||||
return;
|
return;
|
||||||
|
@ -804,7 +804,7 @@ void DiStella::disasmFromAddress(uInt32 distart)
|
||||||
// handle JMP/JSR
|
// handle JMP/JSR
|
||||||
if (ourLookup[opcode].source == AccessMode::ADDR) {
|
if (ourLookup[opcode].source == AccessMode::ADDR) {
|
||||||
// do NOT use flags set by debugger, else known CODE will not analyzed statically.
|
// do NOT use flags set by debugger, else known CODE will not analyzed statically.
|
||||||
if (!checkBit(ad & myAppData.end, Device::CODE, false)) {
|
if (!checkBit(ad & myAppData.end, Device::CODE | Device::ROW, false)) {
|
||||||
if (ad > 0xfff)
|
if (ad > 0xfff)
|
||||||
myAddressQueue.push((ad & myAppData.end) + myOffset);
|
myAddressQueue.push((ad & myAppData.end) + myOffset);
|
||||||
mark(ad, Device::CODE);
|
mark(ad, Device::CODE);
|
||||||
|
@ -858,7 +858,7 @@ void DiStella::disasmFromAddress(uInt32 distart)
|
||||||
ad = ((myPC + static_cast<Int8>(d1)) & 0xfff) + myOffset;
|
ad = ((myPC + static_cast<Int8>(d1)) & 0xfff) + myOffset;
|
||||||
mark(ad, Device::REFERENCED);
|
mark(ad, Device::REFERENCED);
|
||||||
// do NOT use flags set by debugger, else known CODE will not analyzed statically.
|
// do NOT use flags set by debugger, else known CODE will not analyzed statically.
|
||||||
if (!checkBit(ad - myOffset, Device::CODE, false)) {
|
if (!checkBit(ad - myOffset, Device::CODE | Device::ROW, false)) {
|
||||||
myAddressQueue.push(ad);
|
myAddressQueue.push(ad);
|
||||||
mark(ad, Device::CODE);
|
mark(ad, Device::CODE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue