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
diff --git a/vm/compiler/Dataflow.c b/vm/compiler/Dataflow.c
index 38f822c..76744bd 100644
--- a/vm/compiler/Dataflow.c
+++ b/vm/compiler/Dataflow.c
@@ -1524,44 +1524,44 @@
// 1F1 OP_UNUSED_F1FF
DF_NOP,
- // 1F2 OP_UNUSED_F2FF
+ // 1F2 OP_INVOKE_OBJECT_INIT_JUMBO
DF_NOP,
- // 1F3 OP_UNUSED_F3FF
- DF_NOP,
+ // 1F3 OP_IGET_VOLATILE_JUMBO
+ DF_DA | DF_UB,
- // 1F4 OP_UNUSED_F4FF
- DF_NOP,
+ // 1F4 OP_IGET_WIDE_VOLATILE_JUMBO
+ DF_DA_WIDE | DF_UB,
- // 1F5 OP_UNUSED_F5FF
- DF_NOP,
+ // 1F5 OP_IGET_OBJECT_VOLATILE_JUMBO
+ DF_DA | DF_UB,
- // 1F6 OP_UNUSED_F6FF
- DF_NOP,
+ // 1F6 OP_IPUT_VOLATILE_JUMBO
+ DF_UA | DF_UB,
- // 1F7 OP_UNUSED_F7FF
- DF_NOP,
+ // 1F7 OP_IPUT_WIDE_VOLATILE_JUMBO
+ DF_UA_WIDE | DF_UB,
- // 1F8 OP_UNUSED_F8FF
- DF_NOP,
+ // 1F8 OP_IPUT_OBJECT_VOLATILE_JUMBO
+ DF_UA | DF_UB,
- // 1F9 OP_UNUSED_F9FF
- DF_NOP,
+ // 1F9 OP_SGET_VOLATILE_JUMBO
+ DF_DA,
- // 1FA OP_UNUSED_FAFF
- DF_NOP,
+ // 1FA OP_SGET_WIDE_VOLATILE_JUMBO
+ DF_DA_WIDE,
- // 1FB OP_UNUSED_FBFF
- DF_NOP,
+ // 1FB OP_SGET_OBJECT_VOLATILE_JUMBO
+ DF_DA,
- // 1FC OP_UNUSED_FCFF
- DF_NOP,
+ // 1FC OP_SPUT_VOLATILE_JUMBO
+ DF_UA,
- // 1FD OP_UNUSED_FDFF
- DF_NOP,
+ // 1FD OP_SPUT_WIDE_VOLATILE_JUMBO
+ DF_UA_WIDE,
- // 1FE OP_UNUSED_FEFF
- DF_NOP,
+ // 1FE OP_SPUT_OBJECT_VOLATILE_JUMBO
+ DF_UA,
// 1FF OP_THROW_VERIFICATION_ERROR_JUMBO
DF_NOP,