[x86/64] Fix openbus reads (PC is corrupted)
This commit is contained in:
parent
b552d5eb7e
commit
53ac0814de
|
@ -387,10 +387,6 @@ defsymbl(execute_load_##rtype) ;\
|
||||||
ja ext_load_slow##rtype ;\
|
ja ext_load_slow##rtype ;\
|
||||||
jmp *load_##rtype##_tbl(REG_BASE, FULLREG(cx), ADDR_SIZE_BYTES) ;\
|
jmp *load_##rtype##_tbl(REG_BASE, FULLREG(cx), ADDR_SIZE_BYTES) ;\
|
||||||
;\
|
;\
|
||||||
ext_load_bios##rtype: ;\
|
|
||||||
mov %edx, REG_PC(REG_BASE) /* Store current PC */ ;\
|
|
||||||
jmp ext_load_slow##rtype ;\
|
|
||||||
;\
|
|
||||||
ext_load_iwram##rtype: ;\
|
ext_load_iwram##rtype: ;\
|
||||||
and $(0x7FFF & addrm), %eax /* Addr wrap */ ;\
|
and $(0x7FFF & addrm), %eax /* Addr wrap */ ;\
|
||||||
movop (IWRAM_OFF+0x8000)(REG_BASE, FULLREG(ax)), %eax /* Read mem */ ;\
|
movop (IWRAM_OFF+0x8000)(REG_BASE, FULLREG(ax)), %eax /* Read mem */ ;\
|
||||||
|
@ -436,6 +432,7 @@ ext_load_rom##rtype: ;\
|
||||||
ret ;\
|
ret ;\
|
||||||
;\
|
;\
|
||||||
ext_load_slow##rtype: ;\
|
ext_load_slow##rtype: ;\
|
||||||
|
mov %edx, REG_PC(REG_BASE) /* Store current PC */ ;\
|
||||||
SETUP_ARGS ;\
|
SETUP_ARGS ;\
|
||||||
CALL_FUNC(slowfn) ;\
|
CALL_FUNC(slowfn) ;\
|
||||||
ret ;\
|
ret ;\
|
||||||
|
@ -524,7 +521,7 @@ return_to_main:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
#define load_table(atype) ;\
|
#define load_table(atype) ;\
|
||||||
ADDR_TYPE ext_load_bios##atype /* 0x00 BIOS */;\
|
ADDR_TYPE ext_load_slow##atype /* 0x00 BIOS */;\
|
||||||
ADDR_TYPE ext_load_slow##atype /* 0x01 open read */;\
|
ADDR_TYPE ext_load_slow##atype /* 0x01 open read */;\
|
||||||
ADDR_TYPE ext_load_ewram##atype /* 0x02 EWRAM */;\
|
ADDR_TYPE ext_load_ewram##atype /* 0x02 EWRAM */;\
|
||||||
ADDR_TYPE ext_load_iwram##atype /* 0x03 IWRAM */;\
|
ADDR_TYPE ext_load_iwram##atype /* 0x03 IWRAM */;\
|
||||||
|
|
Loading…
Reference in New Issue