diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-12-01 23:03:39 -0800 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-12-01 23:03:39 -0800 |
commit | dc6f96017135da7f3beae5055195de3cf8e47c6c (patch) | |
tree | b8fad747c652fe34db462bf585be4d184da02d6b /src/arch/x86/isa/decoder/one_byte_opcodes.isa | |
parent | a548067b01ed99d4abc9483ca11466d3d9d4ceca (diff) | |
download | gem5-dc6f96017135da7f3beae5055195de3cf8e47c6c.tar.xz |
X86: Reorganize segmentation and implement segment selector movs.
--HG--
extra : convert_revision : 553c3ffeda1f5312cf02493f602e7d4ba2fe66e8
Diffstat (limited to 'src/arch/x86/isa/decoder/one_byte_opcodes.isa')
-rw-r--r-- | src/arch/x86/isa/decoder/one_byte_opcodes.isa | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa index 62b8c8d59..0d1d7aacd 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -292,9 +292,21 @@ 0x1: MOV(Ev,Gv); 0x2: MOV(Gb,Eb); 0x3: MOV(Gv,Ev); - 0x4: WarnUnimpl::mov_MwRv_Sw(); //What to do with this one? + 0x4: decode MODRM_REG { + 0x0, 0x1, 0x2, + 0x3, 0x4, 0x5: MOV(Ev,Sv); + } 0x5: LEA(Gv,M); - 0x6: WarnUnimpl::mov_Sw_MwRv(); + 0x6: decode MODE_SUBMODE { + 0x3, 0x4: MOV_REAL(Sv,Ev); + default: decode MODRM_REG { + 0x1: UD2(); // Moving to the CS selector is illegal. + 0x2: MOVSS(Sv,Ev); + 0x0, 0x3, + 0x4, 0x5: MOV(Sv,Ev); + default: UD2(); + } + } //0x7: group10_Ev(); 0x7: decode MODRM_REG { 0x0: POP(Ev); |