summaryrefslogtreecommitdiffstats
path: root/vm/compiler/codegen/arm/Thumb2
diff options
context:
space:
mode:
authorbuzbee <buzbee@google.com>2010-11-01 15:53:27 -0700
committerbuzbee <buzbee@google.com>2010-11-01 15:53:27 -0700
commit2ce33c938286c7694238b417be65a9918f421b3d (patch)
treebe34c46ad9d193db22a4c4517a418d18912b49c6 /vm/compiler/codegen/arm/Thumb2
parentd4b3b2f5293e40c91e767acce61dc1286929ffcb (diff)
downloadandroid_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.c4
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);