1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2008 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 Project/* 1811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * Dalvik opcode information. 1911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * 2011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * IMPORTANT NOTE: The contents of this file are mostly generated 2111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * automatically by the opcode-gen tool. Any edits to the generated 2211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * sections will get wiped out the next time the tool is run. 23758a6733f7d1a525aa1530e008cab8a912e7a084Dan Bornstein * 24758a6733f7d1a525aa1530e008cab8a912e7a084Dan Bornstein * See the file opcode-gen/README.txt for information about updating 25758a6733f7d1a525aa1530e008cab8a912e7a084Dan Bornstein * opcodes and instruction formats. 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein 28375fb116bcb817b37509ab579dbd55cdbb765cbfCarl Shapiro#ifndef LIBDEX_DEXOPCODES_H_ 29375fb116bcb817b37509ab579dbd55cdbb765cbfCarl Shapiro#define LIBDEX_DEXOPCODES_H_ 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 31111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein#include "DexFile.h" 32111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein 33111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein/* 34ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * kMaxOpcodeValue: the highest possible raw (unpacked) opcode value 35ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * 36ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * kNumPackedOpcodes: the highest possible packed opcode value of a 37ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * valid Dalvik opcode, plus one 38111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * 39111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * TODO: Change this once the rest of the code is prepared to deal with 40111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * extended opcodes. 41111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein */ 42ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein// BEGIN(libdex-maximum-values); GENERATED AUTOMATICALLY BY opcode-gen 4371eee1f0c2eb514585fdbee16730c9c2209e8f68jeffhao#define kMaxOpcodeValue 0xffff 44ab35b50311951feea3782151dd5422ee944685c2Elliott Hughes#define kNumPackedOpcodes 0x100 45ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein// END(libdex-maximum-values); GENERATED AUTOMATICALLY BY opcode-gen 4611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein 4711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein/* 48ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * Switch table and array data signatures are a code unit consisting 49ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * of "NOP" (0x00) in the low-order byte and a non-zero identifying 50ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein * code in the high-order byte. (A true NOP is 0x0000.) 5111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein */ 5211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein#define kPackedSwitchSignature 0x0100 5311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein#define kSparseSwitchSignature 0x0200 5411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein#define kArrayDataSignature 0x0300 5511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 5711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * Enumeration of all Dalvik opcodes, where the enumeration value 58111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * associated with each is the corresponding packed opcode number. 59111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * This is different than the opcode value from the Dalvik bytecode 609a1f81699cc05b58378ffb9aadb4e97677943791Dan Bornstein * spec for opcode values >= 0xff; see dexOpcodeFromCodeUnit() below. 6111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * 6211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * A note about the "breakpoint" opcode. This instruction is special, 6311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * in that it should never be seen by anything but the debug 6411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * interpreter. During debugging it takes the place of an arbitrary 6511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * opcode, which means operations like "tell me the opcode width so I 6611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * can find the next instruction" aren't possible. (This is 6711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * correctable, but probably not useful.) 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 69bfc9799b1a53fd6f6136d07e6278d4538cf70f13Carl Shapiroenum Opcode { 7011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein // BEGIN(libdex-opcode-enum); GENERATED AUTOMATICALLY BY opcode-gen 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NOP = 0x00, 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE = 0x01, 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_FROM16 = 0x02, 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_16 = 0x03, 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_WIDE = 0x04, 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_WIDE_FROM16 = 0x05, 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_WIDE_16 = 0x06, 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_OBJECT = 0x07, 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_OBJECT_FROM16 = 0x08, 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_OBJECT_16 = 0x09, 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_RESULT = 0x0a, 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_RESULT_WIDE = 0x0b, 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_RESULT_OBJECT = 0x0c, 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MOVE_EXCEPTION = 0x0d, 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_RETURN_VOID = 0x0e, 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_RETURN = 0x0f, 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_RETURN_WIDE = 0x10, 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_RETURN_OBJECT = 0x11, 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_4 = 0x12, 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_16 = 0x13, 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST = 0x14, 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_HIGH16 = 0x15, 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_WIDE_16 = 0x16, 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_WIDE_32 = 0x17, 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_WIDE = 0x18, 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_WIDE_HIGH16 = 0x19, 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_STRING = 0x1a, 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_STRING_JUMBO = 0x1b, 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CONST_CLASS = 0x1c, 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MONITOR_ENTER = 0x1d, 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MONITOR_EXIT = 0x1e, 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CHECK_CAST = 0x1f, 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INSTANCE_OF = 0x20, 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ARRAY_LENGTH = 0x21, 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NEW_INSTANCE = 0x22, 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NEW_ARRAY = 0x23, 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_FILLED_NEW_ARRAY = 0x24, 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_FILLED_NEW_ARRAY_RANGE = 0x25, 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_FILL_ARRAY_DATA = 0x26, 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_THROW = 0x27, 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_GOTO = 0x28, 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_GOTO_16 = 0x29, 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_GOTO_32 = 0x2a, 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_PACKED_SWITCH = 0x2b, 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPARSE_SWITCH = 0x2c, 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CMPL_FLOAT = 0x2d, 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CMPG_FLOAT = 0x2e, 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CMPL_DOUBLE = 0x2f, 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CMPG_DOUBLE = 0x30, 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_CMP_LONG = 0x31, 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_EQ = 0x32, 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_NE = 0x33, 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_LT = 0x34, 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_GE = 0x35, 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_GT = 0x36, 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_LE = 0x37, 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_EQZ = 0x38, 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_NEZ = 0x39, 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_LTZ = 0x3a, 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_GEZ = 0x3b, 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_GTZ = 0x3c, 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IF_LEZ = 0x3d, 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_3E = 0x3e, 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_3F = 0x3f, 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_40 = 0x40, 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_41 = 0x41, 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_42 = 0x42, 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_43 = 0x43, 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET = 0x44, 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET_WIDE = 0x45, 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET_OBJECT = 0x46, 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET_BOOLEAN = 0x47, 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET_BYTE = 0x48, 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET_CHAR = 0x49, 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AGET_SHORT = 0x4a, 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT = 0x4b, 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT_WIDE = 0x4c, 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT_OBJECT = 0x4d, 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT_BOOLEAN = 0x4e, 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT_BYTE = 0x4f, 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT_CHAR = 0x50, 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_APUT_SHORT = 0x51, 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET = 0x52, 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_WIDE = 0x53, 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_OBJECT = 0x54, 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_BOOLEAN = 0x55, 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_BYTE = 0x56, 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_CHAR = 0x57, 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_SHORT = 0x58, 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT = 0x59, 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_WIDE = 0x5a, 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_OBJECT = 0x5b, 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_BOOLEAN = 0x5c, 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_BYTE = 0x5d, 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_CHAR = 0x5e, 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_SHORT = 0x5f, 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET = 0x60, 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET_WIDE = 0x61, 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET_OBJECT = 0x62, 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET_BOOLEAN = 0x63, 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET_BYTE = 0x64, 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET_CHAR = 0x65, 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SGET_SHORT = 0x66, 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT = 0x67, 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT_WIDE = 0x68, 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT_OBJECT = 0x69, 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT_BOOLEAN = 0x6a, 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT_BYTE = 0x6b, 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT_CHAR = 0x6c, 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SPUT_SHORT = 0x6d, 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_VIRTUAL = 0x6e, 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_SUPER = 0x6f, 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_DIRECT = 0x70, 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_STATIC = 0x71, 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_INTERFACE = 0x72, 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_73 = 0x73, 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_VIRTUAL_RANGE = 0x74, 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_SUPER_RANGE = 0x75, 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_DIRECT_RANGE = 0x76, 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_STATIC_RANGE = 0x77, 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_INTERFACE_RANGE = 0x78, 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_79 = 0x79, 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_UNUSED_7A = 0x7a, 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NEG_INT = 0x7b, 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NOT_INT = 0x7c, 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NEG_LONG = 0x7d, 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NOT_LONG = 0x7e, 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NEG_FLOAT = 0x7f, 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_NEG_DOUBLE = 0x80, 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INT_TO_LONG = 0x81, 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INT_TO_FLOAT = 0x82, 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INT_TO_DOUBLE = 0x83, 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_LONG_TO_INT = 0x84, 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_LONG_TO_FLOAT = 0x85, 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_LONG_TO_DOUBLE = 0x86, 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_FLOAT_TO_INT = 0x87, 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_FLOAT_TO_LONG = 0x88, 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_FLOAT_TO_DOUBLE = 0x89, 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DOUBLE_TO_INT = 0x8a, 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DOUBLE_TO_LONG = 0x8b, 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DOUBLE_TO_FLOAT = 0x8c, 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INT_TO_BYTE = 0x8d, 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INT_TO_CHAR = 0x8e, 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INT_TO_SHORT = 0x8f, 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_INT = 0x90, 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_INT = 0x91, 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_INT = 0x92, 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_INT = 0x93, 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_INT = 0x94, 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AND_INT = 0x95, 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_OR_INT = 0x96, 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_XOR_INT = 0x97, 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHL_INT = 0x98, 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHR_INT = 0x99, 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_USHR_INT = 0x9a, 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_LONG = 0x9b, 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_LONG = 0x9c, 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_LONG = 0x9d, 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_LONG = 0x9e, 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_LONG = 0x9f, 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AND_LONG = 0xa0, 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_OR_LONG = 0xa1, 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_XOR_LONG = 0xa2, 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHL_LONG = 0xa3, 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHR_LONG = 0xa4, 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_USHR_LONG = 0xa5, 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_FLOAT = 0xa6, 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_FLOAT = 0xa7, 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_FLOAT = 0xa8, 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_FLOAT = 0xa9, 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_FLOAT = 0xaa, 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_DOUBLE = 0xab, 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_DOUBLE = 0xac, 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_DOUBLE = 0xad, 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_DOUBLE = 0xae, 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_DOUBLE = 0xaf, 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_INT_2ADDR = 0xb0, 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_INT_2ADDR = 0xb1, 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_INT_2ADDR = 0xb2, 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_INT_2ADDR = 0xb3, 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_INT_2ADDR = 0xb4, 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AND_INT_2ADDR = 0xb5, 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_OR_INT_2ADDR = 0xb6, 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_XOR_INT_2ADDR = 0xb7, 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHL_INT_2ADDR = 0xb8, 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHR_INT_2ADDR = 0xb9, 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_USHR_INT_2ADDR = 0xba, 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_LONG_2ADDR = 0xbb, 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_LONG_2ADDR = 0xbc, 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_LONG_2ADDR = 0xbd, 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_LONG_2ADDR = 0xbe, 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_LONG_2ADDR = 0xbf, 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AND_LONG_2ADDR = 0xc0, 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_OR_LONG_2ADDR = 0xc1, 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_XOR_LONG_2ADDR = 0xc2, 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHL_LONG_2ADDR = 0xc3, 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHR_LONG_2ADDR = 0xc4, 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_USHR_LONG_2ADDR = 0xc5, 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_FLOAT_2ADDR = 0xc6, 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_FLOAT_2ADDR = 0xc7, 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_FLOAT_2ADDR = 0xc8, 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_FLOAT_2ADDR = 0xc9, 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_FLOAT_2ADDR = 0xca, 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_DOUBLE_2ADDR = 0xcb, 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SUB_DOUBLE_2ADDR = 0xcc, 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_DOUBLE_2ADDR = 0xcd, 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_DOUBLE_2ADDR = 0xce, 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_DOUBLE_2ADDR = 0xcf, 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_INT_LIT16 = 0xd0, 28011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein OP_RSUB_INT = 0xd1, 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_INT_LIT16 = 0xd2, 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_INT_LIT16 = 0xd3, 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_INT_LIT16 = 0xd4, 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AND_INT_LIT16 = 0xd5, 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_OR_INT_LIT16 = 0xd6, 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_XOR_INT_LIT16 = 0xd7, 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_ADD_INT_LIT8 = 0xd8, 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_RSUB_INT_LIT8 = 0xd9, 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_MUL_INT_LIT8 = 0xda, 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_DIV_INT_LIT8 = 0xdb, 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_REM_INT_LIT8 = 0xdc, 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_AND_INT_LIT8 = 0xdd, 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_OR_INT_LIT8 = 0xde, 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_XOR_INT_LIT8 = 0xdf, 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHL_INT_LIT8 = 0xe0, 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_SHR_INT_LIT8 = 0xe1, 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_USHR_INT_LIT8 = 0xe2, 298c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_IGET_VOLATILE = 0xe3, 299c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_IPUT_VOLATILE = 0xe4, 300c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_SGET_VOLATILE = 0xe5, 301c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_SPUT_VOLATILE = 0xe6, 302c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_IGET_OBJECT_VOLATILE = 0xe7, 3035387824f19033ed51a945fbc8c2b574998404b3dAndy McFadden OP_IGET_WIDE_VOLATILE = 0xe8, 3045387824f19033ed51a945fbc8c2b574998404b3dAndy McFadden OP_IPUT_WIDE_VOLATILE = 0xe9, 3055387824f19033ed51a945fbc8c2b574998404b3dAndy McFadden OP_SGET_WIDE_VOLATILE = 0xea, 3065387824f19033ed51a945fbc8c2b574998404b3dAndy McFadden OP_SPUT_WIDE_VOLATILE = 0xeb, 30796516932f1557d8f48a8b2dbbb885af01a11ef6eAndy McFadden OP_BREAKPOINT = 0xec, 3083a1aedbc9777eab6275a360b93b81b079464238eAndy McFadden OP_THROW_VERIFICATION_ERROR = 0xed, 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_EXECUTE_INLINE = 0xee, 310b0a0541b59d1126ff77c88de742b4a74579fe296Andy McFadden OP_EXECUTE_INLINE_RANGE = 0xef, 3110346e9dcddccd449c731e42ef83708ff6d8f0976Andy McFadden OP_INVOKE_OBJECT_INIT_RANGE = 0xf0, 312291758c5c4902900c6f86794ba8ab9cad9b26197Andy McFadden OP_RETURN_VOID_BARRIER = 0xf1, 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_QUICK = 0xf2, 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_WIDE_QUICK = 0xf3, 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IGET_OBJECT_QUICK = 0xf4, 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_QUICK = 0xf5, 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_WIDE_QUICK = 0xf6, 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_IPUT_OBJECT_QUICK = 0xf7, 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_VIRTUAL_QUICK = 0xf8, 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_VIRTUAL_QUICK_RANGE = 0xf9, 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_SUPER_QUICK = 0xfa, 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project OP_INVOKE_SUPER_QUICK_RANGE = 0xfb, 323c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_IPUT_OBJECT_VOLATILE = 0xfc, 324c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_SGET_OBJECT_VOLATILE = 0xfd, 325c35a2ef53d0cccd6f924eeba36633220ec67c32eAndy McFadden OP_SPUT_OBJECT_VOLATILE = 0xfe, 326ab35b50311951feea3782151dd5422ee944685c2Elliott Hughes OP_UNUSED_FF = 0xff, 32711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein // END(libdex-opcode-enum) 328bfc9799b1a53fd6f6136d07e6278d4538cf70f13Carl Shapiro}; 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 33111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * Macro used to generate a computed goto table for use in implementing 33211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein * an interpreter in C. 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project#define DEFINE_GOTO_TABLE(_name) \ 335ccaab18ae6d203108445fef7682065dfbb007657Dan Bornstein static const void* _name[kNumPackedOpcodes] = { \ 33611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein /* BEGIN(libdex-goto-table); GENERATED AUTOMATICALLY BY opcode-gen */ \ 33711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NOP), \ 33811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE), \ 33911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_FROM16), \ 34011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_16), \ 34111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_WIDE), \ 34211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_WIDE_FROM16), \ 34311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_WIDE_16), \ 34411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_OBJECT), \ 34511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_OBJECT_FROM16), \ 34611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_OBJECT_16), \ 34711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_RESULT), \ 34811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_RESULT_WIDE), \ 34911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_RESULT_OBJECT), \ 35011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MOVE_EXCEPTION), \ 35111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RETURN_VOID), \ 35211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RETURN), \ 35311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RETURN_WIDE), \ 35411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RETURN_OBJECT), \ 35511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_4), \ 35611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_16), \ 35711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST), \ 35811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_HIGH16), \ 35911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_WIDE_16), \ 36011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_WIDE_32), \ 36111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_WIDE), \ 36211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_WIDE_HIGH16), \ 36311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_STRING), \ 36411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_STRING_JUMBO), \ 36511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CONST_CLASS), \ 36611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MONITOR_ENTER), \ 36711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MONITOR_EXIT), \ 36811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CHECK_CAST), \ 36911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INSTANCE_OF), \ 37011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ARRAY_LENGTH), \ 37111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NEW_INSTANCE), \ 37211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NEW_ARRAY), \ 37311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_FILLED_NEW_ARRAY), \ 37411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_FILLED_NEW_ARRAY_RANGE), \ 37511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_FILL_ARRAY_DATA), \ 37611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_THROW), \ 37711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_GOTO), \ 37811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_GOTO_16), \ 37911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_GOTO_32), \ 38011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_PACKED_SWITCH), \ 38111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPARSE_SWITCH), \ 38211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CMPL_FLOAT), \ 38311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CMPG_FLOAT), \ 38411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CMPL_DOUBLE), \ 38511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CMPG_DOUBLE), \ 38611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_CMP_LONG), \ 38711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_EQ), \ 38811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_NE), \ 38911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_LT), \ 39011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_GE), \ 39111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_GT), \ 39211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_LE), \ 39311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_EQZ), \ 39411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_NEZ), \ 39511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_LTZ), \ 39611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_GEZ), \ 39711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_GTZ), \ 39811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IF_LEZ), \ 39911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_3E), \ 40011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_3F), \ 40111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_40), \ 40211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_41), \ 40311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_42), \ 40411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_43), \ 40511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET), \ 40611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET_WIDE), \ 40711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET_OBJECT), \ 40811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET_BOOLEAN), \ 40911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET_BYTE), \ 41011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET_CHAR), \ 41111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AGET_SHORT), \ 41211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT), \ 41311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT_WIDE), \ 41411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT_OBJECT), \ 41511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT_BOOLEAN), \ 41611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT_BYTE), \ 41711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT_CHAR), \ 41811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_APUT_SHORT), \ 41911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET), \ 42011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_WIDE), \ 42111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_OBJECT), \ 42211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_BOOLEAN), \ 42311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_BYTE), \ 42411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_CHAR), \ 42511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_SHORT), \ 42611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT), \ 42711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_WIDE), \ 42811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_OBJECT), \ 42911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_BOOLEAN), \ 43011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_BYTE), \ 43111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_CHAR), \ 43211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_SHORT), \ 43311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET), \ 43411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_WIDE), \ 43511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_OBJECT), \ 43611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_BOOLEAN), \ 43711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_BYTE), \ 43811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_CHAR), \ 43911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_SHORT), \ 44011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT), \ 44111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_WIDE), \ 44211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_OBJECT), \ 44311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_BOOLEAN), \ 44411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_BYTE), \ 44511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_CHAR), \ 44611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_SHORT), \ 44711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_VIRTUAL), \ 44811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_SUPER), \ 44911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_DIRECT), \ 45011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_STATIC), \ 45111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_INTERFACE), \ 45211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_73), \ 45311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_VIRTUAL_RANGE), \ 45411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_SUPER_RANGE), \ 45511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_DIRECT_RANGE), \ 45611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_STATIC_RANGE), \ 45711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_INTERFACE_RANGE), \ 45811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_79), \ 45911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_UNUSED_7A), \ 46011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NEG_INT), \ 46111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NOT_INT), \ 46211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NEG_LONG), \ 46311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NOT_LONG), \ 46411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NEG_FLOAT), \ 46511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_NEG_DOUBLE), \ 46611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INT_TO_LONG), \ 46711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INT_TO_FLOAT), \ 46811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INT_TO_DOUBLE), \ 46911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_LONG_TO_INT), \ 47011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_LONG_TO_FLOAT), \ 47111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_LONG_TO_DOUBLE), \ 47211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_FLOAT_TO_INT), \ 47311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_FLOAT_TO_LONG), \ 47411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_FLOAT_TO_DOUBLE), \ 47511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DOUBLE_TO_INT), \ 47611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DOUBLE_TO_LONG), \ 47711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DOUBLE_TO_FLOAT), \ 47811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INT_TO_BYTE), \ 47911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INT_TO_CHAR), \ 48011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INT_TO_SHORT), \ 48111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_INT), \ 48211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_INT), \ 48311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_INT), \ 48411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_INT), \ 48511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_INT), \ 48611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AND_INT), \ 48711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_OR_INT), \ 48811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_XOR_INT), \ 48911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHL_INT), \ 49011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHR_INT), \ 49111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_USHR_INT), \ 49211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_LONG), \ 49311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_LONG), \ 49411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_LONG), \ 49511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_LONG), \ 49611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_LONG), \ 49711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AND_LONG), \ 49811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_OR_LONG), \ 49911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_XOR_LONG), \ 50011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHL_LONG), \ 50111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHR_LONG), \ 50211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_USHR_LONG), \ 50311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_FLOAT), \ 50411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_FLOAT), \ 50511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_FLOAT), \ 50611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_FLOAT), \ 50711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_FLOAT), \ 50811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_DOUBLE), \ 50911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_DOUBLE), \ 51011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_DOUBLE), \ 51111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_DOUBLE), \ 51211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_DOUBLE), \ 51311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_INT_2ADDR), \ 51411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_INT_2ADDR), \ 51511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_INT_2ADDR), \ 51611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_INT_2ADDR), \ 51711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_INT_2ADDR), \ 51811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AND_INT_2ADDR), \ 51911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_OR_INT_2ADDR), \ 52011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_XOR_INT_2ADDR), \ 52111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHL_INT_2ADDR), \ 52211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHR_INT_2ADDR), \ 52311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_USHR_INT_2ADDR), \ 52411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_LONG_2ADDR), \ 52511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_LONG_2ADDR), \ 52611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_LONG_2ADDR), \ 52711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_LONG_2ADDR), \ 52811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_LONG_2ADDR), \ 52911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AND_LONG_2ADDR), \ 53011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_OR_LONG_2ADDR), \ 53111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_XOR_LONG_2ADDR), \ 53211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHL_LONG_2ADDR), \ 53311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHR_LONG_2ADDR), \ 53411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_USHR_LONG_2ADDR), \ 53511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_FLOAT_2ADDR), \ 53611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_FLOAT_2ADDR), \ 53711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_FLOAT_2ADDR), \ 53811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_FLOAT_2ADDR), \ 53911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_FLOAT_2ADDR), \ 54011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_DOUBLE_2ADDR), \ 54111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SUB_DOUBLE_2ADDR), \ 54211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_DOUBLE_2ADDR), \ 54311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_DOUBLE_2ADDR), \ 54411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_DOUBLE_2ADDR), \ 54511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_INT_LIT16), \ 54611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RSUB_INT), \ 54711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_INT_LIT16), \ 54811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_INT_LIT16), \ 54911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_INT_LIT16), \ 55011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AND_INT_LIT16), \ 55111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_OR_INT_LIT16), \ 55211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_XOR_INT_LIT16), \ 55311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_ADD_INT_LIT8), \ 55411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RSUB_INT_LIT8), \ 55511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_MUL_INT_LIT8), \ 55611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_DIV_INT_LIT8), \ 55711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_REM_INT_LIT8), \ 55811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_AND_INT_LIT8), \ 55911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_OR_INT_LIT8), \ 56011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_XOR_INT_LIT8), \ 56111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHL_INT_LIT8), \ 56211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SHR_INT_LIT8), \ 56311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_USHR_INT_LIT8), \ 56411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_VOLATILE), \ 56511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_VOLATILE), \ 56611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_VOLATILE), \ 56711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_VOLATILE), \ 56811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_OBJECT_VOLATILE), \ 56911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_WIDE_VOLATILE), \ 57011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_WIDE_VOLATILE), \ 57111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_WIDE_VOLATILE), \ 57211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_WIDE_VOLATILE), \ 57311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_BREAKPOINT), \ 57411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_THROW_VERIFICATION_ERROR), \ 57511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_EXECUTE_INLINE), \ 57611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_EXECUTE_INLINE_RANGE), \ 5770346e9dcddccd449c731e42ef83708ff6d8f0976Andy McFadden H(OP_INVOKE_OBJECT_INIT_RANGE), \ 57811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_RETURN_VOID_BARRIER), \ 57911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_QUICK), \ 58011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_WIDE_QUICK), \ 58111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IGET_OBJECT_QUICK), \ 58211a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_QUICK), \ 58311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_WIDE_QUICK), \ 58411a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_OBJECT_QUICK), \ 58511a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_VIRTUAL_QUICK), \ 58611a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_VIRTUAL_QUICK_RANGE), \ 58711a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_SUPER_QUICK), \ 58811a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_INVOKE_SUPER_QUICK_RANGE), \ 58911a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_IPUT_OBJECT_VOLATILE), \ 59011a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SGET_OBJECT_VOLATILE), \ 59111a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein H(OP_SPUT_OBJECT_VOLATILE), \ 592ab35b50311951feea3782151dd5422ee944685c2Elliott Hughes H(OP_UNUSED_FF), \ 59311a4a79b09a2be2bd7a7141ce112de3ad0432e53Dan Bornstein /* END(libdex-goto-table) */ \ 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }; 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 596111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein/* 5979a1f81699cc05b58378ffb9aadb4e97677943791Dan Bornstein * Return the Opcode for a given raw opcode code unit (which may 598111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * include data payload). The packed index is a zero-based index which 599111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * can be used to point into various opcode-related tables. The Dalvik 600111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * opcode space is inherently sparse, in that the opcode unit is 16 601111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * bits wide, but for most opcodes, eight of those bits are for data. 602111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein */ 6039a1f81699cc05b58378ffb9aadb4e97677943791Dan BornsteinDEX_INLINE Opcode dexOpcodeFromCodeUnit(u2 codeUnit) { 604111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein /* 605111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * This will want to become table-driven should the opcode layout 606111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * get more complicated. 607111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * 608111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * Note: This has to match the corresponding code in opcode-gen, so 609111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein * that data tables get generated in a consistent way. 610111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein */ 611111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein int lowByte = codeUnit & 0xff; 612111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein if (lowByte != 0xff) { 6139a1f81699cc05b58378ffb9aadb4e97677943791Dan Bornstein return (Opcode) lowByte; 614111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein } else { 6159a1f81699cc05b58378ffb9aadb4e97677943791Dan Bornstein return (Opcode) ((codeUnit >> 8) | 0x100); 616111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein } 617111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein} 618111221644c5b7b1d4f426d02786aeebf1addc8f6Dan Bornstein 619df4daaf8f41e3dcaa8221f54273338160dd43138Dan Bornstein/* 620df4daaf8f41e3dcaa8221f54273338160dd43138Dan Bornstein * Return the name of an opcode. 621df4daaf8f41e3dcaa8221f54273338160dd43138Dan Bornstein */ 6229a1f81699cc05b58378ffb9aadb4e97677943791Dan Bornsteinconst char* dexGetOpcodeName(Opcode op); 623df4daaf8f41e3dcaa8221f54273338160dd43138Dan Bornstein 624375fb116bcb817b37509ab579dbd55cdbb765cbfCarl Shapiro#endif // LIBDEX_DEXOPCODES_H_ 625