mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-25 21:15:50 +08:00
GT-3511 revised fix for branch to self with invalid delay slot
This commit is contained in:
+2
-2
@@ -1152,12 +1152,12 @@ public class Disassembler implements DisassemblerConflictHandler {
|
||||
throws InsufficientBytesException, UnknownInstructionException,
|
||||
AddressOverflowException, NestedDelaySlotException {
|
||||
|
||||
List<PseudoInstruction> delaySlotList = parseDelaySlots(inst, blockMemBuffer, block);
|
||||
|
||||
if (followFlow) {
|
||||
processInstructionFlows(inst, block);
|
||||
}
|
||||
|
||||
List<PseudoInstruction> delaySlotList = parseDelaySlots(inst, blockMemBuffer, block);
|
||||
|
||||
block.addInstruction(inst);
|
||||
|
||||
if (delaySlotList != null) {
|
||||
|
||||
-3
@@ -174,9 +174,6 @@ class DisassemblerQueue {
|
||||
branchFlow = currentBranchQueue.first();
|
||||
currentBranchQueue.remove(branchFlow);
|
||||
}
|
||||
if (processedBranchFlows.contains(branchFlow)) {
|
||||
continue;
|
||||
}
|
||||
processedBranchFlows.add(branchFlow);
|
||||
|
||||
Address blockAddr = branchFlow.getDestinationAddress();
|
||||
|
||||
Reference in New Issue
Block a user