diff --git a/src/dynarec/arm_lock_helper.S b/src/dynarec/arm_lock_helper.S index 68ebb6510..11542a142 100755 --- a/src/dynarec/arm_lock_helper.S +++ b/src/dynarec/arm_lock_helper.S @@ -101,6 +101,7 @@ arm_lock_storeifnull: beq arm_lock_storeifnull arm_lock_storeifnull_exit: mov r0, r2 + dmb ish bx lr arm_lock_storeifref2: @@ -116,6 +117,7 @@ arm_lock_storeifref2_loop: beq arm_lock_storeifref_loop mov r0, r2 arm_lock_storeifref2_exit: + dmb ish bx lr arm_lock_storeifref: @@ -175,11 +177,13 @@ arm_lock_incif0b_0: bx lr arm_lock_stored: + dmb ish str r1, [r0] dmb ish bx lr arm_lock_storeb: + dmb ish strb r1, [r0] dmb ish bx lr