mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-10-14 02:17:36 +08:00
SYSENTER/SYSEXIT must use continue, not break, to avoid the SAVEIP that would set the instruction pointer back to just after SYSENTER. I thought it seemed weird that Linux would execute SYSENTER just to then execute INT 80h
This commit is contained in:
@@ -262,13 +262,13 @@
|
|||||||
if (CPU_ArchitectureType<CPU_ARCHTYPE_PENTIUMII) goto illegal_opcode;
|
if (CPU_ArchitectureType<CPU_ARCHTYPE_PENTIUMII) goto illegal_opcode;
|
||||||
if (!CPU_SYSENTER()) goto illegal_opcode;
|
if (!CPU_SYSENTER()) goto illegal_opcode;
|
||||||
}
|
}
|
||||||
break;
|
continue;
|
||||||
CASE_0F_B(0x35) /* SYSEXIT */
|
CASE_0F_B(0x35) /* SYSEXIT */
|
||||||
{
|
{
|
||||||
if (CPU_ArchitectureType<CPU_ARCHTYPE_PENTIUMII) goto illegal_opcode;
|
if (CPU_ArchitectureType<CPU_ARCHTYPE_PENTIUMII) goto illegal_opcode;
|
||||||
if (!CPU_SYSEXIT()) goto illegal_opcode;
|
if (!CPU_SYSEXIT()) goto illegal_opcode;
|
||||||
}
|
}
|
||||||
break;
|
continue;
|
||||||
|
|
||||||
// Pentium Pro Conditional Moves
|
// Pentium Pro Conditional Moves
|
||||||
CASE_0F_W(0x40) /* CMOVO */
|
CASE_0F_W(0x40) /* CMOVO */
|
||||||
|
Reference in New Issue
Block a user