summaryrefslogtreecommitdiffstats
path: root/dexdump
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2010-06-22 11:01:20 -0700
committerAndy McFadden <fadden@android.com>2010-06-22 11:03:03 -0700
commitc6b25c79a4ec5cc83e2bc14af24e8eabad931743 (patch)
treef364d98b92b9ddd01806ffa5836ef5d63a87989e /dexdump
parent45a82a133c0f8d91bce6621be1ea2f4818e8e340 (diff)
downloadandroid_dalvik-c6b25c79a4ec5cc83e2bc14af24e8eabad931743.tar.gz
android_dalvik-c6b25c79a4ec5cc83e2bc14af24e8eabad931743.tar.bz2
android_dalvik-c6b25c79a4ec5cc83e2bc14af24e8eabad931743.zip
Relocate OpCodeNames.[ch].
The JIT was pulling it out of the dexdump directory, which is Just Plain Wrong[tm]. Now it's part of libdex, for all to enjoy. Change-Id: Ic1e4c981eb2d70ccc3c841ceb5a54f4f77af2008
Diffstat (limited to 'dexdump')
-rw-r--r--dexdump/Android.mk3
-rw-r--r--dexdump/DexDump.c5
-rw-r--r--dexdump/OpCodeNames.c329
-rw-r--r--dexdump/OpCodeNames.h26
4 files changed, 3 insertions, 360 deletions
diff --git a/dexdump/Android.mk b/dexdump/Android.mk
index 077339f62..026067b9f 100644
--- a/dexdump/Android.mk
+++ b/dexdump/Android.mk
@@ -18,8 +18,7 @@
LOCAL_PATH:= $(call my-dir)
dexdump_src_files := \
- DexDump.c \
- OpCodeNames.c
+ DexDump.c
dexdump_c_includes := \
dalvik \
diff --git a/dexdump/DexDump.c b/dexdump/DexDump.c
index 9582c986f..33646bbce 100644
--- a/dexdump/DexDump.c
+++ b/dexdump/DexDump.c
@@ -34,11 +34,10 @@
#include "libdex/DexClass.h"
#include "libdex/DexProto.h"
#include "libdex/InstrUtils.h"
+#include "libdex/OpCodeNames.h"
#include "libdex/SysUtil.h"
#include "libdex/CmdUtils.h"
-#include "dexdump/OpCodeNames.h"
-
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
@@ -740,7 +739,7 @@ void dumpInstruction(DexFile* pDexFile, const DexCode* pCode, int insnIdx,
printf("|%04x: nop // spacer", insnIdx);
}
} else {
- printf("|%04x: %s", insnIdx, getOpcodeName(pDecInsn->opCode));
+ printf("|%04x: %s", insnIdx, dexGetOpcodeName(pDecInsn->opCode));
}
switch (dexGetInstrFormat(gInstrFormat, pDecInsn->opCode)) {
diff --git a/dexdump/OpCodeNames.c b/dexdump/OpCodeNames.c
deleted file mode 100644
index 1901f15ea..000000000
--- a/dexdump/OpCodeNames.c
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * 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.
- */
-#include "OpCodeNames.h"
-
-/*
- * The following two lines work, but slashes and dashes both turn into
- * underscores, and the strings are all upper case. The output is easier
- * to read if we do the strings by hand (could probably write a
- * post-processing function easily enough if maintenance becomes annoying).
- */
-//#define H(_op) #_op
-//DEFINE_GOTO_TABLE(gOpNames)
-
-/*
- * Dalvik opcode names.
- */
-static const char* gOpNames[256] = {
- /* 0x00 */
- "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",
-
- /* 0x10 */
- "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",
-
- /* 0x20 */
- "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",
-
- /* 0x30 */
- "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",
- "UNUSED",
-
- /* 0x40 */
- "UNUSED",
- "UNUSED",
- "UNUSED",
- "UNUSED",
- "aget",
- "aget-wide",
- "aget-object",
- "aget-boolean",
- "aget-byte",
- "aget-char",
- "aget-short",
- "aput",
- "aput-wide",
- "aput-object",
- "aput-boolean",
- "aput-byte",
-
- /* 0x50 */
- "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",
-
- /* 0x60 */
- "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",
-
- /* 0x70 */
- "invoke-direct",
- "invoke-static",
- "invoke-interface",
- "UNUSED",
- "invoke-virtual/range",
- "invoke-super/range",
- "invoke-direct/range",
- "invoke-static/range",
- "invoke-interface/range",
- "UNUSED",
- "UNUSED",
- "neg-int",
- "not-int",
- "neg-long",
- "not-long",
- "neg-float",
-
- /* 0x80 */
- "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",
-
- /* 0x90 */
- "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",
-
- /* 0xa0 */
- "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",
-
- /* 0xb0 */
- "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",
-
- /* 0xc0 */
- "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",
-
- /* 0xd0 */
- "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",
-
- /* 0xe0 */
- "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", // does not appear in DEX files
- "^throw-verification-error", // does not appear in DEX files
- "+execute-inline",
- "+execute-inline/range",
-
- /* 0xf0 */
- "+invoke-direct-empty",
- "UNUSED",
- "+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",
- "UNUSED",
-};
-
-/*
- * Return the name of an opcode.
- */
-const char* getOpcodeName(OpCode op)
-{
- return gOpNames[op];
-}
diff --git a/dexdump/OpCodeNames.h b/dexdump/OpCodeNames.h
deleted file mode 100644
index 3965c6de6..000000000
--- a/dexdump/OpCodeNames.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.
- */
-/*
- * Dalvik opcode names.
- */
-#ifndef _DEXDUMP_OPCODENAMES
-#define _DEXDUMP_OPCODENAMES
-
-#include "libdex/OpCode.h"
-
-const char* getOpcodeName(OpCode op);
-
-#endif /*_DEXDUMP_OPCODENAMES*/