spu: rework synchronization
[pcsx_rearmed.git] / libpcsxcore / new_dynarec / linkage_arm.S
index 0c5b205..942b492 100644 (file)
@@ -120,8 +120,8 @@ ptr_hash_table:
        movw    \reg, #:lower16:\var
        movt    \reg, #:upper16:\var
 #elif defined(__ARM_ARCH_7A__) && defined(__MACH__)
-       movw    \reg, #:lower16:(\var-(1678f+4))
-       movt    \reg, #:upper16:(\var-(1678f+4))
+       movw    \reg, #:lower16:(\var-(1678f+8))
+       movt    \reg, #:upper16:(\var-(1678f+8))
 1678:
        add     \reg, pc
 #else
@@ -131,8 +131,8 @@ ptr_hash_table:
 
 .macro load_varadr_ext reg var
 #if defined(__ARM_ARCH_7A__) && defined(__MACH__) && defined(__PIC__)
-       movw    \reg, #:lower16:(ptr_\var-(1678f+4))
-       movt    \reg, #:upper16:(ptr_\var-(1678f+4))
+       movw    \reg, #:lower16:(ptr_\var-(1678f+8))
+       movt    \reg, #:upper16:(ptr_\var-(1678f+8))
 1678:
        ldr     \reg, [pc, \reg]
 #else
@@ -573,72 +573,72 @@ FUNCTION(new_dyna_leave):
 
        .align  2
 FUNCTION(invalidate_addr_r0):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        b       invalidate_addr_call
        .size   invalidate_addr_r0, .-invalidate_addr_r0
        .align  2
 FUNCTION(invalidate_addr_r1):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r1
        b       invalidate_addr_call
        .size   invalidate_addr_r1, .-invalidate_addr_r1
        .align  2
 FUNCTION(invalidate_addr_r2):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r2
        b       invalidate_addr_call
        .size   invalidate_addr_r2, .-invalidate_addr_r2
        .align  2
 FUNCTION(invalidate_addr_r3):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r3
        b       invalidate_addr_call
        .size   invalidate_addr_r3, .-invalidate_addr_r3
        .align  2
 FUNCTION(invalidate_addr_r4):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r4
        b       invalidate_addr_call
        .size   invalidate_addr_r4, .-invalidate_addr_r4
        .align  2
 FUNCTION(invalidate_addr_r5):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r5
        b       invalidate_addr_call
        .size   invalidate_addr_r5, .-invalidate_addr_r5
        .align  2
 FUNCTION(invalidate_addr_r6):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r6
        b       invalidate_addr_call
        .size   invalidate_addr_r6, .-invalidate_addr_r6
        .align  2
 FUNCTION(invalidate_addr_r7):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r7
        b       invalidate_addr_call
        .size   invalidate_addr_r7, .-invalidate_addr_r7
        .align  2
 FUNCTION(invalidate_addr_r8):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r8
        b       invalidate_addr_call
        .size   invalidate_addr_r8, .-invalidate_addr_r8
        .align  2
 FUNCTION(invalidate_addr_r9):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r9
        b       invalidate_addr_call
        .size   invalidate_addr_r9, .-invalidate_addr_r9
        .align  2
 FUNCTION(invalidate_addr_r10):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r10
        b       invalidate_addr_call
        .size   invalidate_addr_r10, .-invalidate_addr_r10
        .align  2
 FUNCTION(invalidate_addr_r12):
-       stmia   fp, {r0, r1, r2, r3, r12, lr}
+       stmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, lr}
        mov     r0, r12
        .size   invalidate_addr_r12, .-invalidate_addr_r12
        .align  2
@@ -648,7 +648,7 @@ invalidate_addr_call:
        cmp     r0, r12
        cmpcs   lr, r0
        blcc    invalidate_addr
-       ldmia   fp, {r0, r1, r2, r3, r12, pc}
+       ldmia   fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, pc}
        .size   invalidate_addr_call, .-invalidate_addr_call
 
        .align  2
@@ -694,7 +694,7 @@ FUNCTION(jump_handler_read8):
 
 FUNCTION(jump_handler_read16):
        add     r1, #0x1000/4*4              @ shift to r16 part
-       pcsx_read_mem ldrbcc, 1
+       pcsx_read_mem ldrhcc, 1
 
 FUNCTION(jump_handler_read32):
        pcsx_read_mem ldrcc, 2