GT-3223_emteere Minor changes for performance issues on large programs

This commit is contained in:
emteere
2019-10-08 15:58:05 -04:00
parent 04f7366a62
commit ded1fbbeb4
3 changed files with 6 additions and 5 deletions

View File

@@ -71,6 +71,8 @@ public class PseudoDisassembler {
private boolean respectExecuteFlag = false; private boolean respectExecuteFlag = false;
private AddressSetView executeSet;
/** /**
* Create a pseudo disassembler for the given program. * Create a pseudo disassembler for the given program.
*/ */
@@ -78,6 +80,8 @@ public class PseudoDisassembler {
this.program = program; this.program = program;
memory = program.getMemory(); memory = program.getMemory();
executeSet = memory.getExecuteSet();
this.language = program.getLanguage(); this.language = program.getLanguage();
@@ -615,8 +619,6 @@ public class PseudoDisassembler {
return false; return false;
} }
AddressSetView executeSet = memory.getExecuteSet();
RepeatInstructionByteTracker repeatInstructionByteTracker = RepeatInstructionByteTracker repeatInstructionByteTracker =
new RepeatInstructionByteTracker(MAX_REPEAT_BYTES_LIMIT, null); new RepeatInstructionByteTracker(MAX_REPEAT_BYTES_LIMIT, null);
@@ -878,7 +880,6 @@ public class PseudoDisassembler {
} }
// check that body does not wander into non-executable memory // check that body does not wander into non-executable memory
AddressSetView executeSet = program.getMemory().getExecuteSet();
if (respectExecuteFlag && !executeSet.isEmpty() && !body.subtract(executeSet).isEmpty()) { if (respectExecuteFlag && !executeSet.isEmpty() && !body.subtract(executeSet).isEmpty()) {
return false; return false;
} }

View File

@@ -390,7 +390,7 @@ class BigRefListV0 extends RefList {
if (maxLevel < level) { if (maxLevel < level) {
maxLevel = level; maxLevel = level;
} }
if (level > currentRefLevel) { if (level >= currentRefLevel) {
return level; return level;
} }
} }

View File

@@ -342,7 +342,7 @@ class RefListV0 extends RefList {
if (maxLevel < level) { if (maxLevel < level) {
maxLevel = level; maxLevel = level;
} }
if (level > currentRefLevel) { if (level >= currentRefLevel) {
return level; return level;
} }
} }