aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec/assem_arm.c
diff options
context:
space:
mode:
authornotaz2011-02-17 18:20:47 +0200
committernotaz2011-02-17 23:45:24 +0200
commitcbbab9cd861a35ecc38546d7291c3cc655b4f5ed (patch)
treef29da00a6f4d5dbf5741ac1c187d24fd65352c7c /libpcsxcore/new_dynarec/assem_arm.c
parentfb4074479c536e12f7668aa5dfff48b146562d57 (diff)
downloadpcsx_rearmed-cbbab9cd861a35ecc38546d7291c3cc655b4f5ed.tar.gz
pcsx_rearmed-cbbab9cd861a35ecc38546d7291c3cc655b4f5ed.tar.bz2
pcsx_rearmed-cbbab9cd861a35ecc38546d7291c3cc655b4f5ed.zip
drc: some PCSX-specific const addr io handlers
Diffstat (limited to 'libpcsxcore/new_dynarec/assem_arm.c')
-rw-r--r--libpcsxcore/new_dynarec/assem_arm.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c
index 8432884..eed584e 100644
--- a/libpcsxcore/new_dynarec/assem_arm.c
+++ b/libpcsxcore/new_dynarec/assem_arm.c
@@ -2602,6 +2602,10 @@ emit_extjump_ds(int addr, int target)
emit_extjump2(addr, target, (int)dyna_linker_ds);
}
+#ifdef PCSX
+#include "pcsxmem_inline.c"
+#endif
+
do_readstub(int n)
{
assem_debug("do_readstub %x\n",start+stubs[n][3]*4);
@@ -2721,6 +2725,10 @@ inline_readstub(int type, int i, u_int addr, signed char regmap[], int target, i
ftable=(int)readmemd;
#endif
assert(ftable!=0);
+#ifdef PCSX
+ if(pcsx_direct_read(type,addr,target?rs:-1,rt))
+ return;
+#endif
if(target==0)
emit_movimm(addr,rs);
emit_writeword(rs,(int)&address);
@@ -2879,6 +2887,10 @@ inline_writestub(int type, int i, u_int addr, signed char regmap[], int target,
int rt=get_reg(regmap,target);
assert(rs>=0);
assert(rt>=0);
+#ifdef PCSX
+ if(pcsx_direct_write(type,addr,rs,rt,regmap))
+ return;
+#endif
int ftable=0;
if(type==STOREB_STUB)
ftable=(int)writememb;