summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mahlemiut <mahlemiut@users.noreply.github.com>2012-02-24 21:04:08 +0000
committer mahlemiut <mahlemiut@users.noreply.github.com>2012-02-24 21:04:08 +0000
commit84422fd1ca01934099b6cdb22b4641c3c11d65de (patch)
tree2edf21eaa468e39f2d50d42fdc3f961f025a9270
parentd4311f08535475cf384c1d6b951c8dd7168e73a3 (diff)
i386: LOCK prefix should depend on IOPL on 386. Windows NT beta boots. [Carl]
-rw-r--r--src/emu/cpu/i386/i386ops.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/emu/cpu/i386/i386ops.c b/src/emu/cpu/i386/i386ops.c
index e0fdef77a36..33819335018 100644
--- a/src/emu/cpu/i386/i386ops.c
+++ b/src/emu/cpu/i386/i386ops.c
@@ -2411,12 +2411,8 @@ static void I386OP(wait)(i386_state *cpustate) // Opcode 0x9B
static void I386OP(lock)(i386_state *cpustate) // Opcode 0xf0
{
- if(PROTECTED_MODE)
- {
- UINT8 IOPL = cpustate->IOP1 | (cpustate->IOP2 << 1);
- if(cpustate->CPL > IOPL)
- FAULT(FAULT_GP,0);
- }
+ // lock doesn't depend on iopl on 386
+ // TODO: lock causes UD on unlockable opcodes
CYCLES(cpustate,CYCLES_LOCK); // TODO: Determine correct cycle count
I386OP(decode_opcode)(cpustate);
}