From ac01998c1e92f5bfef7f6145a62aff2a37c77c27 Mon Sep 17 00:00:00 2001 From: TomW Date: Sun, 16 Nov 2014 15:01:31 +0000 Subject: [PATCH] LOCK prefix on recompiler no longer causes following instruction to be executed twice - fixes Windows 2000. --- src/x86_ops_misc.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/x86_ops_misc.h b/src/x86_ops_misc.h index fb685d6..7867d56 100644 --- a/src/x86_ops_misc.h +++ b/src/x86_ops_misc.h @@ -535,8 +535,12 @@ static int opHLT(uint32_t fetchdat) static int opLOCK(uint32_t fetchdat) { + fetchdat = fastreadl(cs + pc); + if (abrt) return 0; + pc++; + CLOCK_CYCLES(4); - return 0; + return x86_opcodes[(fetchdat & 0xff) | op32](fetchdat >> 8); }