diff options
author | Andy McFadden <fadden@android.com> | 2010-06-17 12:36:00 -0700 |
---|---|---|
committer | Andy McFadden <fadden@android.com> | 2010-06-18 12:43:08 -0700 |
commit | c35a2ef53d0cccd6f924eeba36633220ec67c32e (patch) | |
tree | 3dca5c629067edc9f6968d11b91621198de18387 /dexdump | |
parent | 54c91f8f33fc12d741aaa0dcdb375991e252c994 (diff) | |
download | android_dalvik-c35a2ef53d0cccd6f924eeba36633220ec67c32e.tar.gz android_dalvik-c35a2ef53d0cccd6f924eeba36633220ec67c32e.tar.bz2 android_dalvik-c35a2ef53d0cccd6f924eeba36633220ec67c32e.zip |
Add opcodes for volatile field accesses
This adds instructions for {i,s}{get,put}{,-object}-volatile, for a
total of eight new instructions.
On SMP systems, these instructions will be substituted in for existing
field access instructions, either by dexopt or during just-in-time
verification. Unlike the wide-volatile instructions, these will not be
used at all when the VM is not built for SMP.
(Ideally we'd omit the volatile instruction implementations entirely on
non-SMP builds, but that requires a little work in gen-mterp.py.)
The change defines and implements the opcodes and support methods, but
does not cause them to be used.
Also, changed dvmQuasiAtomicRead64's argument to be const.
Change-Id: I9e44fe881e87f27aa41f6c6e898ec4402cb5493e
Diffstat (limited to 'dexdump')
-rw-r--r-- | dexdump/OpCodeNames.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/dexdump/OpCodeNames.c b/dexdump/OpCodeNames.c index e3155743d..1901f15ea 100644 --- a/dexdump/OpCodeNames.c +++ b/dexdump/OpCodeNames.c @@ -287,11 +287,11 @@ static const char* gOpNames[256] = { "shl-int/lit8", "shr-int/lit8", "ushr-int/lit8", - "UNUSED", - "UNUSED", - "UNUSED", - "UNUSED", - "UNUSED", + "+iget-volatile", + "+iput-volatile", + "+sget-volatile", + "+sput-volatile", + "+iget-object-volatile", "+iget-wide-volatile", "+iput-wide-volatile", "+sget-wide-volatile", @@ -314,9 +314,9 @@ static const char* gOpNames[256] = { "+invoke-virtual-quick/range", "+invoke-super-quick", "+invoke-super-quick/range", - "UNUSED", - "UNUSED", - "UNUSED", + "+iput-object-volatile", + "+sget-object-volatile", + "+sput-object-volatile", "UNUSED", }; |