From 98959e902b76ba4d818d3d8293b4ee6bfc82b5dc Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 7 Dec 2023 13:41:59 +0100 Subject: Better way to handle multiple 3E/26 and F2/F3 prefixes ([DYNAREC] too) --- src/emu/x64run.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/emu') diff --git a/src/emu/x64run.c b/src/emu/x64run.c index b9b6ddf7..7faa06c9 100644 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -81,12 +81,15 @@ x64emurun: opcode = F8; rep = 0; - while((opcode==0xF2) || (opcode==0xF3)) { - rep = opcode-0xF1; + while((opcode==0xF2) || (opcode==0xF3) || (opcode==0x3E) || (opcode==0x26)) { + switch (opcode) { + case 0xF2: rep = 1; break; + case 0xF3: rep = 2; break; + case 0x3E: + case 0x26: /* ignored*/ break; + } opcode = F8; } - while((opcode==0x3E) || (opcode==0x26)) //Branch Taken Hint ignored - opcode = F8; rex.rex = 0; rex.is32bits = is32bits; if(!is32bits) -- cgit 1.4.1