/* * Copyright (C) 2012 Sony Mobile Communications AB * * This file is part of ApkAnalyser. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package mereflect.bytecode; public interface Bytecodes { /** @AUTOGENERATE_BC_START */ public static final String OP_UNDEFINED = "N/A"; public static final int OP_UNDEFINED_LEN = 1; public static final String[] BC_OPCODES = { "nop", // 1 "aconst_null", // 1 "iconst_m1", // 1 "iconst_0", // 1 "iconst_1", // 1 "iconst_2", // 1 "iconst_3", // 1 "iconst_4", // 1 "iconst_5", // 1 "lconst_0", // 1 "lconst_1", // 1 "fconst_0", // 1 "fconst_1", // 1 "fconst_2", // 1 "dconst_0", // 1 "dconst_1", // 1 "bipush", // 2 "sipush", // 3 "ldc", // 2 "ldc_w", // 3 "ldc2_w", // 3 "iload", // 2 "lload", // 2 "fload", // 2 "dload", // 2 "aload", // 2 "iload_0", // 1 "iload_1", // 1 "iload_2", // 1 "iload_3", // 1 "lload_0", // 1 "lload_1", // 1 "lload_2", // 1 "lload_3", // 1 "fload_0", // 1 "fload_1", // 1 "fload_2", // 1 "fload_3", // 1 "dload_0", // 1 "dload_1", // 1 "dload_2", // 1 "dload_3", // 1 "aload_0", // 1 "aload_1", // 1 "aload_2", // 1 "aload_3", // 1 "iaload", // 1 "laload", // 1 "faload", // 1 "daload", // 1 "aaload", // 1 "baload", // 1 "caload", // 1 "saload", // 1 "istore", // 2 "lstore", // 2 "fstore", // 2 "dstore", // 2 "astore", // 2 "istore_0", // 1 "istore_1", // 1 "istore_2", // 1 "istore_3", // 1 "lstore_0", // 1 "lstore_1", // 1 "lstore_2", // 1 "lstore_3", // 1 "fstore_0", // 1 "fstore_1", // 1 "fstore_2", // 1 "fstore_3", // 1 "dstore_0", // 1 "dstore_1", // 1 "dstore_2", // 1 "dstore_3", // 1 "astore_0", // 1 "astore_1", // 1 "astore_2", // 1 "astore_3", // 1 "iastore", // 1 "lastore", // 1 "fastore", // 1 "dastore", // 1 "aastore", // 1 "bastore", // 1 "castore", // 1 "sastore", // 1 "pop", // 1 "pop2", // 1 "dup", // 1 "dup_x1", // 1 "dup_x2", // 1 "dup2", // 1 "dup2_x1", // 1 "dup2_x2", // 1 "swap", // 1 "iadd", // 1 "ladd", // 1 "fadd", // 1 "dadd", // 1 "isub", // 1 "lsub", // 1 "fsub", // 1 "dsub", // 1 "imul", // 1 "lmul", // 1 "fmul", // 1 "dmul", // 1 "idiv", // 1 "ldiv", // 1 "fdiv", // 1 "ddiv", // 1 "irem", // 1 "lrem", // 1 "frem", // 1 "drem", // 1 "ineg", // 1 "lneg", // 1 "fneg", // 1 "dneg", // 1 "ishl", // 1 "lshl", // 1 "ishr", // 1 "lshr", // 1 "iushr", // 1 "lushr", // 1 "iand", // 1 "land", // 1 "ior", // 1 "lor", // 1 "ixor", // 1 "lxor", // 1 "iinc", // 3 "i2l", // 1 "i2f", // 1 "i2d", // 1 "l2i", // 1 "l2f", // 1 "l2d", // 1 "f2i", // 1 "f2l", // 1 "f2d", // 1 "d2i", // 1 "d2l", // 1 "d2f", // 1 "i2b", // 1 "i2c", // 1 "i2s", // 1 "lcmp", // 1 "fcmpl", // 1 "fcmpg", // 1 "dcmpl", // 1 "dcmpg", // 1 "ifeq", // 3 "ifne", // 3 "iflt", // 3 "ifge", // 3 "ifgt", // 3 "ifle", // 3 "if_icmpeq", // 3 "if_icmpne", // 3 "if_icmplt", // 3 "if_icmpge", // 3 "if_icmpgt", // 3 "if_icmple", // 3 "if_acmpeq", // 3 "if_acmpne", // 3 "goto", // 3 "jsr", // 3 "ret", // 2 "tableswitch", // 14 "lookupswitch", // 11 "ireturn", // 1 "lreturn", // 1 "freturn", // 1 "dreturn", // 1 "areturn", // 1 "return", // 1 "getstatic", // 3 "putstatic", // 3 "getfield", // 3 "putfield", // 3 "invokevirtual", // 3 "invokespecial", // 3 "invokestatic", // 3 "invokeinterface", // 5 OP_UNDEFINED + "[ba]", "new", // 3 "newarray", // 2 "anewarray", // 3 "arraylength", // 1 "athrow", // 1 "checkcast", // 3 "instanceof", // 3 "monitorenter", // 1 "monitorexit", // 1 OP_UNDEFINED + "[c4]", "multianewarray", // 4 "ifnull", // 3 "ifnonnull", // 3 "goto_w", // 5 "jsr_w", // 5 OP_UNDEFINED + "[ca]", OP_UNDEFINED + "[cb]", OP_UNDEFINED + "[cc]", OP_UNDEFINED + "[cd]", OP_UNDEFINED + "[ce]", OP_UNDEFINED + "[cf]", OP_UNDEFINED + "[d0]", OP_UNDEFINED + "[d1]", OP_UNDEFINED + "[d2]", OP_UNDEFINED + "[d3]", OP_UNDEFINED + "[d4]", OP_UNDEFINED + "[d5]", OP_UNDEFINED + "[d6]", OP_UNDEFINED + "[d7]", OP_UNDEFINED + "[d8]", OP_UNDEFINED + "[d9]", OP_UNDEFINED + "[da]", OP_UNDEFINED + "[db]", OP_UNDEFINED + "[dc]", OP_UNDEFINED + "[dd]", OP_UNDEFINED + "[de]", OP_UNDEFINED + "[df]", OP_UNDEFINED + "[e0]", OP_UNDEFINED + "[e1]", OP_UNDEFINED + "[e2]", OP_UNDEFINED + "[e3]", OP_UNDEFINED + "[e4]", OP_UNDEFINED + "[e5]", OP_UNDEFINED + "[e6]", OP_UNDEFINED + "[e7]", OP_UNDEFINED + "[e8]", OP_UNDEFINED + "[e9]", OP_UNDEFINED + "[ea]", OP_UNDEFINED + "[eb]", OP_UNDEFINED + "[ec]", OP_UNDEFINED + "[ed]", OP_UNDEFINED + "[ee]", OP_UNDEFINED + "[ef]", OP_UNDEFINED + "[f0]", OP_UNDEFINED + "[f1]", OP_UNDEFINED + "[f2]", OP_UNDEFINED + "[f3]", OP_UNDEFINED + "[f4]", OP_UNDEFINED + "[f5]", OP_UNDEFINED + "[f6]", OP_UNDEFINED + "[f7]", OP_UNDEFINED + "[f8]", OP_UNDEFINED + "[f9]", OP_UNDEFINED + "[fa]", OP_UNDEFINED + "[fb]", OP_UNDEFINED + "[fc]", OP_UNDEFINED + "[fd]", OP_UNDEFINED + "[fe]", OP_UNDEFINED + "[ff]" }; public static final int[] BC_LENGTHS = { 1, // nop 1, // aconst_null 1, // iconst_m1 1, // iconst_0 1, // iconst_1 1, // iconst_2 1, // iconst_3 1, // iconst_4 1, // iconst_5 1, // lconst_0 1, // lconst_1 1, // fconst_0 1, // fconst_1 1, // fconst_2 1, // dconst_0 1, // dconst_1 2, // bipush 3, // sipush 2, // ldc 3, // ldc_w 3, // ldc2_w 2, // iload 2, // lload 2, // fload 2, // dload 2, // aload 1, // iload_0 1, // iload_1 1, // iload_2 1, // iload_3 1, // lload_0 1, // lload_1 1, // lload_2 1, // lload_3 1, // fload_0 1, // fload_1 1, // fload_2 1, // fload_3 1, // dload_0 1, // dload_1 1, // dload_2 1, // dload_3 1, // aload_0 1, // aload_1 1, // aload_2 1, // aload_3 1, // iaload 1, // laload 1, // faload 1, // daload 1, // aaload 1, // baload 1, // caload 1, // saload 2, // istore 2, // lstore 2, // fstore 2, // dstore 2, // astore 1, // istore_0 1, // istore_1 1, // istore_2 1, // istore_3 1, // lstore_0 1, // lstore_1 1, // lstore_2 1, // lstore_3 1, // fstore_0 1, // fstore_1 1, // fstore_2 1, // fstore_3 1, // dstore_0 1, // dstore_1 1, // dstore_2 1, // dstore_3 1, // astore_0 1, // astore_1 1, // astore_2 1, // astore_3 1, // iastore 1, // lastore 1, // fastore 1, // dastore 1, // aastore 1, // bastore 1, // castore 1, // sastore 1, // pop 1, // pop2 1, // dup 1, // dup_x1 1, // dup_x2 1, // dup2 1, // dup2_x1 1, // dup2_x2 1, // swap 1, // iadd 1, // ladd 1, // fadd 1, // dadd 1, // isub 1, // lsub 1, // fsub 1, // dsub 1, // imul 1, // lmul 1, // fmul 1, // dmul 1, // idiv 1, // ldiv 1, // fdiv 1, // ddiv 1, // irem 1, // lrem 1, // frem 1, // drem 1, // ineg 1, // lneg 1, // fneg 1, // dneg 1, // ishl 1, // lshl 1, // ishr 1, // lshr 1, // iushr 1, // lushr 1, // iand 1, // land 1, // ior 1, // lor 1, // ixor 1, // lxor 3, // iinc 1, // i2l 1, // i2f 1, // i2d 1, // l2i 1, // l2f 1, // l2d 1, // f2i 1, // f2l 1, // f2d 1, // d2i 1, // d2l 1, // d2f 1, // i2b 1, // i2c 1, // i2s 1, // lcmp 1, // fcmpl 1, // fcmpg 1, // dcmpl 1, // dcmpg 3, // ifeq 3, // ifne 3, // iflt 3, // ifge 3, // ifgt 3, // ifle 3, // if_icmpeq 3, // if_icmpne 3, // if_icmplt 3, // if_icmpge 3, // if_icmpgt 3, // if_icmple 3, // if_acmpeq 3, // if_acmpne 3, // goto 3, // jsr 2, // ret 14, // tableswitch 11, // lookupswitch 1, // ireturn 1, // lreturn 1, // freturn 1, // dreturn 1, // areturn 1, // return 3, // getstatic 3, // putstatic 3, // getfield 3, // putfield 3, // invokevirtual 3, // invokespecial 3, // invokestatic 5, // invokeinterface OP_UNDEFINED_LEN, 3, // new 2, // newarray 3, // anewarray 1, // arraylength 1, // athrow 3, // checkcast 3, // instanceof 1, // monitorenter 1, // monitorexit OP_UNDEFINED_LEN, 4, // multianewarray 3, // ifnull 3, // ifnonnull 5, // goto_w 5, // jsr_w OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN, OP_UNDEFINED_LEN }; /** @AUTOGENERATE_BC_END */ }