diff options
author | notaz | 2010-12-23 19:18:36 +0200 |
---|---|---|
committer | notaz | 2010-12-23 19:18:36 +0200 |
commit | a06c1d6e156b90ce9bfa18664256dfe8f815857e (patch) | |
tree | 0c4abe39b1096ec1366d15e93af8beddcb185095 /libpcsxcore/new_dynarec/linkage_arm.s | |
parent | c62b43c9f32d79116225247acf09ccd30d4d658b (diff) | |
download | pcsx_rearmed-a06c1d6e156b90ce9bfa18664256dfe8f815857e.tar.gz pcsx_rearmed-a06c1d6e156b90ce9bfa18664256dfe8f815857e.tar.bz2 pcsx_rearmed-a06c1d6e156b90ce9bfa18664256dfe8f815857e.zip |
drc: map bios and fix dummy reads
Diffstat (limited to 'libpcsxcore/new_dynarec/linkage_arm.s')
-rw-r--r-- | libpcsxcore/new_dynarec/linkage_arm.s | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/linkage_arm.s b/libpcsxcore/new_dynarec/linkage_arm.s index 906c466..8f1a2b2 100644 --- a/libpcsxcore/new_dynarec/linkage_arm.s +++ b/libpcsxcore/new_dynarec/linkage_arm.s @@ -803,6 +803,9 @@ new_dyna_start: .global ari_write_ram_mirror8 .global ari_write_ram_mirror16 .global ari_write_ram_mirror32 +.global ari_read_bios8 +.global ari_read_bios16 +.global ari_read_bios32 .global ari_read_io8 .global ari_read_io16 .global ari_read_io32 @@ -893,6 +896,25 @@ ari_write_ram_mirror32: ari_write_ram_mirror (3<<11), word, str +.macro ari_read_bios_mirror bic_const op + ldr r0, [fp, #address-dynarec_local] + orr r0, r0, #0x80000000 + bic r0, r0, #(0x20000000|\bic_const) @ map to 0x9fc... + \op r0, [r0] + str r0, [fp, #readmem_dword-dynarec_local] + mov pc, lr +.endm + +ari_read_bios8: + ari_read_bios_mirror 0, ldrb + +ari_read_bios16: + ari_read_bios_mirror 1, ldrh + +ari_read_bios32: + ari_read_bios_mirror 3, ldr + + @ for testing .macro ari_read_io_old tab_shift str lr, [sp, #-8]! @ EABI alignment.. |