List of usage examples for org.objectweb.asm Opcodes ICONST_2
int ICONST_2
To view the source code for org.objectweb.asm Opcodes ICONST_2.
Click Source Link
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * //from ww w . j a v a 2 s . c om * Input is * * <pre> * if(1<2) * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_CMPEG() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPGE, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(6, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(3, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * //from w w w.j ava2 s . c o m * Input is * * <pre> * if(1<=2) * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_ICMPGT() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPGT, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(6, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(3, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * //w ww .j a v a2s . co m * Input is * * <pre> * if(2>1) * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_ICMPLE() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPLE, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(6, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(3, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * //w w w. jav a2s .c o m * Input is * * <pre> * if(2>=1) * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_ICMPLT() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPLT, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(6, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(3, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * // ww w. j a v a 2s. c o m * Input is * * <pre> * if(1!=2) * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_ICMPEQ() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPEQ, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(6, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(3, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * // w ww .j a v a2 s. com * Input is * * <pre> * if(1>2) * ... * else * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_ICMPLEWithElseChooseIf() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); final LabelNode label2 = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPLE, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(new JumpInsnNode(Opcodes.GOTO, label2)).// addInsn(label).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label2).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(10, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(4, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); assertEquals(Opcodes.NOP, optimized.get(1).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.controlflow.ConstantIfInlinerTest.java
License:Open Source License
/** * Tests that constantIfInliner is working correctly. * //w w w. j a v a2 s. c o m * Input is * * <pre> * if(2>1) * ... * else * ... * </pre> * * @throws JBOPClassException * the jBOP class exception */ @Test public void testConstantIfInlinerIF_ICMPLEWithElseChooseElse() throws JBOPClassException { // INIT final LabelNode label = new LabelNode(); final LabelNode label2 = new LabelNode(); builder.addInsn(new InsnNode(Opcodes.ICONST_2)).// addInsn(new InsnNode(Opcodes.ICONST_1)).// addInsn(new JumpInsnNode(Opcodes.IF_ICMPLE, label)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(new JumpInsnNode(Opcodes.GOTO, label2)).// addInsn(label).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(new InsnNode(Opcodes.NOP)).// addInsn(label2).// addInsn(new InsnNode(Opcodes.RETURN)); // RUN assertEquals(10, method.instructions.size()); final InsnList optimized = constantIfInliner.optimize(method.instructions, method); // ASSERT assertEquals(3, optimized.size()); assertEquals(Opcodes.NOP, optimized.get(0).getOpcode()); assertEquals(-1, optimized.get(1).getOpcode()); }
From source file:de.tuberlin.uebb.jbop.optimizer.utils.NodeHelper.java
License:Open Source License
private static AbstractInsnNode getIntInsnNode(final Number newNumber) { switch (newNumber.intValue()) { case CONST_M1: return new InsnNode(Opcodes.ICONST_M1); case CONST_0: return new InsnNode(Opcodes.ICONST_0); case CONST_1: return new InsnNode(Opcodes.ICONST_1); case CONST_2: return new InsnNode(Opcodes.ICONST_2); case CONST_3: return new InsnNode(Opcodes.ICONST_3); case CONST_4: return new InsnNode(Opcodes.ICONST_4); case CONST_5: return new InsnNode(Opcodes.ICONST_5); default:/* ww w. ja v a2s. c o m*/ if (newNumber.intValue() >= CONST_LOW_INT && newNumber.intValue() <= CONST_HIGH_INT) { return new IntInsnNode(getopcodePush(newNumber.intValue()), newNumber.intValue()); } return new LdcInsnNode(newNumber); } }
From source file:de.unisb.cs.st.javalanche.mutation.bytecodeMutations.replaceIntegerConstant.AbstractRicMethodAdapter.java
License:Open Source License
@Override public void visitInsn(int opcode) { if (mutationCode) { super.visitInsn(opcode); return;/*from ww w . j a va 2 s.co m*/ } switch (opcode) { case Opcodes.ICONST_M1: intConstant(-1); break; case Opcodes.ICONST_0: intConstant(0); break; case Opcodes.ICONST_1: intConstant(1); break; case Opcodes.ICONST_2: intConstant(2); break; case Opcodes.ICONST_3: intConstant(3); break; case Opcodes.ICONST_4: intConstant(4); break; case Opcodes.ICONST_5: intConstant(5); break; case Opcodes.LCONST_0: longConstant(0); break; case Opcodes.LCONST_1: longConstant(1); break; case Opcodes.FCONST_0: floatConstant(0); break; case Opcodes.FCONST_1: floatConstant(1); break; case Opcodes.FCONST_2: floatConstant(2); break; case Opcodes.DCONST_0: doubleConstant(0); break; case Opcodes.DCONST_1: doubleConstant(1); break; default: break; } if (forwardCalls) { super.visitInsn(opcode); } }
From source file:de.unisb.cs.st.javalanche.mutation.bytecodeMutations.replaceIntegerConstant.RicMethodAdapter.java
License:Open Source License
@Override public void visitInsn(int opcode) { if (mutationCode) { super.visitInsn(opcode); return;//from w w w . j a va 2 s.c om } switch (opcode) { case Opcodes.ICONST_M1: intConstant(-1); break; case Opcodes.ICONST_0: intConstant(0); break; case Opcodes.ICONST_1: intConstant(1); break; case Opcodes.ICONST_2: intConstant(2); break; case Opcodes.ICONST_3: intConstant(3); break; case Opcodes.ICONST_4: intConstant(4); break; case Opcodes.ICONST_5: intConstant(5); break; case Opcodes.LCONST_0: longConstant(0); break; case Opcodes.LCONST_1: longConstant(1); break; case Opcodes.FCONST_0: floatConstant(0); break; case Opcodes.FCONST_1: floatConstant(1); break; case Opcodes.FCONST_2: floatConstant(2); break; case Opcodes.DCONST_0: doubleConstant(0); break; case Opcodes.DCONST_1: doubleConstant(1); break; default: super.visitInsn(opcode); break; } }