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;
${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