From 876849724d0e5a990018dc025a8166c5131be567 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 26 Jul 2007 22:10:59 -0700 Subject: [PATCH] X86: Hook in shift and rotate by one instructions, and NOT. --HG-- extra : convert_revision : b3ab74e09f5cd02671cc6425c8cb8638bd58cbee --- src/arch/x86/isa/decoder/one_byte_opcodes.isa | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa index c81aa666d..3b51f9d73 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -407,9 +407,29 @@ 0x7: iret(); } 0x1A: decode OPCODE_OP_BOTTOM3 { - 0x0: group2_Eb_1(); - 0x1: group2_Ev_1(); format Inst { + //0x0: group2_Eb_1(); + 0x0: decode MODRM_REG { + 0x0: ROL_1(Eb); + 0x1: ROR_1(Eb); + 0x2: RCL_1(Eb); + 0x3: RCR_1(Eb); + 0x4: SAL_1(Eb); + 0x5: SHR_1(Eb); + 0x6: SAL_1(Eb); + 0x7: SAR_1(Eb); + } + //0x1: group2_Ev_1(); + 0x1: decode MODRM_REG { + 0x0: ROL_1(Ev); + 0x1: ROR_1(Ev); + 0x2: RCL_1(Ev); + 0x3: RCR_1(Ev); + 0x4: SAL_1(Ev); + 0x5: SHR_1(Ev); + 0x6: SAL_1(Ev); + 0x7: SAR_1(Ev); + } //0x2: group2_Eb_Cl(); 0x2: decode MODRM_REG { 0x0: ROL(Eb,rCb); @@ -497,7 +517,7 @@ 0x6: decode MODRM_REG { 0x0: Inst::TEST(Eb,Iz); 0x1: Inst::TEST(Eb,Iz); - 0x2: not_Eb(); + 0x2: Inst::NOT(Eb); 0x3: Inst::NEG(Eb); 0x4: mul_Eb(); 0x5: imul_Eb(); @@ -508,7 +528,7 @@ 0x7: decode MODRM_REG { 0x0: Inst::TEST(Ev,Iz); 0x1: Inst::TEST(Ev,Iz); - 0x2: not_Ev(); + 0x2: Inst::NOT(Ev); 0x3: Inst::NEG(Ev); 0x4: mul_Ev(); 0x5: imul_Ev(); -- 2.30.2