#ifndef CONSTANTS_H #define CONSTANTS_H namespace vm { enum OpCode { aaload, aastore, aconst_null, aload, aload_0, aload_1, aload_2, aload_3, anewarray, areturn, arraylength, astore, astore_0, astore_1, astore_2, astore_3, athrow, baload, bastore, bipush, breakpoint, caload, castore, checkcast, d2f, d2i, d2l, dadd, daload, dastore, dcmpg, dcmpl, dconst, ddiv, dload, dmul, dneg, drem, dreturn, dstore, dsub, dup, dup_x1, dup_x2, dup2, dup2_x1, dup2_x2, f2d, f2i, f2l, fadd, faload, fastore, fcmpg, fcmpl, fconst, fdiv, fload, fmul, fneg, frem, freturn, fstore, fsub, getfield, getstatic, goto_, goto_w, i2b, i2c, i2d, i2f, i2l, i2s, iadd, iaload, iand, iastore, iconst_0, iconst_1, iconst_2, iconst_3, iconst_4, iconst_5, idiv, if_, if_acmpeq, if_acmpne, if_icmpeq, if_icmpne, if_icmpgt, if_icmpge, if_icmplt, if_icmple, ifeq, ifge, ifgt, ifle, iflt, ifne, ifnonnull, ifnull, iinc, iload, iload_0, iload_1, iload_2, iload_3, impdep1, impdep2, imul, ineg, instanceof, invokeinterface, invokespecial, invokestatic, invokevirtual, ior, irem, ireturn, ishl, ishr, istore, istore_0, istore_1, istore_2, istore_3, isub, iushr, ixor, jsr, jsr_w, l2d, l2f, l2i, ladd, laload, land, lastore, lcmp, lconst_0, lconst_1, ldc, ldc_w, ldc2_w, ldiv, lload, lload_0, lload_1, lload_2, lload_3, lmul, lneg, lookupswitch, lor, lrem, lreturn, lshl, lshr, lstore, lstore_0, lstore_1, lstore_2, lstore_3, lsub, lushr, lxor, monitorenter, monitorexit, multianewarray, new_, newarray, nop, pop, pop2, putfield, putstatic, ret, return_, saload, sastore, sipush, swap, tableswitch, wide }; enum TypeCode { T_BOOLEAN = 4, T_CHAR = 5, T_FLOAT = 6, T_DOUBLE = 7, T_BYTE = 8, T_SHORT = 9, T_INT = 10, T_LONG = 11 }; enum Constant { CONSTANT_Class = 7, CONSTANT_Fieldref = 9, CONSTANT_Methodref = 10, CONSTANT_InterfaceMethodref = 11, CONSTANT_String = 8, CONSTANT_Integer = 3, CONSTANT_Float = 4, CONSTANT_Long = 5, CONSTANT_Double = 6, CONSTANT_NameAndType = 12, CONSTANT_Utf8 = 1 }; const unsigned ACC_PUBLIC = 1 << 0; const unsigned ACC_PRIVATE = 1 << 1; const unsigned ACC_PROTECTED = 1 << 2; const unsigned ACC_STATIC = 1 << 3; const unsigned ACC_FINAL = 1 << 4; const unsigned ACC_SUPER = 1 << 5; const unsigned ACC_VOLATILE = 1 << 6; const unsigned ACC_TRANSIENT = 1 << 7; const unsigned ACC_INTERFACE = 1 << 9; const unsigned ACC_ABSTRACT = 1 << 10; } // namespace vm #endif//CONSTANTS_H