diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-07-26 22:10:59 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-07-26 22:10:59 -0700 |
commit | 876849724d0e5a990018dc025a8166c5131be567 (patch) | |
tree | 00bd5ed34eb0308f628da85329e913558ec00d18 /src/arch/x86 | |
parent | edaaf1ebf1461b20c0bfa06472d5188a975e47c7 (diff) | |
download | gem5-876849724d0e5a990018dc025a8166c5131be567.tar.xz |
X86: Hook in shift and rotate by one instructions, and NOT.
--HG--
extra : convert_revision : b3ab74e09f5cd02671cc6425c8cb8638bd58cbee
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/isa/decoder/one_byte_opcodes.isa | 28 |
1 files 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(); |