Add support invoke-polymorphic to dexdump
o Update bytecode.txt with codepoints for invoke-polymorphic
instructions and run opcode-gen/regen-all.
o Update dexdump to support invoke-polymorphic with output equivalent to
dexdump2.
o Add format classes to dexgen and dx.
Bug: 30550796
Test: manually tested with DEX files generated from ART run-tests.
Change-Id: I986a896747d73e11418ba1876cce86087b4a9e68
diff --git a/opcode-gen/bytecode.txt b/opcode-gen/bytecode.txt
index 6b7b9b1..dc0778d 100644
--- a/opcode-gen/bytecode.txt
+++ b/opcode-gen/bytecode.txt
@@ -39,9 +39,10 @@
format 22c
format 22t
format 35c 3rc
+format 45cc 4rcc
# Optimized formats
-format 00x
+format 00x
format 20bc
format 22cs
format 35mi
@@ -67,6 +68,7 @@
# inline-method
# vtable-offset
# field-offset
+# method-and-proto-ref
# flags; pipe-combined combo of one or more of:
# optimized -- optimized; not to be included in unoptimized dex files
# branch -- might branch to an address
@@ -337,8 +339,13 @@
op f7 +iput-object-quick 22cs n field-offset optimized|continue|throw
op f8 +invoke-virtual-quick 35ms n vtable-offset optimized|continue|throw|invoke
op f9 +invoke-virtual-quick/range 3rms n vtable-offset optimized|continue|throw|invoke
-op fa +invoke-super-quick 35ms n vtable-offset optimized|continue|throw|invoke
-op fb +invoke-super-quick/range 3rms n vtable-offset optimized|continue|throw|invoke
+
+# Invoke-polymorphic
+op fa invoke-polymorphic 45cc y method-and-proto-ref continue|throw|invoke
+op fb invoke-polymorphic/range 4rcc y method-and-proto-ref continue|throw|invoke
+
+# More optimized opcodes (not valid in an unoptimized dex file)
+
op fc +iput-object-volatile 22c n field-ref optimized|continue|throw
op fd +sget-object-volatile 21c y field-ref optimized|continue|throw
op fe +sput-object-volatile 21c n field-ref optimized|continue|throw