X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Fassem_arm64.c;h=1157aafe4740428df2203a5dc0db8e4614a6d7d5;hb=9de8a0c3587effdbd19584cbca3baf566d1d21bd;hp=0b49221137710b369ca693706acb71af5aaddd26;hpb=2330734fa3064bf3a159c3c56f9a2e005598360e;p=pcsx_rearmed.git diff --git a/libpcsxcore/new_dynarec/assem_arm64.c b/libpcsxcore/new_dynarec/assem_arm64.c index 0b492211..1157aafe 100644 --- a/libpcsxcore/new_dynarec/assem_arm64.c +++ b/libpcsxcore/new_dynarec/assem_arm64.c @@ -453,7 +453,7 @@ static void emit_loadreg(u_int r, u_int hr) if (r == 0) emit_zeroreg(hr); else { - void *addr = &psxRegs.GPR.r[r]; + void *addr; switch (r) { //case HIREG: addr = &hi; break; //case LOREG: addr = &lo; break; @@ -461,7 +461,10 @@ static void emit_loadreg(u_int r, u_int hr) case CSREG: addr = &Status; break; case INVCP: addr = &invc_ptr; is64 = 1; break; case ROREG: addr = &ram_offset; is64 = 1; break; - default: assert(r < 34); break; + default: + assert(r < 34); + addr = &psxRegs.GPR.r[r]; + break; } if (is64) emit_readdword(addr, hr); @@ -1476,7 +1479,7 @@ static void inline_readstub(enum stub_type type, int i, u_int addr, { int rs=get_reg(regmap,target); int rt=get_reg(regmap,target); - if(rs<0) rs=get_reg(regmap,-1); + if(rs<0) rs=get_reg_temp(regmap); assert(rs>=0); u_int is_dynamic=0; uintptr_t host_addr = 0; @@ -1630,7 +1633,7 @@ static void do_writestub(int n) static void inline_writestub(enum stub_type type, int i, u_int addr, const signed char regmap[], int target, int adj, u_int reglist) { - int rs = get_reg(regmap,-1); + int rs = get_reg_temp(regmap); int rt = get_reg(regmap,target); assert(rs >= 0); assert(rt >= 0);