public void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // If there is no definite branch in any of the cases below, // branch to the default offset. branchUnit.branch(clazz, codeAttribute, offset, offset + tableSwitchInstruction.defaultOffset); for (int index = 0; index < tableSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( tableSwitchInstruction.lowCase + index)); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.jumpOffsets[index], conditional); // If this branch is always taken, we can skip the rest. if (conditional == Value.ALWAYS) { break; } } }
branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; stack.clear(); stack.push(exceptionReferenceValue); branchUnit.throwException(); break;
public void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // Maybe branch to the default offset. branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.defaultOffset, Value.MAYBE); for (int index = 0; index < lookUpSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( lookUpSwitchInstruction.cases[index])); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.jumpOffsets[index], conditional); } } }
branchUnit.branch(clazz, codeAttribute, offset,
branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; stack.clear(); stack.push(exceptionReferenceValue); branchUnit.throwException(); break;
public void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // Maybe branch to the default offset. branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.defaultOffset, Value.MAYBE); for (int index = 0; index < tableSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( tableSwitchInstruction.lowCase + index)); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.jumpOffsets[index], conditional); } }
branchUnit.branch(clazz, codeAttribute, offset,
public void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // If there is no definite branch in any of the cases below, // branch to the default offset. branchUnit.branch(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.defaultOffset); for (int index = 0; index < lookUpSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( lookUpSwitchInstruction.cases[index])); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.jumpOffsets[index], conditional); // If this branch is always taken, we can skip the rest. if (conditional == Value.ALWAYS) { break; } } }
branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; stack.clear(); stack.push(exceptionReferenceValue); branchUnit.throwException(); break;
public void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // Maybe branch to the default offset. branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.defaultOffset, Value.MAYBE); for (int index = 0; index < lookUpSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( lookUpSwitchInstruction.cases[index])); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.jumpOffsets[index], conditional); } } }
branchUnit.branch(clazz, codeAttribute, offset,
branchUnit.branchConditionally(clazz, codeAttribute, offset, branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().equal(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().notEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget,
branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; branchUnit.returnFromMethod(); break; stack.clear(); stack.push(exceptionReferenceValue); branchUnit.throwException(); break;
public void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // Maybe branch to the default offset. branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.defaultOffset, Value.MAYBE); for (int index = 0; index < tableSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( tableSwitchInstruction.lowCase + index)); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.jumpOffsets[index], conditional); } }
branchUnit.branch(clazz, codeAttribute, offset,
branchUnit.branchConditionally(clazz, codeAttribute, offset, branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().equal(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().notEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget,
public void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // Maybe branch to the default offset. branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.defaultOffset, Value.MAYBE); for (int index = 0; index < tableSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( tableSwitchInstruction.lowCase + index)); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + tableSwitchInstruction.jumpOffsets[index], conditional); } }
branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().equal(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().notEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().equal(stack.ipop())); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget,
public void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction) { IntegerValue indexValue = stack.ipop(); // Maybe branch to the default offset. branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.defaultOffset, Value.MAYBE); for (int index = 0; index < lookUpSwitchInstruction.jumpOffsets.length; index++) { int conditional = indexValue.equal(valueFactory.createIntegerValue( lookUpSwitchInstruction.cases[index])); branchUnit.branchConditionally(clazz, codeAttribute, offset, offset + lookUpSwitchInstruction.jumpOffsets[index], conditional); } } }
branchUnit.branchConditionally(clazz, codeAttribute, offset, branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().equal(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().notEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().greaterThan(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget, stack.ipop().lessThanOrEqual(valueFactory.createIntegerValue(0))); break; branchUnit.branchConditionally(clazz, codeAttribute, offset, branchTarget,