Example usage for org.objectweb.asm Opcodes GOTO

List of usage examples for org.objectweb.asm Opcodes GOTO

Introduction

In this page you can find the example usage for org.objectweb.asm Opcodes GOTO.

Prototype

int GOTO

To view the source code for org.objectweb.asm Opcodes GOTO.

Click Source Link

Usage

From source file:lucee.transformer.bytecode.visitor.DecisionDoubleVisitor.java

License:Open Source License

public void visitEnd(BytecodeContext bc) {
    GeneratorAdapter adapter = bc.getAdapter();
    Label l1 = new Label();
    Label l2 = new Label();
    adapter.visitInsn(Opcodes.DCMPL);/* w ww . j  av a 2  s.c  om*/
    adapter.visitJumpInsn(operation, l1);
    adapter.visitInsn(Opcodes.ICONST_1);
    adapter.visitJumpInsn(Opcodes.GOTO, l2);
    adapter.visitLabel(l1);
    adapter.visitInsn(Opcodes.ICONST_0);
    adapter.visitLabel(l2);
}

From source file:lucee.transformer.bytecode.visitor.DecisionIntVisitor.java

License:Open Source License

public void visitEnd(BytecodeContext bc) {
    GeneratorAdapter adapter = bc.getAdapter();

    Label l1 = new Label();
    adapter.visitJumpInsn(operation, l1);
    //mv.visitJumpInsn(IF_ICMPGT, l1);
    adapter.visitInsn(Opcodes.ICONST_0);
    Label l2 = new Label();
    adapter.visitJumpInsn(Opcodes.GOTO, l2);
    adapter.visitLabel(l1);//  w  w  w.  j  a v  a  2  s .c om
    adapter.visitInsn(Opcodes.ICONST_1);
    adapter.visitLabel(l2);

}

From source file:lucee.transformer.bytecode.visitor.DoWhileVisitor.java

License:Open Source License

/**
 *
 * @see lucee.transformer.bytecode.visitor.LoopVisitor#visitContinue(org.objectweb.asm.commons.GeneratorAdapter)
 *///from w  w w  . j  av a2 s. co  m
public void visitContinue(BytecodeContext bc) {
    bc.getAdapter().visitJumpInsn(Opcodes.GOTO, getContinueLabel());
}

From source file:lucee.transformer.bytecode.visitor.DoWhileVisitor.java

License:Open Source License

/**
 *
 * @see lucee.transformer.bytecode.visitor.LoopVisitor#visitBreak(org.objectweb.asm.commons.GeneratorAdapter)
 *//*from  w w  w  .  j  a  va  2 s .com*/
public void visitBreak(BytecodeContext bc) {
    bc.getAdapter().visitJumpInsn(Opcodes.GOTO, getBreakLabel());
}

From source file:lucee.transformer.bytecode.visitor.ForConditionIntVisitor.java

License:Open Source License

/**
 *
 * @see lucee.transformer.bytecode.visitor.LoopVisitor#visitContinue(org.objectweb.asm.commons.GeneratorAdapter)
 *///from ww w. j a v a 2  s.  c om
public void visitContinue(BytecodeContext bc) {
    bc.getAdapter().visitJumpInsn(Opcodes.GOTO, lbegin);
}

From source file:lucee.transformer.bytecode.visitor.ForConditionIntVisitor.java

License:Open Source License

/**
 *
 * @see lucee.transformer.bytecode.visitor.LoopVisitor#visitBreak(org.objectweb.asm.commons.GeneratorAdapter)
 *///from   w w w . j  a v a2s  . c o m
public void visitBreak(BytecodeContext bc) {
    bc.getAdapter().visitJumpInsn(Opcodes.GOTO, lend);
}

From source file:lucee.transformer.bytecode.visitor.ForDoubleVisitor.java

License:Open Source License

/**
 *
 * @see lucee.transformer.bytecode.visitor.LoopVisitor#visitContinue(org.objectweb.asm.commons.GeneratorAdapter)
 *//*ww w  .j  a v  a2 s.c  o m*/
public void visitContinue(BytecodeContext bc) {
    bc.getAdapter().visitJumpInsn(Opcodes.GOTO, beforeUpdate);
}

From source file:lucee.transformer.bytecode.visitor.ForDoubleVisitor.java

License:Open Source License

/**
 *
 * @see lucee.transformer.bytecode.visitor.LoopVisitor#visitBreak(org.objectweb.asm.commons.GeneratorAdapter)
 *//* w ww .  j a  v  a  2 s.  c o  m*/
public void visitBreak(BytecodeContext bc) {
    bc.getAdapter().visitJumpInsn(Opcodes.GOTO, afterBody);
}

From source file:lucee.transformer.bytecode.visitor.NotVisitor.java

License:Open Source License

public static void visitNot(BytecodeContext bc) {
    GeneratorAdapter adapter = bc.getAdapter();

    Label l1 = new Label();
    adapter.visitJumpInsn(Opcodes.IFEQ, l1);
    adapter.visitInsn(Opcodes.ICONST_0);
    Label l2 = new Label();
    adapter.visitJumpInsn(Opcodes.GOTO, l2);
    adapter.visitLabel(l1);//from   w  w w.j a  v  a2  s .  c om
    adapter.visitInsn(Opcodes.ICONST_1);
    adapter.visitLabel(l2);
}

From source file:lucee.transformer.bytecode.visitor.TryCatchFinallyVisitor.java

License:Open Source License

public void visitCatchEnd(BytecodeContext bc) throws BytecodeException {
    Label end = new Label();
    GeneratorAdapter ga = bc.getAdapter();
    bc.popOnFinally();//from   w  ww.j a v  a2s  . c o  m
    ga.visitLabel(l3);
    ga.visitJumpInsn(GOTO, l5);
    ga.visitLabel(l4);
    int lThrow = ga.newLocal(Types.THROWABLE);
    ga.storeLocal(lThrow);
    //mv.visitVarInsn(ASTORE, 2);
    Label l8 = new Label();
    ga.visitLabel(l8);

    onFinally.writeOut(bc);

    ga.loadLocal(lThrow);
    ga.visitInsn(ATHROW);
    ga.visitLabel(l5);

    onFinally.writeOut(bc);
    if (fcf != null && fcf.getAfterFinalGOTOLabel() != null) {
        Label _end = new Label();
        ga.visitJumpInsn(Opcodes.GOTO, _end); // ignore when coming not from break/continue
        ASMUtil.visitLabel(ga, fcf.getFinalEntryLabel());
        onFinally.writeOut(bc);
        ga.visitJumpInsn(Opcodes.GOTO, fcf.getAfterFinalGOTOLabel());
        ga.visitLabel(_end);
    }

    ga.visitLabel(end);
    ga.visitTryCatchBlock(beginTry, l3, l4, null);

}