Volatile support in Portable compiler.

Bug: 8209406

This CL adds volatile support in iget/iput/sget/sput instructions. For now,
we emit LLVM fence instructions at the right place. While it may not generate
the best code for each target, it provides correctness at least.

In the future, we'd like to replace the use of fence with atomic load/store
instructions. With the current state of LLVM, this should work for ARM and X86
but not on MIPS due to their atomic load/store implementation. We should track
this and once the MIPS target fits to our needs, replace the fences by atomic
load/store instructions.

Change-Id: I33fd688cf5a18619e0af102fb8fe749565be2a49
1 file changed
tree: 224d160295cb294cd831a66b4d011ad9ce0df604
  1. .gitignore
  2. Android.mk
  3. build/
  4. jdwpspy/
  5. src/
  6. test/
  7. tools/