JIT: Add memory barriers on monitor enter/exit [issue 2951403]

Possibly the cause of [2950977 error in onDraw() method for stingray]

Change-Id: I84da4dcb04735ccbedc21fa84c11c3ee8c4aa4e9
diff --git a/vm/compiler/codegen/arm/Thumb2/Gen.c b/vm/compiler/codegen/arm/Thumb2/Gen.c
index de75be7..3632388 100644
--- a/vm/compiler/codegen/arm/Thumb2/Gen.c
+++ b/vm/compiler/codegen/arm/Thumb2/Gen.c
@@ -213,6 +213,7 @@
             LW_LOCK_OWNER_SHIFT - 1);
     hopBranch = newLIR2(cUnit, kThumb2Cbnz, r2, 0);
     newLIR4(cUnit, kThumb2Strex, r2, r3, r1, offsetof(Object, lock) >> 2);
+    dvmCompilerGenMemBarrier(cUnit);
     branch = newLIR2(cUnit, kThumb2Cbz, r2, 0);
 
     hopTarget = newLIR0(cUnit, kArmPseudoTargetLabel);
@@ -272,6 +273,7 @@
             LW_LOCK_OWNER_SHIFT - 1);
     opRegReg(cUnit, kOpSub, r2, r3);
     hopBranch = opCondBranch(cUnit, kArmCondNe);
+    dvmCompilerGenMemBarrier(cUnit);
     storeWordDisp(cUnit, r1, offsetof(Object, lock), r7);
     branch = opNone(cUnit, kOpUncondBr);