X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Fassem_arm.c;h=264f9d62bffa6e907d6e02a5b5dd3d3de274413e;hp=3abef7f5050b5c6760e39e813c98bc7666fcb7ce;hb=f76eeef94001323d5019a134c54847ece2493ae9;hpb=514ed0d98e058596720f94af4af347b609980de9;ds=sidebyside diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c index 3abef7f5..264f9d62 100644 --- a/libpcsxcore/new_dynarec/assem_arm.c +++ b/libpcsxcore/new_dynarec/assem_arm.c @@ -142,7 +142,7 @@ add_literal(int addr,int val) literalcount++; } -void kill_pointer(void *stub) +void *kill_pointer(void *stub) { int *ptr=(int *)(stub+4); assert((*ptr&0x0ff00000)==0x05900000); @@ -150,6 +150,7 @@ void kill_pointer(void *stub) int **l_ptr=(void *)ptr+offset+8; int *i_ptr=*l_ptr; set_jump_target((int)i_ptr,(int)stub); + return i_ptr; } int get_pointer(void *stub) @@ -2553,6 +2554,11 @@ do_readstub(int n) rth=get_reg(i_regmap,rt1[i]|64); rt=get_reg(i_regmap,rt1[i]); } +#ifdef PCSX + if(rt<0) + // assume forced dummy read + rt=get_reg(i_regmap,-1); +#endif assert(rs>=0); assert(rt>=0); if(addr<0) addr=rt;