summaryrefslogtreecommitdiffstats
path: root/opcode-gen
diff options
context:
space:
mode:
authorDan Bornstein <danfuzz@android.com>2010-11-29 16:47:09 -0800
committerDan Bornstein <danfuzz@android.com>2010-11-29 16:47:09 -0800
commitcaf4e5afde99eda3226643c9a28d1e38b83714fe (patch)
tree5f974c80ed5cc806abaaae701f7d111d3f354e4a /opcode-gen
parent06409a713ce65edbc088496d6e6cadc94fd0bc38 (diff)
downloadandroid_dalvik-caf4e5afde99eda3226643c9a28d1e38b83714fe.tar.gz
android_dalvik-caf4e5afde99eda3226643c9a28d1e38b83714fe.tar.bz2
android_dalvik-caf4e5afde99eda3226643c9a28d1e38b83714fe.zip
Code to generate libcore's Dalvik opcode code.
That was a mouthful. Change-Id: I49152fdacbfa9593e7a95f5c120fea023b06d03b
Diffstat (limited to 'opcode-gen')
-rwxr-xr-xopcode-gen/opcode-gen22
-rwxr-xr-xopcode-gen/regen-all7
2 files changed, 29 insertions, 0 deletions
diff --git a/opcode-gen/opcode-gen b/opcode-gen/opcode-gen
index 17560d107..8a99134ad 100755
--- a/opcode-gen/opcode-gen
+++ b/opcode-gen/opcode-gen
@@ -138,6 +138,28 @@ consumeUntil != "" {
next;
}
+/BEGIN\(libcore-opcodes\)/ {
+ consumeUntil = "END(libcore-opcodes)";
+ print;
+
+ for (i = 0; i <= MAX_LIBDEX_OPCODE; i++) {
+ if (isUnusedByte(i) || isOptimized(i)) continue;
+ printf(" int OP_%-28s = 0x%02x;\n", constName[i], i);
+ }
+
+ next;
+}
+
+/BEGIN\(libcore-maximum-value\)/ {
+ consumeUntil = "END(libcore-maximum-value)";
+ print;
+
+ # TODO: Make this smarter.
+ printf(" MAXIMUM_VALUE = %d;\n", MAX_LIBDEX_OPCODE);
+
+ next;
+}
+
/BEGIN\(libdex-opcode-enum\)/ {
consumeUntil = "END(libdex-opcode-enum)";
print;
diff --git a/opcode-gen/regen-all b/opcode-gen/regen-all
index 276893e7e..fbf8359e7 100755
--- a/opcode-gen/regen-all
+++ b/opcode-gen/regen-all
@@ -40,3 +40,10 @@ ${progdir}/opcode-gen dx/src/com/android/dx/dex/code/RopToDop.java
${progdir}/opcode-gen libdex/InstrUtils.c
${progdir}/opcode-gen libdex/OpCode.h
${progdir}/opcode-gen libdex/OpCodeNames.c
+
+# It's a minor shame that these files live in a different top-level project.
+# So it goes.
+${progdir}/opcode-gen \
+ ../libcore/dalvik/src/main/java/dalvik/bytecode/OpcodeInfo.java
+${progdir}/opcode-gen \
+ ../libcore/dalvik/src/main/java/dalvik/bytecode/Opcodes.java