diff options
author | Aaron Giles <aaron@aarongiles.com> | 2008-07-01 04:40:25 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2008-07-01 04:40:25 +0000 |
commit | 10bca54ab0912acc160fa33d90dd5bf7976f3c59 (patch) | |
tree | 5efa483a392d9628b6bc04334428da7b24e507ec /src | |
parent | 58c7f26d33a40e8fca9e9b3425ccb481fd250ea2 (diff) |
Fixed incorrect assumption in HASHJMP that the base table for a mode
will always be allocated when a fixed mode is first used.
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/cpu/drcbex64.c | 2 | ||||
-rw-r--r-- | src/emu/cpu/drcbex86.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/emu/cpu/drcbex64.c b/src/emu/cpu/drcbex64.c index f9d15410c8a..cdac02bf1fd 100644 --- a/src/emu/cpu/drcbex64.c +++ b/src/emu/cpu/drcbex64.c @@ -3165,7 +3165,7 @@ static x86code *op_hashjmp(drcbe_state *drcbe, x86code *dst, const drcuml_instru emit_mov_r64_m64(&dst, REG_RSP, MABS(drcbe, &drcbe->hashstacksave)); // mov rsp,[hashstacksave] /* fixed mode cases */ - if (modep.type == DRCUML_PTYPE_IMMEDIATE) + if (modep.type == DRCUML_PTYPE_IMMEDIATE && drcbe->hash->base[modep.value] != drcbe->hash->emptyl1) { /* a straight immediate jump is direct, though we need the PC in EAX in case of failure */ if (pcp.type == DRCUML_PTYPE_IMMEDIATE) diff --git a/src/emu/cpu/drcbex86.c b/src/emu/cpu/drcbex86.c index 1fd865c3ed3..89abfa4fa16 100644 --- a/src/emu/cpu/drcbex86.c +++ b/src/emu/cpu/drcbex86.c @@ -3290,7 +3290,7 @@ static x86code *op_hashjmp(drcbe_state *drcbe, x86code *dst, const drcuml_instru emit_mov_r32_m32(&dst, REG_ESP, MABS(&drcbe->hashstacksave)); // mov esp,[hashstacksave] /* fixed mode cases */ - if (modep.type == DRCUML_PTYPE_IMMEDIATE) + if (modep.type == DRCUML_PTYPE_IMMEDIATE && drcbe->hash->base[modep.value] != drcbe->hash->emptyl1) { /* a straight immediate jump is direct, though we need the PC in EAX in case of failure */ if (pcp.type == DRCUML_PTYPE_IMMEDIATE) |