Add instructions for volatile wide fields.
This adds four new instructions for accessing volatile wide fields (long
and double). The JLS requires that such accesses are atomic, but the
VM doesn't otherwise make guarantees about the atomicity of reads and
writes on 64-bit fields.
There are no behavioral changes. This just adds definitions for the new
instructions and a couple of tests. The current implementation is just
the non-volatile form of the instructions or a C stub, but since we're
not generating them it doesn't really matter yet.
Also:
- bumped Dalvik version to 1.3.0
- added a note to the x86-atom TODO list
For bug 1633591.
diff --git a/vm/compiler/Dataflow.c b/vm/compiler/Dataflow.c
index 787ac15..0f90c9e 100644
--- a/vm/compiler/Dataflow.c
+++ b/vm/compiler/Dataflow.c
@@ -725,16 +725,16 @@
// E7 OP_UNUSED_E7
DF_NOP,
- // E8 OP_UNUSED_E8
+ // E8 OP_IGET_WIDE_VOLATILE
DF_NOP,
- // E9 OP_UNUSED_E9
+ // E9 OP_IPUT_WIDE_VOLATILE
DF_NOP,
- // EA OP_UNUSED_EA
+ // EA OP_SGET_WIDE_VOLATILE
DF_NOP,
- // EB OP_UNUSED_EB
+ // EB OP_SPUT_WIDE_VOLATILE
DF_NOP,
// EC OP_BREAKPOINT