| /* |
| * Copyright (C) 2008 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /* |
| * Table of Dalvik opcode names. |
| * |
| * IMPORTANT NOTE: The contents of this file are mostly generated |
| * automatically by the opcode-gen tool. Any edits to the generated |
| * sections will get wiped out the next time the tool is run. |
| */ |
| |
| #include "DexOpcodes.h" |
| #include <assert.h> |
| |
| /* |
| * Dalvik opcode names. |
| */ |
| static const char* gOpNames[kNumPackedOpcodes] = { |
| // BEGIN(libdex-opcode-names); GENERATED AUTOMATICALLY BY opcode-gen |
| "nop", |
| "move", |
| "move/from16", |
| "move/16", |
| "move-wide", |
| "move-wide/from16", |
| "move-wide/16", |
| "move-object", |
| "move-object/from16", |
| "move-object/16", |
| "move-result", |
| "move-result-wide", |
| "move-result-object", |
| "move-exception", |
| "return-void", |
| "return", |
| "return-wide", |
| "return-object", |
| "const/4", |
| "const/16", |
| "const", |
| "const/high16", |
| "const-wide/16", |
| "const-wide/32", |
| "const-wide", |
| "const-wide/high16", |
| "const-string", |
| "const-string/jumbo", |
| "const-class", |
| "monitor-enter", |
| "monitor-exit", |
| "check-cast", |
| "instance-of", |
| "array-length", |
| "new-instance", |
| "new-array", |
| "filled-new-array", |
| "filled-new-array/range", |
| "fill-array-data", |
| "throw", |
| "goto", |
| "goto/16", |
| "goto/32", |
| "packed-switch", |
| "sparse-switch", |
| "cmpl-float", |
| "cmpg-float", |
| "cmpl-double", |
| "cmpg-double", |
| "cmp-long", |
| "if-eq", |
| "if-ne", |
| "if-lt", |
| "if-ge", |
| "if-gt", |
| "if-le", |
| "if-eqz", |
| "if-nez", |
| "if-ltz", |
| "if-gez", |
| "if-gtz", |
| "if-lez", |
| "unused-3e", |
| "unused-3f", |
| "unused-40", |
| "unused-41", |
| "unused-42", |
| "unused-43", |
| "aget", |
| "aget-wide", |
| "aget-object", |
| "aget-boolean", |
| "aget-byte", |
| "aget-char", |
| "aget-short", |
| "aput", |
| "aput-wide", |
| "aput-object", |
| "aput-boolean", |
| "aput-byte", |
| "aput-char", |
| "aput-short", |
| "iget", |
| "iget-wide", |
| "iget-object", |
| "iget-boolean", |
| "iget-byte", |
| "iget-char", |
| "iget-short", |
| "iput", |
| "iput-wide", |
| "iput-object", |
| "iput-boolean", |
| "iput-byte", |
| "iput-char", |
| "iput-short", |
| "sget", |
| "sget-wide", |
| "sget-object", |
| "sget-boolean", |
| "sget-byte", |
| "sget-char", |
| "sget-short", |
| "sput", |
| "sput-wide", |
| "sput-object", |
| "sput-boolean", |
| "sput-byte", |
| "sput-char", |
| "sput-short", |
| "invoke-virtual", |
| "invoke-super", |
| "invoke-direct", |
| "invoke-static", |
| "invoke-interface", |
| "unused-73", |
| "invoke-virtual/range", |
| "invoke-super/range", |
| "invoke-direct/range", |
| "invoke-static/range", |
| "invoke-interface/range", |
| "unused-79", |
| "unused-7a", |
| "neg-int", |
| "not-int", |
| "neg-long", |
| "not-long", |
| "neg-float", |
| "neg-double", |
| "int-to-long", |
| "int-to-float", |
| "int-to-double", |
| "long-to-int", |
| "long-to-float", |
| "long-to-double", |
| "float-to-int", |
| "float-to-long", |
| "float-to-double", |
| "double-to-int", |
| "double-to-long", |
| "double-to-float", |
| "int-to-byte", |
| "int-to-char", |
| "int-to-short", |
| "add-int", |
| "sub-int", |
| "mul-int", |
| "div-int", |
| "rem-int", |
| "and-int", |
| "or-int", |
| "xor-int", |
| "shl-int", |
| "shr-int", |
| "ushr-int", |
| "add-long", |
| "sub-long", |
| "mul-long", |
| "div-long", |
| "rem-long", |
| "and-long", |
| "or-long", |
| "xor-long", |
| "shl-long", |
| "shr-long", |
| "ushr-long", |
| "add-float", |
| "sub-float", |
| "mul-float", |
| "div-float", |
| "rem-float", |
| "add-double", |
| "sub-double", |
| "mul-double", |
| "div-double", |
| "rem-double", |
| "add-int/2addr", |
| "sub-int/2addr", |
| "mul-int/2addr", |
| "div-int/2addr", |
| "rem-int/2addr", |
| "and-int/2addr", |
| "or-int/2addr", |
| "xor-int/2addr", |
| "shl-int/2addr", |
| "shr-int/2addr", |
| "ushr-int/2addr", |
| "add-long/2addr", |
| "sub-long/2addr", |
| "mul-long/2addr", |
| "div-long/2addr", |
| "rem-long/2addr", |
| "and-long/2addr", |
| "or-long/2addr", |
| "xor-long/2addr", |
| "shl-long/2addr", |
| "shr-long/2addr", |
| "ushr-long/2addr", |
| "add-float/2addr", |
| "sub-float/2addr", |
| "mul-float/2addr", |
| "div-float/2addr", |
| "rem-float/2addr", |
| "add-double/2addr", |
| "sub-double/2addr", |
| "mul-double/2addr", |
| "div-double/2addr", |
| "rem-double/2addr", |
| "add-int/lit16", |
| "rsub-int", |
| "mul-int/lit16", |
| "div-int/lit16", |
| "rem-int/lit16", |
| "and-int/lit16", |
| "or-int/lit16", |
| "xor-int/lit16", |
| "add-int/lit8", |
| "rsub-int/lit8", |
| "mul-int/lit8", |
| "div-int/lit8", |
| "rem-int/lit8", |
| "and-int/lit8", |
| "or-int/lit8", |
| "xor-int/lit8", |
| "shl-int/lit8", |
| "shr-int/lit8", |
| "ushr-int/lit8", |
| "+iget-volatile", |
| "+iput-volatile", |
| "+sget-volatile", |
| "+sput-volatile", |
| "+iget-object-volatile", |
| "+iget-wide-volatile", |
| "+iput-wide-volatile", |
| "+sget-wide-volatile", |
| "+sput-wide-volatile", |
| "^breakpoint", |
| "^throw-verification-error", |
| "+execute-inline", |
| "+execute-inline/range", |
| "+invoke-object-init/range", |
| "+return-void-barrier", |
| "+iget-quick", |
| "+iget-wide-quick", |
| "+iget-object-quick", |
| "+iput-quick", |
| "+iput-wide-quick", |
| "+iput-object-quick", |
| "+invoke-virtual-quick", |
| "+invoke-virtual-quick/range", |
| "+invoke-super-quick", |
| "+invoke-super-quick/range", |
| "+iput-object-volatile", |
| "+sget-object-volatile", |
| "+sput-object-volatile", |
| "dispatch-ff", |
| "const-class/jumbo", |
| "check-cast/jumbo", |
| "instance-of/jumbo", |
| "new-instance/jumbo", |
| "new-array/jumbo", |
| "filled-new-array/jumbo", |
| "iget/jumbo", |
| "iget-wide/jumbo", |
| "iget-object/jumbo", |
| "iget-boolean/jumbo", |
| "iget-byte/jumbo", |
| "iget-char/jumbo", |
| "iget-short/jumbo", |
| "iput/jumbo", |
| "iput-wide/jumbo", |
| "iput-object/jumbo", |
| "iput-boolean/jumbo", |
| "iput-byte/jumbo", |
| "iput-char/jumbo", |
| "iput-short/jumbo", |
| "sget/jumbo", |
| "sget-wide/jumbo", |
| "sget-object/jumbo", |
| "sget-boolean/jumbo", |
| "sget-byte/jumbo", |
| "sget-char/jumbo", |
| "sget-short/jumbo", |
| "sput/jumbo", |
| "sput-wide/jumbo", |
| "sput-object/jumbo", |
| "sput-boolean/jumbo", |
| "sput-byte/jumbo", |
| "sput-char/jumbo", |
| "sput-short/jumbo", |
| "invoke-virtual/jumbo", |
| "invoke-super/jumbo", |
| "invoke-direct/jumbo", |
| "invoke-static/jumbo", |
| "invoke-interface/jumbo", |
| "unused-27ff", |
| "unused-28ff", |
| "unused-29ff", |
| "unused-2aff", |
| "unused-2bff", |
| "unused-2cff", |
| "unused-2dff", |
| "unused-2eff", |
| "unused-2fff", |
| "unused-30ff", |
| "unused-31ff", |
| "unused-32ff", |
| "unused-33ff", |
| "unused-34ff", |
| "unused-35ff", |
| "unused-36ff", |
| "unused-37ff", |
| "unused-38ff", |
| "unused-39ff", |
| "unused-3aff", |
| "unused-3bff", |
| "unused-3cff", |
| "unused-3dff", |
| "unused-3eff", |
| "unused-3fff", |
| "unused-40ff", |
| "unused-41ff", |
| "unused-42ff", |
| "unused-43ff", |
| "unused-44ff", |
| "unused-45ff", |
| "unused-46ff", |
| "unused-47ff", |
| "unused-48ff", |
| "unused-49ff", |
| "unused-4aff", |
| "unused-4bff", |
| "unused-4cff", |
| "unused-4dff", |
| "unused-4eff", |
| "unused-4fff", |
| "unused-50ff", |
| "unused-51ff", |
| "unused-52ff", |
| "unused-53ff", |
| "unused-54ff", |
| "unused-55ff", |
| "unused-56ff", |
| "unused-57ff", |
| "unused-58ff", |
| "unused-59ff", |
| "unused-5aff", |
| "unused-5bff", |
| "unused-5cff", |
| "unused-5dff", |
| "unused-5eff", |
| "unused-5fff", |
| "unused-60ff", |
| "unused-61ff", |
| "unused-62ff", |
| "unused-63ff", |
| "unused-64ff", |
| "unused-65ff", |
| "unused-66ff", |
| "unused-67ff", |
| "unused-68ff", |
| "unused-69ff", |
| "unused-6aff", |
| "unused-6bff", |
| "unused-6cff", |
| "unused-6dff", |
| "unused-6eff", |
| "unused-6fff", |
| "unused-70ff", |
| "unused-71ff", |
| "unused-72ff", |
| "unused-73ff", |
| "unused-74ff", |
| "unused-75ff", |
| "unused-76ff", |
| "unused-77ff", |
| "unused-78ff", |
| "unused-79ff", |
| "unused-7aff", |
| "unused-7bff", |
| "unused-7cff", |
| "unused-7dff", |
| "unused-7eff", |
| "unused-7fff", |
| "unused-80ff", |
| "unused-81ff", |
| "unused-82ff", |
| "unused-83ff", |
| "unused-84ff", |
| "unused-85ff", |
| "unused-86ff", |
| "unused-87ff", |
| "unused-88ff", |
| "unused-89ff", |
| "unused-8aff", |
| "unused-8bff", |
| "unused-8cff", |
| "unused-8dff", |
| "unused-8eff", |
| "unused-8fff", |
| "unused-90ff", |
| "unused-91ff", |
| "unused-92ff", |
| "unused-93ff", |
| "unused-94ff", |
| "unused-95ff", |
| "unused-96ff", |
| "unused-97ff", |
| "unused-98ff", |
| "unused-99ff", |
| "unused-9aff", |
| "unused-9bff", |
| "unused-9cff", |
| "unused-9dff", |
| "unused-9eff", |
| "unused-9fff", |
| "unused-a0ff", |
| "unused-a1ff", |
| "unused-a2ff", |
| "unused-a3ff", |
| "unused-a4ff", |
| "unused-a5ff", |
| "unused-a6ff", |
| "unused-a7ff", |
| "unused-a8ff", |
| "unused-a9ff", |
| "unused-aaff", |
| "unused-abff", |
| "unused-acff", |
| "unused-adff", |
| "unused-aeff", |
| "unused-afff", |
| "unused-b0ff", |
| "unused-b1ff", |
| "unused-b2ff", |
| "unused-b3ff", |
| "unused-b4ff", |
| "unused-b5ff", |
| "unused-b6ff", |
| "unused-b7ff", |
| "unused-b8ff", |
| "unused-b9ff", |
| "unused-baff", |
| "unused-bbff", |
| "unused-bcff", |
| "unused-bdff", |
| "unused-beff", |
| "unused-bfff", |
| "unused-c0ff", |
| "unused-c1ff", |
| "unused-c2ff", |
| "unused-c3ff", |
| "unused-c4ff", |
| "unused-c5ff", |
| "unused-c6ff", |
| "unused-c7ff", |
| "unused-c8ff", |
| "unused-c9ff", |
| "unused-caff", |
| "unused-cbff", |
| "unused-ccff", |
| "unused-cdff", |
| "unused-ceff", |
| "unused-cfff", |
| "unused-d0ff", |
| "unused-d1ff", |
| "unused-d2ff", |
| "unused-d3ff", |
| "unused-d4ff", |
| "unused-d5ff", |
| "unused-d6ff", |
| "unused-d7ff", |
| "unused-d8ff", |
| "unused-d9ff", |
| "unused-daff", |
| "unused-dbff", |
| "unused-dcff", |
| "unused-ddff", |
| "unused-deff", |
| "unused-dfff", |
| "unused-e0ff", |
| "unused-e1ff", |
| "unused-e2ff", |
| "unused-e3ff", |
| "unused-e4ff", |
| "unused-e5ff", |
| "unused-e6ff", |
| "unused-e7ff", |
| "unused-e8ff", |
| "unused-e9ff", |
| "unused-eaff", |
| "unused-ebff", |
| "unused-ecff", |
| "unused-edff", |
| "unused-eeff", |
| "unused-efff", |
| "unused-f0ff", |
| "unused-f1ff", |
| "unused-f2ff", |
| "unused-f3ff", |
| "unused-f4ff", |
| "unused-f5ff", |
| "unused-f6ff", |
| "unused-f7ff", |
| "unused-f8ff", |
| "unused-f9ff", |
| "unused-faff", |
| "unused-fbff", |
| "unused-fcff", |
| "unused-fdff", |
| "unused-feff", |
| "^throw-verification-error/jumbo", |
| // END(libdex-opcode-names) |
| }; |
| |
| /* |
| * Return the name of an opcode. |
| */ |
| const char* dexGetOpcodeName(Opcode op) |
| { |
| assert(op >= 0 && op < kNumPackedOpcodes); |
| return gOpNames[op]; |
| } |