| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: Iac896c03ef707c998cc714628adea0255f21c035
|
|
|
|
|
|
| |
Add extra memory barrier on volatile stores.
Change-Id: Id4a4750cdfc910eda2f0b44ead0af2a569b5735e
|
|
|
|
|
|
|
|
|
|
| |
An leading underscore followed by a capital letter is a reserved
name space in C and C++.
This change also moves any #include directives within the include
guard in some of the compiler/codegen/arm header files.
Change-Id: I9715e2c5301699d31886e61d0fe6e29483555a2a
|
|
|
|
| |
Change-Id: I236c5a1553a51f82c9bc3eaaab042046c854d3b4
|
|
|
|
| |
Change-Id: I25d8fa821987a3dd6d7109d07fd42dbf2fe0e589
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaced VM-local macros for barrier and CAS calls with the actual
versions provided by cutils.
ATOMIC_CMP_SWAP(addr,old,new) --> android_atomic_release_cas(old,new,addr)
MEM_BARRIER --> ANDROID_MEMBAR_FULL
Renamed android_quasiatomic* to dvmQuasiAtomic*.
Didn't change how anything works, just the names.
Change-Id: I8c68f28e1f7c9cb832183e0918d097dfe6a2cac8
|
|
|
|
|
|
|
|
|
| |
Updated "generic" quasiatomic implementation to use atomic release store
instead of atomic swap when releasing the lock.
Track change to name of memory barrier.
Change-Id: I229fc2aec8996db07b84f2d1bcfbe4346a810d85
|
|
|
|
|
|
|
|
|
| |
Moved quasiatomic 64-bit operations in here. They still need work.
Use the new libcutils atomic-inline header for our memory barriers.
Adjust makefiles to set SMP definition appropriately.
Change-Id: Id2ab2123724bb0baeb32f862b5568392aba35a59
|
| |
|
| |
|
|
|