diff options
author | Dan Bornstein <danfuzz@android.com> | 2010-11-29 16:47:09 -0800 |
---|---|---|
committer | Dan Bornstein <danfuzz@android.com> | 2010-11-29 16:47:09 -0800 |
commit | caf4e5afde99eda3226643c9a28d1e38b83714fe (patch) | |
tree | 5f974c80ed5cc806abaaae701f7d111d3f354e4a /opcode-gen | |
parent | 06409a713ce65edbc088496d6e6cadc94fd0bc38 (diff) | |
download | android_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-x | opcode-gen/opcode-gen | 22 | ||||
-rwxr-xr-x | opcode-gen/regen-all | 7 |
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 |