1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * you may not use this file except in compliance with the License. 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You may obtain a copy of the License at 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage com.android.dx.cf.code; 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport com.android.dx.util.Hex; 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/** 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Constants and utility methods for dealing with bytecode arrays at an 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * opcode level. 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class ByteOps { 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // one constant per opcode 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NOP = 0x00; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ACONST_NULL = 0x01; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_M1 = 0x02; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_0 = 0x03; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_1 = 0x04; 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_2 = 0x05; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_3 = 0x06; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_4 = 0x07; 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ICONST_5 = 0x08; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LCONST_0 = 0x09; 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LCONST_1 = 0x0a; 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FCONST_0 = 0x0b; 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FCONST_1 = 0x0c; 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FCONST_2 = 0x0d; 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DCONST_0 = 0x0e; 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DCONST_1 = 0x0f; 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int BIPUSH = 0x10; 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int SIPUSH = 0x11; 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LDC = 0x12; 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LDC_W = 0x13; 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LDC2_W = 0x14; 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ILOAD = 0x15; 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LLOAD = 0x16; 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FLOAD = 0x17; 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DLOAD = 0x18; 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ALOAD = 0x19; 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ILOAD_0 = 0x1a; 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ILOAD_1 = 0x1b; 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ILOAD_2 = 0x1c; 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ILOAD_3 = 0x1d; 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LLOAD_0 = 0x1e; 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LLOAD_1 = 0x1f; 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LLOAD_2 = 0x20; 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LLOAD_3 = 0x21; 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FLOAD_0 = 0x22; 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FLOAD_1 = 0x23; 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FLOAD_2 = 0x24; 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FLOAD_3 = 0x25; 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DLOAD_0 = 0x26; 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DLOAD_1 = 0x27; 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DLOAD_2 = 0x28; 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DLOAD_3 = 0x29; 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ALOAD_0 = 0x2a; 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ALOAD_1 = 0x2b; 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ALOAD_2 = 0x2c; 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ALOAD_3 = 0x2d; 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IALOAD = 0x2e; 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LALOAD = 0x2f; 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FALOAD = 0x30; 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DALOAD = 0x31; 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int AALOAD = 0x32; 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int BALOAD = 0x33; 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CALOAD = 0x34; 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int SALOAD = 0x35; 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISTORE = 0x36; 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSTORE = 0x37; 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FSTORE = 0x38; 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DSTORE = 0x39; 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ASTORE = 0x3a; 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISTORE_0 = 0x3b; 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISTORE_1 = 0x3c; 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISTORE_2 = 0x3d; 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISTORE_3 = 0x3e; 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSTORE_0 = 0x3f; 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSTORE_1 = 0x40; 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSTORE_2 = 0x41; 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSTORE_3 = 0x42; 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FSTORE_0 = 0x43; 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FSTORE_1 = 0x44; 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FSTORE_2 = 0x45; 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FSTORE_3 = 0x46; 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DSTORE_0 = 0x47; 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DSTORE_1 = 0x48; 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DSTORE_2 = 0x49; 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DSTORE_3 = 0x4a; 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ASTORE_0 = 0x4b; 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ASTORE_1 = 0x4c; 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ASTORE_2 = 0x4d; 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ASTORE_3 = 0x4e; 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IASTORE = 0x4f; 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LASTORE = 0x50; 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FASTORE = 0x51; 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DASTORE = 0x52; 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int AASTORE = 0x53; 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int BASTORE = 0x54; 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CASTORE = 0x55; 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int SASTORE = 0x56; 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int POP = 0x57; 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int POP2 = 0x58; 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DUP = 0x59; 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DUP_X1 = 0x5a; 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DUP_X2 = 0x5b; 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DUP2 = 0x5c; 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DUP2_X1 = 0x5d; 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DUP2_X2 = 0x5e; 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int SWAP = 0x5f; 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IADD = 0x60; 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LADD = 0x61; 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FADD = 0x62; 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DADD = 0x63; 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISUB = 0x64; 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSUB = 0x65; 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FSUB = 0x66; 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DSUB = 0x67; 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IMUL = 0x68; 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LMUL = 0x69; 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMUL = 0x6a; 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DMUL = 0x6b; 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IDIV = 0x6c; 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LDIV = 0x6d; 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FDIV = 0x6e; 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DDIV = 0x6f; 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IREM = 0x70; 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LREM = 0x71; 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FREM = 0x72; 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DREM = 0x73; 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int INEG = 0x74; 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LNEG = 0x75; 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FNEG = 0x76; 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DNEG = 0x77; 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISHL = 0x78; 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSHL = 0x79; 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ISHR = 0x7a; 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LSHR = 0x7b; 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IUSHR = 0x7c; 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LUSHR = 0x7d; 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IAND = 0x7e; 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LAND = 0x7f; 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IOR = 0x80; 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LOR = 0x81; 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IXOR = 0x82; 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LXOR = 0x83; 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IINC = 0x84; 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int I2L = 0x85; 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int I2F = 0x86; 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int I2D = 0x87; 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int L2I = 0x88; 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int L2F = 0x89; 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int L2D = 0x8a; 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int F2I = 0x8b; 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int F2L = 0x8c; 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int F2D = 0x8d; 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int D2I = 0x8e; 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int D2L = 0x8f; 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int D2F = 0x90; 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int I2B = 0x91; 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int I2C = 0x92; 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int I2S = 0x93; 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LCMP = 0x94; 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FCMPL = 0x95; 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FCMPG = 0x96; 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DCMPL = 0x97; 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DCMPG = 0x98; 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFEQ = 0x99; 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFNE = 0x9a; 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFLT = 0x9b; 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFGE = 0x9c; 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFGT = 0x9d; 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFLE = 0x9e; 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ICMPEQ = 0x9f; 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ICMPNE = 0xa0; 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ICMPLT = 0xa1; 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ICMPGE = 0xa2; 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ICMPGT = 0xa3; 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ICMPLE = 0xa4; 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ACMPEQ = 0xa5; 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IF_ACMPNE = 0xa6; 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int GOTO = 0xa7; 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int JSR = 0xa8; 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int RET = 0xa9; 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int TABLESWITCH = 0xaa; 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LOOKUPSWITCH = 0xab; 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IRETURN = 0xac; 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int LRETURN = 0xad; 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FRETURN = 0xae; 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int DRETURN = 0xaf; 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ARETURN = 0xb0; 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int RETURN = 0xb1; 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int GETSTATIC = 0xb2; 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int PUTSTATIC = 0xb3; 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int GETFIELD = 0xb4; 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int PUTFIELD = 0xb5; 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int INVOKEVIRTUAL = 0xb6; 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int INVOKESPECIAL = 0xb7; 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int INVOKESTATIC = 0xb8; 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int INVOKEINTERFACE = 0xb9; 2135ca383d7373cf7c54706b8e70d534deee8d2e3addelphinemartin public static final int INVOKEDYNAMIC = 0xba; 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEW = 0xbb; 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY = 0xbc; 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ANEWARRAY = 0xbd; 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ARRAYLENGTH = 0xbe; 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int ATHROW = 0xbf; 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CHECKCAST = 0xc0; 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int INSTANCEOF = 0xc1; 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int MONITORENTER = 0xc2; 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int MONITOREXIT = 0xc3; 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int WIDE = 0xc4; 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int MULTIANEWARRAY = 0xc5; 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFNULL = 0xc6; 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int IFNONNULL = 0xc7; 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int GOTO_W = 0xc8; 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int JSR_W = 0xc9; 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // a constant for each valid argument to "newarray" 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_BOOLEAN = 4; 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_CHAR = 5; 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_FLOAT = 6; 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_DOUBLE = 7; 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_BYTE = 8; 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_SHORT = 9; 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_INT = 10; 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int NEWARRAY_LONG = 11; 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // a constant for each possible instruction format 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** invalid */ 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_INVALID = 0; 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 24699409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "-": {@code op} */ 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_NO_ARGS = 1; 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 24999409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "0": {@code op}; implies {@code max_locals >= 1} */ 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_NO_ARGS_LOCALS_1 = 2; 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25299409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "1": {@code op}; implies {@code max_locals >= 2} */ 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_NO_ARGS_LOCALS_2 = 3; 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25599409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "2": {@code op}; implies {@code max_locals >= 3} */ 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_NO_ARGS_LOCALS_3 = 4; 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25899409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "3": {@code op}; implies {@code max_locals >= 4} */ 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_NO_ARGS_LOCALS_4 = 5; 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 26199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "4": {@code op}; implies {@code max_locals >= 5} */ 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_NO_ARGS_LOCALS_5 = 6; 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 26499409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "b": {@code op target target} */ 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_BRANCH = 7; 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 26799409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "c": {@code op target target target target} */ 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_WIDE_BRANCH = 8; 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 27099409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "p": {@code op #cpi #cpi}; constant restricted as specified */ 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_CPI = 9; 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 27499409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * "l": {@code op local}; category-1 local; implies 27599409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * {@code max_locals} is at least two more than the given 276de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro * local number 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_LOCAL_1 = 10; 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 28199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * "m": {@code op local}; category-2 local; implies 28299409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * {@code max_locals} is at least two more than the given 283de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro * local number 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_LOCAL_2 = 11; 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 28899409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * "y": {@code op #byte} ({@code bipush} and 289de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro * {@code newarray}) 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_LITERAL_BYTE = 12; 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29399409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "I": {@code invokeinterface cpi cpi count 0} */ 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_INVOKEINTERFACE = 13; 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29699409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "L": {@code ldc #cpi}; constant restricted as specified */ 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_LDC = 14; 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29999409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "S": {@code sipush #byte #byte} */ 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_SIPUSH = 15; 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 30299409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "T": {@code tableswitch ...} */ 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_TABLESWITCH = 16; 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 30599409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "U": {@code lookupswitch ...} */ 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_LOOKUPSWITCH = 17; 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 30899409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "M": {@code multianewarray cpi cpi dims} */ 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_MULTIANEWARRAY = 18; 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 31199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "W": {@code wide ...} */ 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_WIDE = 19; 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** mask for the bits representing the opcode format */ 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int FMT_MASK = 0x1f; 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 31799409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "I": flag bit for valid cp type for {@code Integer} */ 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Integer = 0x20; 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 32099409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "F": flag bit for valid cp type for {@code Float} */ 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Float = 0x40; 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 32399409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "J": flag bit for valid cp type for {@code Long} */ 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Long = 0x80; 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 32699409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "D": flag bit for valid cp type for {@code Double} */ 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Double = 0x100; 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 32999409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "c": flag bit for valid cp type for {@code Class} */ 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Class = 0x200; 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 33299409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "s": flag bit for valid cp type for {@code String} */ 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_String = 0x400; 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 33599409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "f": flag bit for valid cp type for {@code Fieldref} */ 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Fieldref = 0x800; 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 33899409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "m": flag bit for valid cp type for {@code Methodref} */ 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_Methodref = 0x1000; 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 34199409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** "i": flag bit for valid cp type for {@code InterfaceMethodref} */ 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static final int CPOK_InterfaceMethodref = 0x2000; 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 34599409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * {@code non-null;} map from opcodes to format or'ed with allowed constant 346de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro * pool types 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static final int[] OPCODE_INFO = new int[256]; 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 35099409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** {@code non-null;} map from opcodes to their names */ 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static final String[] OPCODE_NAMES = new String[256]; 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 35399409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project /** {@code non-null;} bigass string describing all the opcodes */ 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static final String OPCODE_DETAILS = 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "00 - nop;" + 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "01 - aconst_null;" + 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "02 - iconst_m1;" + 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "03 - iconst_0;" + 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "04 - iconst_1;" + 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "05 - iconst_2;" + 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "06 - iconst_3;" + 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "07 - iconst_4;" + 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "08 - iconst_5;" + 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "09 - lconst_0;" + 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "0a - lconst_1;" + 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "0b - fconst_0;" + 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "0c - fconst_1;" + 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "0d - fconst_2;" + 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "0e - dconst_0;" + 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "0f - dconst_1;" + 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "10 y bipush;" + 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "11 S sipush;" + 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "12 L:IFcs ldc;" + 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "13 p:IFcs ldc_w;" + 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "14 p:DJ ldc2_w;" + 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "15 l iload;" + 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "16 m lload;" + 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "17 l fload;" + 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "18 m dload;" + 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "19 l aload;" + 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1a 0 iload_0;" + 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1b 1 iload_1;" + 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1c 2 iload_2;" + 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1d 3 iload_3;" + 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1e 1 lload_0;" + 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1f 2 lload_1;" + 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "20 3 lload_2;" + 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "21 4 lload_3;" + 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "22 0 fload_0;" + 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "23 1 fload_1;" + 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "24 2 fload_2;" + 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "25 3 fload_3;" + 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "26 1 dload_0;" + 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "27 2 dload_1;" + 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "28 3 dload_2;" + 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "29 4 dload_3;" + 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2a 0 aload_0;" + 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2b 1 aload_1;" + 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2c 2 aload_2;" + 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2d 3 aload_3;" + 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2e - iaload;" + 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2f - laload;" + 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "30 - faload;" + 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "31 - daload;" + 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "32 - aaload;" + 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "33 - baload;" + 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "34 - caload;" + 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "35 - saload;" + 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "36 - istore;" + 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "37 - lstore;" + 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "38 - fstore;" + 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "39 - dstore;" + 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3a - astore;" + 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3b 0 istore_0;" + 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3c 1 istore_1;" + 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3d 2 istore_2;" + 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3e 3 istore_3;" + 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3f 1 lstore_0;" + 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "40 2 lstore_1;" + 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "41 3 lstore_2;" + 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "42 4 lstore_3;" + 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "43 0 fstore_0;" + 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "44 1 fstore_1;" + 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "45 2 fstore_2;" + 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "46 3 fstore_3;" + 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "47 1 dstore_0;" + 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "48 2 dstore_1;" + 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "49 3 dstore_2;" + 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4a 4 dstore_3;" + 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4b 0 astore_0;" + 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4c 1 astore_1;" + 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4d 2 astore_2;" + 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4e 3 astore_3;" + 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4f - iastore;" + 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "50 - lastore;" + 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "51 - fastore;" + 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "52 - dastore;" + 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "53 - aastore;" + 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "54 - bastore;" + 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "55 - castore;" + 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "56 - sastore;" + 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "57 - pop;" + 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "58 - pop2;" + 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "59 - dup;" + 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "5a - dup_x1;" + 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "5b - dup_x2;" + 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "5c - dup2;" + 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "5d - dup2_x1;" + 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "5e - dup2_x2;" + 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "5f - swap;" + 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "60 - iadd;" + 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "61 - ladd;" + 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "62 - fadd;" + 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "63 - dadd;" + 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "64 - isub;" + 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "65 - lsub;" + 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "66 - fsub;" + 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "67 - dsub;" + 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "68 - imul;" + 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "69 - lmul;" + 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "6a - fmul;" + 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "6b - dmul;" + 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "6c - idiv;" + 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "6d - ldiv;" + 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "6e - fdiv;" + 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "6f - ddiv;" + 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "70 - irem;" + 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "71 - lrem;" + 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "72 - frem;" + 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "73 - drem;" + 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "74 - ineg;" + 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "75 - lneg;" + 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "76 - fneg;" + 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "77 - dneg;" + 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "78 - ishl;" + 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "79 - lshl;" + 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "7a - ishr;" + 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "7b - lshr;" + 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "7c - iushr;" + 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "7d - lushr;" + 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "7e - iand;" + 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "7f - land;" + 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "80 - ior;" + 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "81 - lor;" + 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "82 - ixor;" + 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "83 - lxor;" + 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "84 l iinc;" + 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "85 - i2l;" + 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "86 - i2f;" + 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "87 - i2d;" + 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "88 - l2i;" + 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "89 - l2f;" + 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "8a - l2d;" + 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "8b - f2i;" + 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "8c - f2l;" + 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "8d - f2d;" + 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "8e - d2i;" + 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "8f - d2l;" + 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "90 - d2f;" + 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "91 - i2b;" + 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "92 - i2c;" + 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "93 - i2s;" + 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "94 - lcmp;" + 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "95 - fcmpl;" + 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "96 - fcmpg;" + 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "97 - dcmpl;" + 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "98 - dcmpg;" + 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "99 b ifeq;" + 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "9a b ifne;" + 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "9b b iflt;" + 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "9c b ifge;" + 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "9d b ifgt;" + 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "9e b ifle;" + 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "9f b if_icmpeq;" + 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a0 b if_icmpne;" + 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a1 b if_icmplt;" + 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a2 b if_icmpge;" + 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a3 b if_icmpgt;" + 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a4 b if_icmple;" + 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a5 b if_acmpeq;" + 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a6 b if_acmpne;" + 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a7 b goto;" + 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a8 b jsr;" + 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "a9 l ret;" + 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "aa T tableswitch;" + 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "ab U lookupswitch;" + 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "ac - ireturn;" + 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "ad - lreturn;" + 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "ae - freturn;" + 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "af - dreturn;" + 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b0 - areturn;" + 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b1 - return;" + 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b2 p:f getstatic;" + 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b3 p:f putstatic;" + 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b4 p:f getfield;" + 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b5 p:f putfield;" + 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b6 p:m invokevirtual;" + 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b7 p:m invokespecial;" + 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b8 p:m invokestatic;" + 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "b9 I:i invokeinterface;" + 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "bb p:c new;" + 542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "bc y newarray;" + 543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "bd p:c anewarray;" + 544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "be - arraylength;" + 545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "bf - athrow;" + 546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c0 p:c checkcast;" + 547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c1 p:c instanceof;" + 548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c2 - monitorenter;" + 549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c3 - monitorexit;" + 550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c4 W wide;" + 551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c5 M:c multianewarray;" + 552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c6 b ifnull;" + 553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c7 b ifnonnull;" + 554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c8 c goto_w;" + 555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "c9 c jsr_w;"; 556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static { 558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Set up OPCODE_INFO and OPCODE_NAMES. 559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String s = OPCODE_DETAILS; 560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int len = s.length(); 561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < len; /*i*/) { 563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int idx = (Character.digit(s.charAt(i), 16) << 4) | 564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Character.digit(s.charAt(i + 1), 16); 565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int info; 566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project switch (s.charAt(i + 3)) { 567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case '-': info = FMT_NO_ARGS; break; 568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case '0': info = FMT_NO_ARGS_LOCALS_1; break; 569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case '1': info = FMT_NO_ARGS_LOCALS_2; break; 570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case '2': info = FMT_NO_ARGS_LOCALS_3; break; 571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case '3': info = FMT_NO_ARGS_LOCALS_4; break; 572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case '4': info = FMT_NO_ARGS_LOCALS_5; break; 573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'b': info = FMT_BRANCH; break; 574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'c': info = FMT_WIDE_BRANCH; break; 575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'p': info = FMT_CPI; break; 576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'l': info = FMT_LOCAL_1; break; 577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'm': info = FMT_LOCAL_2; break; 578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'y': info = FMT_LITERAL_BYTE; break; 579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'I': info = FMT_INVOKEINTERFACE; break; 580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'L': info = FMT_LDC; break; 581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'S': info = FMT_SIPUSH; break; 582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'T': info = FMT_TABLESWITCH; break; 583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'U': info = FMT_LOOKUPSWITCH; break; 584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'M': info = FMT_MULTIANEWARRAY; break; 585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'W': info = FMT_WIDE; break; 586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project default: info = FMT_INVALID; break; 587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project i += 5; 590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (s.charAt(i - 1) == ':') { 591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project inner: 592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (;;) { 593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project switch (s.charAt(i)) { 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'I': info |= CPOK_Integer; break; 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'F': info |= CPOK_Float; break; 596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'J': info |= CPOK_Long; break; 597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'D': info |= CPOK_Double; break; 598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'c': info |= CPOK_Class; break; 599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 's': info |= CPOK_String; break; 600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'f': info |= CPOK_Fieldref; break; 601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'm': info |= CPOK_Methodref; break; 602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'i': info |= CPOK_InterfaceMethodref; break; 603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project default: break inner; 604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project i++; 606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project i++; 608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int endAt = s.indexOf(';', i); 611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OPCODE_INFO[idx] = info; 612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OPCODE_NAMES[idx] = s.substring(i, endAt); 613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project i = endAt + 1; 614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This class is uninstantiable. 619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private ByteOps() { 621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // This space intentionally left blank. 622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Gets the name of the given opcode. 626de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro * 62799409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * @param opcode {@code >= 0, <= 255;} the opcode 62899409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * @return {@code non-null;} its name 629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static String opName(int opcode) { 631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String result = OPCODE_NAMES[opcode]; 632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (result == null) { 634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = "unused_" + Hex.u1(opcode); 635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OPCODE_NAMES[opcode] = result; 636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return result; 639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Gets the format and allowed cp types of the given opcode. 643de75089fb7216d19e9c22cce4dc62a49513477d3Carl Shapiro * 64499409883d9c4c0ffb49b070ce307bb33a9dfe9f1The Android Open Source Project * @param opcode {@code >= 0, <= 255;} the opcode 645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return its format and allowed cp types 646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static int opInfo(int opcode) { 648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return OPCODE_INFO[opcode]; 649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 651