about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f0.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_f0.c b/src/dynarec/arm64/dynarec_arm64_f0.c
index 85d0a87c..0eda1a0a 100644
--- a/src/dynarec/arm64/dynarec_arm64_f0.c
+++ b/src/dynarec/arm64/dynarec_arm64_f0.c
@@ -644,17 +644,17 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     break;
 
                 case 0xC7:
+                    nextop = F8;
                     switch(rep) {
                         case 0:
                         switch((nextop>>3)&7) {
                             case 1:
                             INST_NAME("LOCK CMPXCHG8B Gq, Eq");
                             SETFLAGS(X_ZF, SF_SUBSET);
-                            nextop = F8;
                             addr = geted(dyn, addr, ninst, nextop, &wback, x1, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 0);
                             if(!ALIGNED_ATOMICxw) {
                                 TSTx_mask(wback, 1, 0, 1+rex.w);    // mask=3 or 7
-                                B_MARK(cNE);    // unaligned
+                                B_MARK2(cNE);    // unaligned
                             }
                             if(arm64_atomics) {
                                 MOVx_REG(x2, xRAX);
@@ -670,7 +670,7 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                                 MOVx_REG(xRAX, x2);
                                 MOVx_REG(xRDX, x3);
                                 if(!ALIGNED_ATOMICxw) {
-                                    B_NEXT_nocond;
+                                    B_MARK3_nocond;
                                 }
                             } else {
                                 MARKLOCK;
@@ -695,20 +695,20 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                                 }
                             }
                             if(!ALIGNED_ATOMICxw) {
-                                MARK;
+                                MARK2;
                                 LDPxw_S7_offset(x2, x3, wback, 0);
                                 LDAXRB(x4, wback);
                                 CMPSxw_REG(xRAX, x2);
                                 CCMPxw(xRDX, x3, 0, cEQ);
-                                B_MARK(cNE);    // EAX!=ED[0] || EDX!=Ed[1]
+                                B_MARKSEG(cNE);    // EAX!=ED[0] || EDX!=Ed[1]
                                 STLXRB(x4, xRBX, wback);
-                                CBNZx_MARK(x4);
+                                CBNZx_MARK2(x4);
                                 STPxw_S7_offset(xRBX, xRCX, wback, 0);
                                 UFLAG_IF {
                                     MOV32w(x1, 1);
                                 }
                                 B_MARK3_nocond;
-                                MARK;
+                                MARKSEG;
                                 MOVxw_REG(xRAX, x2);
                                 MOVxw_REG(xRDX, x3);
                                 UFLAG_IF {