/* * $Id$ * * Copyright (C) 2003-2015 JNode.org * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; If not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package org.jnode.vm.bytecode; import org.jnode.vm.classmgr.VmConstClass; import org.jnode.vm.classmgr.VmConstFieldRef; import org.jnode.vm.classmgr.VmConstIMethodRef; import org.jnode.vm.classmgr.VmConstMethodRef; import org.jnode.vm.classmgr.VmConstString; import org.jnode.vm.classmgr.VmMethod; /** * <description> * * @author epr */ public abstract class BytecodeVisitor { public abstract void setParser(BytecodeParser parser); public abstract void startMethod(VmMethod method); public abstract void endMethod(); public abstract void startInstruction(int address); public abstract void endInstruction(); public abstract void visit_nop(); public abstract void visit_aconst_null(); public abstract void visit_iconst(int value); public abstract void visit_lconst(long value); // -- 10 -- public abstract void visit_fconst(float value); public abstract void visit_dconst(double value); /** * @deprecated */ public final void visit_sipush(short value) { } public abstract void visit_ldc(VmConstString value); public abstract void visit_ldc(VmConstClass value); // -- 20 -- public abstract void visit_iload(int index); public abstract void visit_lload(int index); public abstract void visit_fload(int index); public abstract void visit_dload(int index); public abstract void visit_aload(int index); // -- 30 -- public abstract void visit_iaload(); public abstract void visit_laload(); public abstract void visit_faload(); public abstract void visit_daload(); // -- 50 -- public abstract void visit_aaload(); public abstract void visit_baload(); public abstract void visit_caload(); public abstract void visit_saload(); public abstract void visit_istore(int index); public abstract void visit_lstore(int index); public abstract void visit_fstore(int index); public abstract void visit_dstore(int index); public abstract void visit_astore(int index); public abstract void visit_iastore(); // -- 80 -- public abstract void visit_lastore(); public abstract void visit_fastore(); public abstract void visit_dastore(); public abstract void visit_aastore(); public abstract void visit_bastore(); public abstract void visit_castore(); public abstract void visit_sastore(); public abstract void visit_pop(); public abstract void visit_pop2(); public abstract void visit_dup(); // -- 90 -- public abstract void visit_dup_x1(); public abstract void visit_dup_x2(); public abstract void visit_dup2(); public abstract void visit_dup2_x1(); public abstract void visit_dup2_x2(); public abstract void visit_swap(); public abstract void visit_iadd(); public abstract void visit_ladd(); public abstract void visit_fadd(); public abstract void visit_dadd(); // -- 100 -- public abstract void visit_isub(); public abstract void visit_lsub(); public abstract void visit_fsub(); public abstract void visit_dsub(); public abstract void visit_imul(); public abstract void visit_lmul(); public abstract void visit_fmul(); public abstract void visit_dmul(); public abstract void visit_idiv(); public abstract void visit_ldiv(); // -- 110 -- public abstract void visit_fdiv(); public abstract void visit_ddiv(); public abstract void visit_irem(); public abstract void visit_lrem(); public abstract void visit_frem(); public abstract void visit_drem(); public abstract void visit_ineg(); public abstract void visit_lneg(); public abstract void visit_fneg(); public abstract void visit_dneg(); // -- 120 -- public abstract void visit_ishl(); public abstract void visit_lshl(); public abstract void visit_ishr(); public abstract void visit_lshr(); public abstract void visit_iushr(); public abstract void visit_lushr(); public abstract void visit_iand(); public abstract void visit_land(); public abstract void visit_ior(); public abstract void visit_lor(); // -- 130 -- public abstract void visit_ixor(); public abstract void visit_lxor(); public abstract void visit_iinc(int index, int incValue); public abstract void visit_i2l(); public abstract void visit_i2f(); public abstract void visit_i2d(); public abstract void visit_l2i(); public abstract void visit_l2f(); public abstract void visit_l2d(); public abstract void visit_f2i(); // -- 140 -- public abstract void visit_f2l(); public abstract void visit_f2d(); public abstract void visit_d2i(); public abstract void visit_d2l(); public abstract void visit_d2f(); public abstract void visit_i2b(); public abstract void visit_i2c(); public abstract void visit_i2s(); public abstract void visit_lcmp(); public abstract void visit_fcmpl(); // -- 150 -- public abstract void visit_fcmpg(); public abstract void visit_dcmpl(); public abstract void visit_dcmpg(); public abstract void visit_ifeq(int address); public abstract void visit_ifne(int address); public abstract void visit_iflt(int address); public abstract void visit_ifge(int address); public abstract void visit_ifgt(int address); public abstract void visit_ifle(int address); public abstract void visit_if_icmpeq(int address); // -- 160 -- public abstract void visit_if_icmpne(int address); public abstract void visit_if_icmplt(int address); public abstract void visit_if_icmpge(int address); public abstract void visit_if_icmpgt(int address); public abstract void visit_if_icmple(int address); public abstract void visit_if_acmpeq(int address); public abstract void visit_if_acmpne(int address); public abstract void visit_goto(int address); public abstract void visit_jsr(int address); public abstract void visit_ret(int index); // -- 170 -- public abstract void visit_tableswitch(int defValue, int lowValue, int highValue, int[] addresses); public abstract void visit_lookupswitch(int defValue, int[] matchValues, int[] addresses); public abstract void visit_ireturn(); public abstract void visit_lreturn(); public abstract void visit_freturn(); public abstract void visit_dreturn(); public abstract void visit_areturn(); public abstract void visit_return(); public abstract void visit_getstatic(VmConstFieldRef fieldRef); public abstract void visit_putstatic(VmConstFieldRef fieldRef); // -- 180 -- public abstract void visit_getfield(VmConstFieldRef fieldRef); public abstract void visit_putfield(VmConstFieldRef fieldRef); public abstract void visit_invokevirtual(VmConstMethodRef methodRef); public abstract void visit_invokespecial(VmConstMethodRef methodRef); public abstract void visit_invokestatic(VmConstMethodRef methodRef); public abstract void visit_invokeinterface(VmConstIMethodRef methodRef, int count); public abstract void visit_new(VmConstClass clazz); public abstract void visit_newarray(int type); public abstract void visit_anewarray(VmConstClass clazz); // -- 190 -- public abstract void visit_arraylength(); public abstract void visit_athrow(); public abstract void visit_checkcast(VmConstClass clazz); public abstract void visit_instanceof(VmConstClass clazz); public abstract void visit_monitorenter(); public abstract void visit_monitorexit(); public abstract void visit_multianewarray(VmConstClass clazz, int dimensions); public abstract void visit_ifnull(int address); public abstract void visit_ifnonnull(int address); }