Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2573/src/com/mebigfatguy/fbcontrib/detect
Modified Files:
ParallelLists.java
Log Message:
if the register changes inbetween the two lists, clear the list for the reg
Index: ParallelLists.java
===================================================================
RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ParallelLists.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ParallelLists.java 25 Sep 2005 05:46:46 -0000 1.3
+++ ParallelLists.java 25 Sep 2005 06:07:02 -0000 1.4
@@ -90,6 +90,9 @@
}
} else if ((seen >= IFEQ) && (seen <= RETURN)) {
indexToFieldMap.clear();
+ } else if ((seen == ISTORE) || (seen == IINC) || ((seen >= ISTORE_0) && (seen <= ISTORE_3))) {
+ int reg = getIntOpRegister(seen);
+ indexToFieldMap.remove(new Integer(reg));
} else if ((seen >= IALOAD) && (seen <= SALOAD)) {
checkParms();
}
@@ -98,6 +101,12 @@
}
}
+ private int getIntOpRegister(int seen) {
+ if ((seen == ISTORE) || (seen == IINC))
+ return getRegisterOperand();
+ return seen - ISTORE_0;
+ }
+
private void checkParms() {
if (stack.getStackDepth() >= 2) {
OpcodeStack.Item index = stack.getStackItem(0);
|