patch up some clang/apple issues
[pcsx_rearmed.git] / libpcsxcore / new_dynarec / linkage_arm.S
index 6b429b0..baac176 100644 (file)
 #ifdef __MACH__
 #define dynarec_local          ESYM(dynarec_local)
 #define ndrc_add_jump_out      ESYM(ndrc_add_jump_out)
-#define ndrc_try_restore_block ESYM(ndrc_try_restore_block)
 #define ndrc_get_addr_ht       ESYM(ndrc_get_addr_ht)
 #define ndrc_get_addr_ht_param ESYM(ndrc_get_addr_ht_param)
 #define ndrc_write_invalidate_one ESYM(ndrc_write_invalidate_one)
 #define gen_interupt           ESYM(gen_interupt)
 #define gteCheckStallRaw       ESYM(gteCheckStallRaw)
 #define psxException           ESYM(psxException)
+#define execI                  ESYM(execI)
 #endif
 
        .bss
@@ -303,11 +303,14 @@ call_psxException:
        /* note: psxException might do recursive recompiler call from it's HLE code,
         * so be ready for this */
 FUNCTION(jump_to_new_pc):
+       ldr     r2, [fp, #LO_stop]
        ldr     r1, [fp, #LO_next_interupt]
        ldr     r10, [fp, #LO_cycle]
        ldr     r0, [fp, #LO_pcaddr]
-       sub     r10, r10, r1
+       tst     r2, r2
        str     r1, [fp, #LO_last_count]
+       sub     r10, r10, r1
+       bne     new_dyna_leave
        bl      ndrc_get_addr_ht
        mov     pc, r0
        .size   jump_to_new_pc, .-jump_to_new_pc
@@ -315,7 +318,6 @@ FUNCTION(jump_to_new_pc):
        .align  2
 FUNCTION(new_dyna_leave):
        ldr     r0, [fp, #LO_last_count]
-       add     r12, fp, #28
        add     r10, r0, r10
        str     r10, [fp, #LO_cycle]
        ldmfd   sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}