case Opcode.DLOAD : case Opcode.ALOAD : readLocal(ci.byteAt(pos + 1)); break; case Opcode.ILOAD_0 : case Opcode.ILOAD_2 : case Opcode.ILOAD_3 : readLocal(op - Opcode.ILOAD_0); break; case Opcode.LLOAD_0 : case Opcode.LLOAD_2 : case Opcode.LLOAD_3 : readLocal(op - Opcode.LLOAD_0); break; case Opcode.FLOAD_0 : case Opcode.FLOAD_2 : case Opcode.FLOAD_3 : readLocal(op - Opcode.FLOAD_0); break; case Opcode.DLOAD_0 : case Opcode.DLOAD_2 : case Opcode.DLOAD_3 : readLocal(op - Opcode.DLOAD_0); break; case Opcode.ALOAD_0 :
case Opcode.DLOAD : case Opcode.ALOAD : readLocal(ci.byteAt(pos + 1)); break; case Opcode.ILOAD_0 : case Opcode.ILOAD_2 : case Opcode.ILOAD_3 : readLocal(op - Opcode.ILOAD_0); break; case Opcode.LLOAD_0 : case Opcode.LLOAD_2 : case Opcode.LLOAD_3 : readLocal(op - Opcode.LLOAD_0); break; case Opcode.FLOAD_0 : case Opcode.FLOAD_2 : case Opcode.FLOAD_3 : readLocal(op - Opcode.FLOAD_0); break; case Opcode.DLOAD_0 : case Opcode.DLOAD_2 : case Opcode.DLOAD_3 : readLocal(op - Opcode.DLOAD_0); break; case Opcode.ALOAD_0 :
private void doWIDE(CodeIterator ci, int pos) throws BadBytecode { int op = ci.byteAt(pos + 1); int var = ci.u16bitAt(pos + 2); switch (op) { case Opcode.ILOAD : case Opcode.LLOAD : case Opcode.FLOAD : case Opcode.DLOAD : case Opcode.ALOAD : readLocal(var); break; case Opcode.ISTORE : case Opcode.LSTORE : case Opcode.FSTORE : case Opcode.DSTORE : case Opcode.ASTORE : writeLocal(var); break; case Opcode.IINC : readLocal(var); // this does not call writeLocal(). break; } } }
private void doWIDE(CodeIterator ci, int pos) throws BadBytecode { int op = ci.byteAt(pos + 1); int var = ci.u16bitAt(pos + 2); switch (op) { case Opcode.ILOAD : case Opcode.LLOAD : case Opcode.FLOAD : case Opcode.DLOAD : case Opcode.ALOAD : readLocal(var); break; case Opcode.ISTORE : case Opcode.LSTORE : case Opcode.FSTORE : case Opcode.DSTORE : case Opcode.ASTORE : writeLocal(var); break; case Opcode.IINC : readLocal(var); // this does not call writeLocal(). break; } } }
protected void analyze(CodeIterator ci, int begin, int end) throws BadBytecode { ci.begin(); ci.move(begin); while (ci.hasNext()) { int index = ci.next(); if (index >= end) break; int op = ci.byteAt(index); if (op < 96) if (op < 54) doOpcode0_53(ci, index, op); else doOpcode54_95(ci, index, op); else if (op == Opcode.IINC) { // this does not call writeLocal(). readLocal(ci.byteAt(index + 1)); } else if (op == Opcode.WIDE) doWIDE(ci, index); } }
protected void analyze(CodeIterator ci, int begin, int end) throws BadBytecode { ci.begin(); ci.move(begin); while (ci.hasNext()) { int index = ci.next(); if (index >= end) break; int op = ci.byteAt(index); if (op < 96) if (op < 54) doOpcode0_53(ci, index, op); else doOpcode54_95(ci, index, op); else if (op == Opcode.IINC) { // this does not call writeLocal(). readLocal(ci.byteAt(index + 1)); } else if (op == Opcode.WIDE) doWIDE(ci, index); } }