diff options
author | buzbee <buzbee@google.com> | 2010-11-01 15:53:27 -0700 |
---|---|---|
committer | buzbee <buzbee@google.com> | 2010-11-01 15:53:27 -0700 |
commit | 2ce33c938286c7694238b417be65a9918f421b3d (patch) | |
tree | be34c46ad9d193db22a4c4517a418d18912b49c6 /vm/compiler/codegen/arm/Thumb2 | |
parent | d4b3b2f5293e40c91e767acce61dc1286929ffcb (diff) | |
download | android_dalvik-2ce33c938286c7694238b417be65a9918f421b3d.tar.gz android_dalvik-2ce33c938286c7694238b417be65a9918f421b3d.tar.bz2 android_dalvik-2ce33c938286c7694238b417be65a9918f421b3d.zip |
JIT - support for return-void-barrier [Issue 2992352]
Slight reworking of the memory barrier instruction generation to
generalize it, and then add "dmb st" for the new return-void-barrier
instruction.
Change-Id: Iad95aa5b0ba9b616a17dcbe4c6ca2e3906bb49dc
Diffstat (limited to 'vm/compiler/codegen/arm/Thumb2')
-rw-r--r-- | vm/compiler/codegen/arm/Thumb2/Gen.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vm/compiler/codegen/arm/Thumb2/Gen.c b/vm/compiler/codegen/arm/Thumb2/Gen.c index 8858bb01e..ef1e8a9f1 100644 --- a/vm/compiler/codegen/arm/Thumb2/Gen.c +++ b/vm/compiler/codegen/arm/Thumb2/Gen.c @@ -213,7 +213,7 @@ static void genMonitorEnter(CompilationUnit *cUnit, MIR *mir) LW_LOCK_OWNER_SHIFT - 1); hopBranch = newLIR2(cUnit, kThumb2Cbnz, r2, 0); newLIR4(cUnit, kThumb2Strex, r2, r3, r1, offsetof(Object, lock) >> 2); - dvmCompilerGenMemBarrier(cUnit); + dvmCompilerGenMemBarrier(cUnit, kSY); branch = newLIR2(cUnit, kThumb2Cbz, r2, 0); hopTarget = newLIR0(cUnit, kArmPseudoTargetLabel); @@ -268,7 +268,7 @@ static void genMonitorExit(CompilationUnit *cUnit, MIR *mir) LW_LOCK_OWNER_SHIFT - 1); opRegReg(cUnit, kOpSub, r2, r3); hopBranch = opCondBranch(cUnit, kArmCondNe); - dvmCompilerGenMemBarrier(cUnit); + dvmCompilerGenMemBarrier(cUnit, kSY); storeWordDisp(cUnit, r1, offsetof(Object, lock), r7); branch = opNone(cUnit, kOpUncondBr); |