* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * This file is part of SableVM. * * See the file "LICENSE" for Copyright information and the * * terms and conditions for copying, distribution and * * modification of SableVM. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ---------------------------------------------------------------------- head ---------------------------------------------------------------------- m4svm_header ---------------------------------------------------------------------- instructions ---------------------------------------------------------------------- Each line has the format: bytecode_name, stack_size, number_of_local_variables, return_type, instruction_parameters, method_parameters ************************************TO DO************************************ lookupswitch tableswitch ***************************************************************************** m4svm_bytecode_verification_begin[: aaload, 2, 2, Ljava/lang/Object;, , [Ljava/lang/Object;, I aastore, 3, 3, Ljava/lang/Object;, , [Ljava/lang/Object;, I, Ljava/lang/Object; aconst_null, 1, 0, Ljava/lang/Object; aload_0, 1, 1, Ljava/lang/Object;, , Ljava/lang/Object; aload_1, 1, 2, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object; aload_2, 1, 3, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object;, Ljava/lang/Object; aload_3, 1, 4, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object;, Ljava/lang/Object;, Ljava/lang/Object; anewarray, 1, 1, [Ljava/lang/Object;, java/lang/Object, I arraylength, 1, 1, I, , [Ljava/lang/Object; astore_0, 1, 2, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object; astore_1, 1, 2, Ljava/lang/Object;, , Ljava/lang/Object; baload, 2, 2, B, , [B, I baload, 2, 2, Z, , [Z, I bastore, 3, 3, B, , [B, I, B bastore, 3, 3, Z, , [Z, I, Z bipush, 1, 0, I, 170 caload, 2, 2, C, , [C, I castore, 3, 3, C, , [C, I, C checkcast, 1, 1, I, java/lang/Object, Ljava/lang/Object; d2f, 2, 2, F, , D d2i, 2, 2, I, , D d2l, 2, 2, J, , D dadd, 4, 4, D, , D, D daload, 3, 3, D, , [D, I dastore, 4, 4, D, , [D, I, D dcmpg, 4, 4, I, , D, D dcmpl, 4, 4, I, , D, D dconst_0, 2, 0, D dconst_1, 2, 0, D ddiv, 4, 4, D, , D, D dload_0, 2, 2, D, , D dload_1, 2, 3, D, , I, D dload_2, 2, 4, D, , D, D dload_3, 2, 5, D, , I, D, D dmul, 4, 4, D, , D, D dneg, 2, 2, D, , D drem, 4, 4, D, , D, D dstore_0, 2, 4, D, , D, D dstore_1, 2, 5, D, , I, D, D dstore_2, 2, 4, D, , D dsub, 4, 4, D, , D, D dup, 4, 2, I, , I, I dup_x1, 5, 2, I, , I, I dup_x2, 6, 2, I, , I, I dup2, 7, 3, I, , J, I dup2_x1, 8, 4, I, , J, I, I dup2_x2, 9, 5, I, , J, J, I f2d, 2, 2, D, , F f2i, 1, 1, I, , F f2l, 2, 2, J, , F fadd, 2, 2, F, , F, F faload, 2, 2, F, , [F, I fastore, 3, 3, F, , [F, I, F fcmpg, 2, 2, I, , F, F fcmpl, 2, 2, I, , F, F fconst_0, 1, 0, F fconst_1, 1, 0, F fconst_2, 1, 0, F fdiv, 2, 2, F, , F, F fload_0, 1, 1, F, , F fload_1, 1, 2, F, , F, F fload_2, 1, 3, F, , F, F, F fload_3, 1, 4, F, , F, F, F, F fmul, 2, 2, F, , F, F fneg, 1, 1, F, , F frem, 2, 2, F, , F, F fstore_0, 1, 2, F, , F, F fstore_1, 1, 2, F, , F fsub, 2, 2, F, , F, F getfield, 1, 1, B, SVMTestInlinabilityBytecodeVerificationFields/aByte B, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 1, 1, C, SVMTestInlinabilityBytecodeVerificationFields/aChar C, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 2, 2, D, SVMTestInlinabilityBytecodeVerificationFields/aDouble D, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 1, 1, F, SVMTestInlinabilityBytecodeVerificationFields/aFloat F, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 1, 1, I, SVMTestInlinabilityBytecodeVerificationFields/anInt I, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 2, 2, J, SVMTestInlinabilityBytecodeVerificationFields/aLong J, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 1, 1, S, SVMTestInlinabilityBytecodeVerificationFields/aShort S, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 1, 1, Z, SVMTestInlinabilityBytecodeVerificationFields/aBoolean Z, LSVMTestInlinabilityBytecodeVerificationFields; getfield, 1, 1, [Ljava/lang/Object;, SVMTestInlinabilityBytecodeVerificationFields/anArray [Ljava/lang/Object;, LSVMTestInlinabilityBytecodeVerificationFields; getstatic, 1, 1, B, SVMTestInlinabilityBytecodeVerificationFields/aStaticByte B getstatic, 1, 1, C, SVMTestInlinabilityBytecodeVerificationFields/aStaticChar C getstatic, 2, 2, D, SVMTestInlinabilityBytecodeVerificationFields/aStaticDouble D getstatic, 1, 1, F, SVMTestInlinabilityBytecodeVerificationFields/aStaticFloat F getstatic, 1, 1, I, SVMTestInlinabilityBytecodeVerificationFields/aStaticInt I getstatic, 2, 2, J, SVMTestInlinabilityBytecodeVerificationFields/aStaticLong J getstatic, 1, 1, S, SVMTestInlinabilityBytecodeVerificationFields/aStaticShort S getstatic, 1, 1, Z, SVMTestInlinabilityBytecodeVerificationFields/aStaticBoolean Z getstatic, 1, 1, [Ljava/lang/Object;, SVMTestInlinabilityBytecodeVerificationFields/aStaticArray [Ljava/lang/Object; goto, 1, 0, I, label1 goto_w, 1, 0, I, label1 i2b, 1, 1, B, , I i2c, 1, 1, C, , I i2d, 2, 1, D, , I i2f, 1, 1, F, , I i2l, 2, 1, J, , I i2s, 1, 1, S, , I iadd, 2, 2, I, , I, I iaload, 2, 2, I, , [I, I iand, 2, 2, I, , I, I iastore, 3, 3, I, , [I, I, I iconst_m1, 1, 0, I iconst_0, 1, 0, I iconst_1, 1, 0, I iconst_2, 1, 0, I iconst_3, 1, 0, I iconst_4, 1, 0, I iconst_5, 1, 0, I idiv, 2, 2, I, , I, I if_acmpeq, 2, 2, I, label1, Ljava/lang/Object;, Ljava/lang/Object; if_acmpne, 2, 2, I, label1, Ljava/lang/Object;, Ljava/lang/Object; if_icmpeq, 2, 2, I, label1, I, I if_icmpge, 2, 2, I, label1, I, I if_icmpgt, 2, 2, I, label1, I, I if_icmple, 2, 2, I, label1, I, I if_icmplt, 2, 2, I, label1, I, I if_icmpne, 2, 2, I, label1, I, I ifeq, 1, 1, I, label1, I ifge, 1, 1, I, label1, I ifgt, 1, 1, I, label1, I ifle, 1, 1, I, label1, I iflt, 1, 1, I, label1, I ifne, 1, 1, I, label1, I ifnonnull, 1, 1, I, label1, Ljava/lang/Object; ifnull, 1, 1, I, label1, Ljava/lang/Object; iinc, 1, 1, I, 0, I iload_0, 1, 1, I, , I iload_1, 1, 2, I, , I, I iload_2, 1, 3, I, , I, I, I iload_3, 1, 4, I, , I, I, I, I imul, 2, 2, I, , I, I ineg, 1, 1, I, , I instanceof, 1, 1, I, java/lang/Object, Ljava/lang/Object; ior, 2, 2, I, , I, I irem, 2, 2, I, , I, I ishl, 2, 2, I, , I, I ishr, 2, 2, I, , I, I istore_0, 1, 2, I, , I, I istore_1, 1, 3, I, , I isub, 2, 2, I, , I, I iushr, 2, 2, I, , I, I ixor, 2, 2, I, , I, I l2d, 2, 2, D, , J l2f, 2, 2, F, , J l2i, 2, 2, I, , J ladd, 4, 4, J, , J, J laload, 3, 3, J, , [J, I land, 4, 4, J, , J, J lastore, 4, 4, J, , [J, I, J lcmp, 4, 4, I, , J, J lconst_0, 2, 0, J lconst_1, 2, 0, J ldc, 1, 0, F, 1.0 ldc, 1, 0, Ljava/lang/String;, "Hello World!" ldc_w, 1, 0, I, 1 ldc_w, 1, 0, F, 1.0 ldc_w, 1, 0, Ljava/lang/String;, "Hello World!" ldiv, 4, 4, J, , J, J lload_0, 2, 2, J, , J lload_1, 2, 3, J, , I, J lload_2, 2, 4, J, , J, J lload_3, 2, 5, J, , I, J, J lmul, 4, 4, J, , J, J lneg, 2, 2, J, , J lookupswitch, 1, 1, I, , I lor, 4, 4, J, , J, J lrem, 4, 4, J, , J, J lshl, 4, 4, J, , J, I lshr, 4, 4, J, , J, I lstore_0, 2, 4, J, , J, J lstore_1, 2, 5, J, , I, J, J lstore_2, 2, 4, J, , J lsub, 4, 4, J, , J, J lushr, 4, 4, J, , J, I lxor, 4, 4, J, , J, J monitorenter, 1, 1, Ljava/lang/Object;, , Ljava/lang/Object; multianewarray, 2, 2, [[Ljava/lang/Object;, [[Ljava/lang/Object; 2, I, I multianewarray, 2, 2, [[Z, [[Z 2, I, I multianewarray, 2, 2, [[C, [[C 2, I, I multianewarray, 2, 2, [[F, [[F 2, I, I multianewarray, 2, 2, [[D, [[D 2, I, I multianewarray, 2, 2, [[B, [[B 2, I, I multianewarray, 2, 2, [[S, [[S 2, I, I multianewarray, 2, 2, [[I, [[I 2, I, I multianewarray, 2, 2, [[J, [[J 2, I, I new, 2, 0, Ljava/lang/Object;, java/lang/Object newarray, 1, 1, [Z, boolean, I newarray, 1, 1, [C, char, I newarray, 1, 1, [F, float, I newarray, 1, 1, [D, double, I newarray, 1, 1, [B, byte, I newarray, 1, 1, [S, short, I newarray, 1, 1, [I, int, I newarray, 1, 1, [J, long, I nop, 0, 0, V pop, 2, 2, I, , I, I pop2, 4, 4, J, , J, J putfield, 2, 2, B, SVMTestInlinabilityBytecodeVerificationFields/aByte B, LSVMTestInlinabilityBytecodeVerificationFields;, B putfield, 2, 2, C, SVMTestInlinabilityBytecodeVerificationFields/aChar C, LSVMTestInlinabilityBytecodeVerificationFields;, C putfield, 3, 3, D, SVMTestInlinabilityBytecodeVerificationFields/aDouble D, LSVMTestInlinabilityBytecodeVerificationFields;, D putfield, 2, 2, F, SVMTestInlinabilityBytecodeVerificationFields/aFloat F, LSVMTestInlinabilityBytecodeVerificationFields;, F putfield, 2, 2, I, SVMTestInlinabilityBytecodeVerificationFields/anInt I, LSVMTestInlinabilityBytecodeVerificationFields;, I putfield, 3, 3, J, SVMTestInlinabilityBytecodeVerificationFields/aLong J, LSVMTestInlinabilityBytecodeVerificationFields;, J putfield, 2, 2, S, SVMTestInlinabilityBytecodeVerificationFields/aShort S, LSVMTestInlinabilityBytecodeVerificationFields;, S putfield, 2, 2, Z, SVMTestInlinabilityBytecodeVerificationFields/aBoolean Z, LSVMTestInlinabilityBytecodeVerificationFields;, Z putfield, 2, 2, [Ljava/lang/Object;, SVMTestInlinabilityBytecodeVerificationFields/anArray [Ljava/lang/Object;, LSVMTestInlinabilityBytecodeVerificationFields;, [Ljava/lang/Object; putstatic, 2, 2, B, SVMTestInlinabilityBytecodeVerificationFields/aStaticByte B, B putstatic, 2, 2, C, SVMTestInlinabilityBytecodeVerificationFields/aStaticChar C, C putstatic, 3, 3, D, SVMTestInlinabilityBytecodeVerificationFields/aStaticDouble D, D putstatic, 2, 2, F, SVMTestInlinabilityBytecodeVerificationFields/aStaticFloat F, F putstatic, 2, 2, I, SVMTestInlinabilityBytecodeVerificationFields/aStaticInt I, I putstatic, 3, 3, J, SVMTestInlinabilityBytecodeVerificationFields/aStaticLong J, J putstatic, 2, 2, S, SVMTestInlinabilityBytecodeVerificationFields/aStaticShort S, S putstatic, 2, 2, Z, SVMTestInlinabilityBytecodeVerificationFields/aStaticBoolean Z, Z putstatic, 2, 2, [Ljava/lang/Object;, SVMTestInlinabilityBytecodeVerificationFields/aStaticArray [Ljava/lang/Object;, [Ljava/lang/Object; saload, 2, 2, S, , [S, I sastore, 3, 3, S, , [S, I, S sipush, 1, 0, S, 170 swap, 2, 2, I, , I, I tableswitch, 1, 1, I, 0, I wide_aload, 1, 1, Ljava/lang/Object;, 0, Ljava/lang/Object; wide_aload_0, 1, 1, Ljava/lang/Object;, , Ljava/lang/Object; wide_aload_1, 1, 2, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object; wide_aload_2, 1, 3, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object;, Ljava/lang/Object; wide_aload_3, 1, 4, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object;, Ljava/lang/Object;, Ljava/lang/Object; wide_astore, 1, 2, Ljava/lang/Object;, 1, Ljava/lang/Object; wide_astore_0, 1, 2, Ljava/lang/Object;, , Ljava/lang/Object;, Ljava/lang/Object; wide_astore_1, 1, 2, Ljava/lang/Object;, , Ljava/lang/Object; wide_astore_2, 1, 3, Ljava/lang/Object;, , Ljava/lang/Object; wide_astore_3, 1, 4, Ljava/lang/Object;, , Ljava/lang/Object; wide_dload, 2, 2, D, 0, D wide_dload_0, 2, 2, D, , D wide_dload_1, 2, 3, D, , I, D wide_dload_2, 2, 4, D, , D, D wide_dload_3, 2, 5, D, , I, D, D wide_dstore, 2, 4, D, 0, D, D wide_dstore_0, 2, 4, D, , D, D wide_dstore_1, 2, 5, D, , I, D, D wide_dstore_2, 2, 4, D, , D wide_dstore_3, 2, 5, D, , D wide_fload, 1, 1, F, 0, F wide_fload_0, 1, 1, F, , F wide_fload_1, 1, 2, F, , F, F wide_fload_2, 1, 3, F, , F, F, F wide_fload_3, 1, 4, F, , F, F, F, F wide_fstore, 1, 2, F, 1, F wide_fstore_0, 1, 2, F, , F, F wide_fstore_1, 1, 2, F, , F wide_fstore_2, 1, 3, F, , F wide_fstore_3, 1, 4, F, , F wide_iinc, 1, 1, I, 0, I wide_iload, 1, 1, I, 0, I wide_iload_0, 1, 1, I, , I wide_iload_1, 1, 2, I, , I, I wide_iload_2, 1, 3, I, , I, I, I wide_iload_3, 1, 4, I, , I, I, I, I wide_istore, 1, 2, I, 1, I wide_istore_0, 1, 2, I, , I, I wide_istore_1, 1, 2, I, , I wide_istore_2, 1, 3, I, , I wide_istore_3, 1, 4, I, , I wide_lload, 2, 2, J, 0, J wide_lload_0, 2, 2, J, , J wide_lload_1, 2, 3, J, , I, J wide_lload_2, 2, 4, J, , J, J wide_lload_3, 2, 5, J, , I, J, J wide_lstore, 2, 4, J, 0, J, J wide_lstore_0, 2, 4, J, , J, J wide_lstore_1, 2, 5, J, , I, J, J wide_lstore_2, 2, 4, J, , J wide_lstore_3, 2, 5, J, , J :]m4svm_bytecode_verification_end ---------------------------------------------------------------------- Xload ---------------------------------------------------------------------- m4svm_ifaload_verification_begin[: i, I f, F a, Ljava/lang/Object; :]m4svm_ifaload_verification_end m4svm_ldload_verification_begin[: l, J d, D :]m4svm_ldload_verification_end ---------------------------------------------------------------------- Xstore ---------------------------------------------------------------------- m4svm_ifastore_verification_begin[: i, I i, I, _2 i, I, _3 f, F f, F, _2 f, F, _3 a, Ljava/lang/Object; a, Ljava/lang/Object;, _2 a, Ljava/lang/Object;, _3 :]m4svm_ifastore_verification_end m4svm_ldstore_verification_begin[: l, J l, J, _3 d, D d, D, _3 :]m4svm_ldstore_verification_end ---------------------------------------------------------------------- astore_retX ---------------------------------------------------------------------- m4svm_astore_ret_verification_begin[: , _0 _1 _2 _3 :]m4svm_astore_ret_verification_end ---------------------------------------------------------------------- jsr/ret ---------------------------------------------------------------------- m4svm_jsrret_verification_begin[: jsr ret :]m4svm_jsrret_verification_end ---------------------------------------------------------------------- if_acmp_check ---------------------------------------------------------------------- m4svm_if_acmp_check_begin[: eq ne :]m4svm_if_acmp_check_end ---------------------------------------------------------------------- if_icmp_check ---------------------------------------------------------------------- m4svm_if_icmp_check_begin[: eq ne lt le gt ge :]m4svm_if_icmp_check_end ---------------------------------------------------------------------- if_check ---------------------------------------------------------------------- m4svm_if_check_begin[: eq ne lt ge gt le :]m4svm_if_check_end ---------------------------------------------------------------------- ifnnnull_check ---------------------------------------------------------------------- m4svm_ifnnnull_check_begin[: null nonnull :]m4svm_ifnnnull_check_end