summaryrefslogtreecommitdiffstats
path: root/opcode-gen
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2011-03-10 14:12:48 -0800
committerAndy McFadden <fadden@android.com>2011-03-10 16:02:48 -0800
commit24bd4c50bb3ea13be4f049710967961f0546fb2c (patch)
tree6e472f5a7dfb1a54da3cb667c6777ec870988295 /opcode-gen
parentaf06c40f24a00e0662899405d24b2813cc0690a4 (diff)
downloadandroid_dalvik-24bd4c50bb3ea13be4f049710967961f0546fb2c.tar.gz
android_dalvik-24bd4c50bb3ea13be4f049710967961f0546fb2c.tar.bz2
android_dalvik-24bd4c50bb3ea13be4f049710967961f0546fb2c.zip
Add volatile/jumbo opcodes
This adds 12 dexopt-generated "volatile/jumbo" instructions, to be used for replacing appropriate get/put ops, plus a jumbo replacement for invoke-object-init/range. The new instructions are defined but not yet used. For x86 and x86-atom, C stubs are selected. Also, guarded macro args used in arithmetic expressions in header.S. Bug 3403118 Change-Id: I283cea053d1cee1d70c3715df3e71177e8b8d3b2
Diffstat (limited to 'opcode-gen')
-rw-r--r--opcode-gen/bytecode.txt19
1 files changed, 17 insertions, 2 deletions
diff --git a/opcode-gen/bytecode.txt b/opcode-gen/bytecode.txt
index 6fd57dbdb..7f6921433 100644
--- a/opcode-gen/bytecode.txt
+++ b/opcode-gen/bytecode.txt
@@ -393,10 +393,25 @@ op 24ff invoke-direct/jumbo 5rc n method-ref continue|throw|invoke
op 25ff invoke-static/jumbo 5rc n method-ref continue|throw|invoke
op 26ff invoke-interface/jumbo 5rc n method-ref continue|throw|invoke
-# unused: op 27ff..feff
+# unused: op 27ff..f1ff
#
# Optimized opcodes (not valid in an unoptimized dex file)
#
-op ffff ^throw-verification-error/jumbo 40sc n varies optimized|throw
+# See notes above invoke-object-init re: no "throw" or "invoke"
+op f2ff +invoke-object-init/jumbo 5rc n method-ref optimized|continue
+
+op f3ff +iget-volatile/jumbo 52c y field-ref optimized|continue|throw
+op f4ff +iget-wide-volatile/jumbo 52c y field-ref optimized|continue|throw
+op f5ff +iget-object-volatile/jumbo 52c y field-ref optimized|continue|throw
+op f6ff +iput-volatile/jumbo 52c n field-ref optimized|continue|throw
+op f7ff +iput-wide-volatile/jumbo 52c n field-ref optimized|continue|throw
+op f8ff +iput-object-volatile/jumbo 52c n field-ref optimized|continue|throw
+op f9ff +sget-volatile/jumbo 41c y field-ref optimized|continue|throw
+op faff +sget-wide-volatile/jumbo 41c y field-ref optimized|continue|throw
+op fbff +sget-object-volatile/jumbo 41c y field-ref optimized|continue|throw
+op fcff +sput-volatile/jumbo 41c n field-ref optimized|continue|throw
+op fdff +sput-wide-volatile/jumbo 41c n field-ref optimized|continue|throw
+op feff +sput-object-volatile/jumbo 41c n field-ref optimized|continue|throw
+op ffff ^throw-verification-error/jumbo 40sc n varies optimized|throw