summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Wilbert Pol <wilbert@jdg.info>2010-10-31 07:54:54 +0000
committer Wilbert Pol <wilbert@jdg.info>2010-10-31 07:54:54 +0000
commitdd12c245a86bc39f983868b3187e747a10a0e79c (patch)
treefd77e6c52959a7c10a79270ab7d5f085adde2530
parent66ccc4c8a4b5ab1496c777068754fe7684849a87 (diff)
i80186/i80286: Fixed bound instruction restart when prefixed with a segment. [Wilbert Pol]
-rw-r--r--src/emu/cpu/i86/instr186.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/emu/cpu/i86/instr186.c b/src/emu/cpu/i86/instr186.c
index d391bdce04f..52d76db52fd 100644
--- a/src/emu/cpu/i86/instr186.c
+++ b/src/emu/cpu/i86/instr186.c
@@ -49,7 +49,7 @@ static void PREFIX186(_bound)(i8086_state *cpustate) /* Opcode 0x62 */
int high= (INT16)GetnextRMWord;
int tmp= (INT16)RegWord(ModRM);
if (tmp<low || tmp>high) {
- cpustate->pc-=2;
+ cpustate->pc-= ( cpustate->seg_prefix ? 3 : 2 );
PREFIX86(_interrupt)(cpustate, 5);
}
ICOUNT -= timing.bound;