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,