X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Flinkage_arm.s;h=f8bdca2e170249d3172fa21062a0abe799e334f3;hp=8f1a2b2f590f00d1df8e2323e6e6eae21cf0ba87;hb=576bbd8f94b6163abfc4c02b65002249d768da00;hpb=a06c1d6e156b90ce9bfa18664256dfe8f815857e diff --git a/libpcsxcore/new_dynarec/linkage_arm.s b/libpcsxcore/new_dynarec/linkage_arm.s index 8f1a2b2f..f8bdca2e 100644 --- a/libpcsxcore/new_dynarec/linkage_arm.s +++ b/libpcsxcore/new_dynarec/linkage_arm.s @@ -1,7 +1,7 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * linkage_arm.s for PCSX * * Copyright (C) 2009-2010 Ari64 * - * Copyright (C) 2010 Gražvydas "notaz" Ignotas * + * Copyright (C) 2010-2011 Gražvydas "notaz" Ignotas * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -739,32 +739,6 @@ indirect_jump: .size indirect_jump, .-indirect_jump .size indirect_jump_indexed, .-indirect_jump_indexed - .align 2 - .global jump_eret - .type jump_eret, %function -jump_eret: - ldr r1, [fp, #reg_cop0+48-dynarec_local] /* Status */ - ldr r0, [fp, #last_count-dynarec_local] - bic r1, r1, #2 - add r10, r0, r10 - str r1, [fp, #reg_cop0+48-dynarec_local] /* Status */ - str r10, [fp, #cycle-dynarec_local] - bl check_interupt - ldr r1, [fp, #next_interupt-dynarec_local] - ldr r0, [fp, #reg_cop0+56-dynarec_local] /* EPC */ - str r1, [fp, #last_count-dynarec_local] - subs r10, r10, r1 - bpl .E11 -.E8: - bl get_addr - mov pc, r0 -.E11: - str r0, [fp, #pcaddr-dynarec_local] - bl cc_interrupt - ldr r0, [fp, #pcaddr-dynarec_local] - b .E8 - .size jump_eret, .-jump_eret - .align 2 .global new_dyna_start .type new_dyna_start, %function @@ -1029,7 +1003,23 @@ ari_read_io32: .endm ari_write_io8: - ari_write_io ldrb, strb, byte, tab_write8, 2 + @ PCSX always writes to psxH, so do we for consistency + ldr r0, [fp, #address-dynarec_local] + ldr r3, [fp, #psxH_ptr-dynarec_local] + ldrb r1, [fp, #byte-dynarec_local] + bic r2, r0, #0x1f800000 + ldr r12,[fp, #tab_write8-dynarec_local] + strb r1, [r2, r3] + subs r3, r2, #0x1000 + movlo pc, lr +@ ari_write_io_old 2 + cmp r3, #0x880 + movhs pc, lr + ldr r12,[r12, r3, lsl #2] + mov r0, r1 + tst r12,r12 + bxne r12 + mov pc, lr ari_write_io16: ari_write_io ldrh, strh, hword, tab_write16, 1