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: adjust timing to be closer to the interpreter
[pcsx_rearmed.git]
/
libpcsxcore
/
new_dynarec
/
assem_arm64.c
diff --git
a/libpcsxcore/new_dynarec/assem_arm64.c
b/libpcsxcore/new_dynarec/assem_arm64.c
index
ef87b29
..
6380b27
100644
(file)
--- a/
libpcsxcore/new_dynarec/assem_arm64.c
+++ b/
libpcsxcore/new_dynarec/assem_arm64.c
@@
-1436,7
+1436,7
@@
static void do_readstub(int n)
int cc=get_reg(i_regmap,CCREG);
if(cc<0)
emit_loadreg(CCREG,2);
int cc=get_reg(i_regmap,CCREG);
if(cc<0)
emit_loadreg(CCREG,2);
- emit_addimm(cc<0?2:cc,CLOCK_ADJUST((int)stubs[n].d
+1
),2);
+ emit_addimm(cc<0?2:cc,CLOCK_ADJUST((int)stubs[n].d),2);
emit_far_call(handler);
// (no cycle reload after read)
if(itype[i]==C1LS||itype[i]==C2LS||(rt>=0&&rt1[i]!=0)) {
emit_far_call(handler);
// (no cycle reload after read)
if(itype[i]==C1LS||itype[i]==C2LS||(rt>=0&&rt1[i]!=0)) {
@@
-1458,7
+1458,7
@@
static void inline_readstub(enum stub_type type, int i, u_int addr, signed char
uintptr_t host_addr = 0;
void *handler;
int cc=get_reg(regmap,CCREG);
uintptr_t host_addr = 0;
void *handler;
int cc=get_reg(regmap,CCREG);
- //if(pcsx_direct_read(type,addr,CLOCK_ADJUST(adj
+1
),cc,target?rs:-1,rt))
+ //if(pcsx_direct_read(type,addr,CLOCK_ADJUST(adj),cc,target?rs:-1,rt))
// return;
handler = get_direct_memhandler(mem_rtab, addr, type, &host_addr);
if (handler == NULL) {
// return;
handler = get_direct_memhandler(mem_rtab, addr, type, &host_addr);
if (handler == NULL) {
@@
-1499,7
+1499,7
@@
static void inline_readstub(enum stub_type type, int i, u_int addr, signed char
emit_mov(rs,0);
if(cc<0)
emit_loadreg(CCREG,2);
emit_mov(rs,0);
if(cc<0)
emit_loadreg(CCREG,2);
- emit_addimm(cc<0?2:cc,CLOCK_ADJUST(adj
+1
),2);
+ emit_addimm(cc<0?2:cc,CLOCK_ADJUST(adj),2);
if(is_dynamic) {
uintptr_t l1 = ((uintptr_t *)mem_rtab)[addr>>12] << 1;
emit_adrp((void *)l1, 1);
if(is_dynamic) {
uintptr_t l1 = ((uintptr_t *)mem_rtab)[addr>>12] << 1;
emit_adrp((void *)l1, 1);
@@
-1595,10
+1595,10
@@
static void do_writestub(int n)
int cc=get_reg(i_regmap,CCREG);
if(cc<0)
emit_loadreg(CCREG,2);
int cc=get_reg(i_regmap,CCREG);
if(cc<0)
emit_loadreg(CCREG,2);
- emit_addimm(cc<0?2:cc,CLOCK_ADJUST((int)stubs[n].d
+1
),2);
+ emit_addimm(cc<0?2:cc,CLOCK_ADJUST((int)stubs[n].d),2);
// returns new cycle_count
emit_far_call(handler);
// returns new cycle_count
emit_far_call(handler);
- emit_addimm(0,-CLOCK_ADJUST((int)stubs[n].d
+1
),cc<0?2:cc);
+ emit_addimm(0,-CLOCK_ADJUST((int)stubs[n].d),cc<0?2:cc);
if(cc<0)
emit_storereg(CCREG,2);
if(restore_jump)
if(cc<0)
emit_storereg(CCREG,2);
if(restore_jump)
@@
-1638,12
+1638,12
@@
static void inline_writestub(enum stub_type type, int i, u_int addr, signed char
cc = cc_use = get_reg(regmap, CCREG);
if (cc < 0)
emit_loadreg(CCREG, (cc_use = 2));
cc = cc_use = get_reg(regmap, CCREG);
if (cc < 0)
emit_loadreg(CCREG, (cc_use = 2));
- emit_addimm(cc_use, CLOCK_ADJUST(adj
+1
), 2);
+ emit_addimm(cc_use, CLOCK_ADJUST(adj), 2);
emit_far_call(do_memhandler_pre);
emit_far_call(handler);
emit_far_call(do_memhandler_post);
emit_far_call(do_memhandler_pre);
emit_far_call(handler);
emit_far_call(do_memhandler_post);
- emit_addimm(0, -CLOCK_ADJUST(adj
+1
), cc_use);
+ emit_addimm(0, -CLOCK_ADJUST(adj), cc_use);
if (cc < 0)
emit_storereg(CCREG, cc_use);
restore_regs(reglist);
if (cc < 0)
emit_storereg(CCREG, cc_use);
restore_regs(reglist);