notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drc: some PCSX-specific const addr io handlers
[pcsx_rearmed.git]
/
libpcsxcore
/
new_dynarec
/
assem_arm.c
diff --git
a/libpcsxcore/new_dynarec/assem_arm.c
b/libpcsxcore/new_dynarec/assem_arm.c
index
8432884
..
eed584e
100644
(file)
--- 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);
}
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);
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);
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);
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);
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;
int ftable=0;
if(type==STOREB_STUB)
ftable=(int)writememb;