[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/3] X86: Invalid lock prefix (F0)
From: |
Xabier Ugarte-Pedrero |
Subject: |
[Qemu-devel] [PATCH 1/3] X86: Invalid lock prefix (F0) |
Date: |
Tue, 11 Feb 2014 22:02:59 +0100 |
If the lock prefix (F0) is prepended more than once to any instruction, then
it should generate an invalid instruction exception (illegal_op).
See Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A:
Instruction Set Reference, A-M. Order Number: 253666-049US February 2014. See
“LOCK—Assert LOCK# Signal Prefix” in Chapter 3.
Signed-off-by: Xabier Ugarte-Pedrero <address@hidden>
---
target-i386/translate.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/target-i386/translate.c b/target-i386/translate.c
index b0f2279..733e5b2 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -4415,6 +4415,12 @@ static target_ulong disas_insn(CPUX86State *env,
DisasContext *s,
prefixes |= PREFIX_REPNZ;
goto next_byte;
case 0xf0:
+ /*Invalid lock sequence*/
+ if (prefixes & PREFIX_LOCK){
+ /*Clear the PREFIX_LOCK FLAG*/
+ prefixes &= !PREFIX_LOCK;
+ goto illegal_op;
+ }
prefixes |= PREFIX_LOCK;
goto next_byte;
case 0x2e:
--
1.7.9.5
- [Qemu-devel] [PATCH 0/3] X86: Invalid lock prefix (F0), invalid mov instruction, (continued)
- [Qemu-devel] [PATCH 0/3] X86: Invalid lock prefix (F0), invalid mov instruction, Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 1/3] X86: Invalid lock prefix (F0), Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 2/3] X86: Invalid mov instruction (C7), Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 3/3] X86: The xor_zero case should also update the parity flag, Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 3/3] X86: The xor_zero case should also update the parity flag, Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 0/3] X86: Invalid lock prefix (F0), invalid mov instruction, the xor_zero case should also update the parity., Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 0/3] X86: Invalid lock prefix (F0), invalid mov instruction, the xor_zero case should also update the parity., Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 2/3] X86: Invalid mov instruction (C7), Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 3/3] X86: The xor_zero case should also update the parity flag, Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 3/3] X86: The xor_zero case should also update the parity flag, Xabier Ugarte-Pedrero, 2014/02/11
- [Qemu-devel] [PATCH 1/3] X86: Invalid lock prefix (F0),
Xabier Ugarte-Pedrero <=
- [Qemu-devel] [PATCH 0/3] X86: Invalid lock prefix (F0), invalid mov instruction, Xabier Ugarte-Pedrero, 2014/02/11