From 32d65fbf19ca914e2ea21e0d41bf4ade64e79249 Mon Sep 17 00:00:00 2001 From: Alexis Engelke Date: Sat, 2 Nov 2019 19:20:26 +0100 Subject: [PATCH] Fix CR/DR move operand sizes --- instrs.txt | 12 ++++++++---- parseinstrs.py | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/instrs.txt b/instrs.txt index 4ac3df4..c74a9b6 100644 --- a/instrs.txt +++ b/instrs.txt @@ -334,10 +334,14 @@ ff/6 M GP - - - PUSH DEF64 0f18/2 M GP8 - - - PREFETCH1 0f18/3 M GP8 - - - PREFETCH2 0f1f M GP - - - NOP -NP.0f20 MR GP CR - - MOV_C2G DEF64 -NP.0f21 MR GP DR - - MOV_D2G DEF64 -NP.0f22 RM CR GP - - MOV_G2C DEF64 -NP.0f23 RM DR GP - - MOV_G2D DEF64 +0f20 MR GP32 CR - - MOV_C2G ONLY32 +0f20 MR GP64 CR - - MOV_C2G ONLY64 DEF64 +0f21 MR GP32 DR - - MOV_D2G ONLY32 +0f21 MR GP64 DR - - MOV_D2G ONLY64 DEF64 +0f22 RM CR GP32 - - MOV_G2C ONLY32 +0f22 RM CR GP64 - - MOV_G2C ONLY64 DEF64 +0f23 RM DR GP32 - - MOV_G2D ONLY32 +0f23 RM DR GP64 - - MOV_G2D ONLY64 DEF64 0f30 NP - - - - WRMSR 0f31 NP - - - - RDTSC 0f32 NP - - - - RDMSR diff --git a/parseinstrs.py b/parseinstrs.py index ab4fef4..2d69b23 100644 --- a/parseinstrs.py +++ b/parseinstrs.py @@ -94,9 +94,9 @@ OPKIND_LOOKUP = { "SREG": (0, 0, 3), "FPU": (0, 0, 4), "MEMZ": (0, 0, 0), - "BND": (0, 0, 0), - "CR": (0, 0, 0), - "DR": (0, 0, 0), + "BND": (0, 0, 8), + "CR": (0, 0, 9), + "DR": (0, 0, 10), } class InstrDesc(namedtuple("InstrDesc", "mnemonic,flags,encoding")):