summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
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
commit10bca54ab0912acc160fa33d90dd5bf7976f3c59 (patch)
tree5efa483a392d9628b6bc04334428da7b24e507ec /src
parent58c7f26d33a40e8fca9e9b3425ccb481fd250ea2 (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.c2
-rw-r--r--src/emu/cpu/drcbex86.c2
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)