List of usage examples for org.objectweb.asm MethodVisitor visitLocalVariable
public void visitLocalVariable(final String name, final String descriptor, final String signature, final Label start, final Label end, final int index)
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testIntConstant() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(I)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);/* www. ja v a 2s. com*/ Label end = new Label(); mv.visitIntInsn(BIPUSH, 65); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int) {\n" + " i = 65\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testNegative() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(II)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);//from ww w. j a va2 s. c o m Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitInsn(INEG); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int) {\n" + " i = -a\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testAdd() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);/* w ww. j a v a 2s . co m*/ Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(IADD); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a + b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testSub() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);// ww w . ja va 2 s . com Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(ISUB); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a - b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testMultiply() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);// w ww . j a v a2 s . c o m Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(IMUL); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a * b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testDiv() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);/*from w ww. j av a 2s.c o m*/ Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(IDIV); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a / b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testRem() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);//from www .jav a2 s . c o m Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(IREM); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a % b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testShr() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);//w w w. j a v a2s . c om Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(ISHR); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a shr b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testUshr() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);/*from www. j a v a2 s.c o m*/ Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(IUSHR); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a ushr b\n" + "}"; Assert.assertEquals(good, insn); }
From source file:org.spongepowered.test.kotlin.OperatorTests.java
License:Open Source License
@Test public void testShl() { TestMethodBuilder builder = new TestMethodBuilder("test_mth", "(III)V"); MethodVisitor mv = builder.getGenerator(); Label start = new Label(); mv.visitLabel(start);//from w ww .j a v a 2 s . c o m Label end = new Label(); mv.visitIntInsn(ILOAD, 1); mv.visitIntInsn(ILOAD, 2); mv.visitInsn(ISHL); mv.visitIntInsn(ISTORE, 0); mv.visitLabel(end); mv.visitInsn(RETURN); mv.visitLocalVariable("i", "I", null, start, end, 0); mv.visitLocalVariable("a", "I", null, start, end, 1); mv.visitLocalVariable("b", "I", null, start, end, 2); String insn = KotlinTestHelper.getMethodAsString(builder.finish(), "test_mth"); String good = "fun test_mth(i: Int, a: Int, b: Int) {\n" + " i = a shl b\n" + "}"; Assert.assertEquals(good, insn); }