diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-10-02 23:02:18 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-10-02 23:02:18 -0700 |
commit | c2d60abf52fc81119970ab0617f9a979f1377685 (patch) | |
tree | 3178cee596202e84daa8811dc11f29d03ca6e7ad /src/arch/x86/isa/decoder | |
parent | 504f90f76350ce14debfbfa837423144b0abdbe4 (diff) | |
download | gem5-c2d60abf52fc81119970ab0617f9a979f1377685.tar.xz |
X86: Distinguish between the rep and repe prefixes.
STOS and MOVS only accept the rep prefix which always loops until rcx becomes
0. The other string instructions accept repe (same encoding as rep) and repne
which also check the condition code flags each iteration.
--HG--
extra : convert_revision : 544149f640302070810fb53e53bfeb0e87160ffc
Diffstat (limited to 'src/arch/x86/isa/decoder')
-rw-r--r-- | src/arch/x86/isa/decoder/one_byte_opcodes.isa | 8 |
1 files changed, 4 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 0816eb175..f76912f06 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -332,8 +332,8 @@ 0x3: mov_Ov_rAX(); 0x4: StringInst::MOVS(Yb,Xb); 0x5: StringInst::MOVS(Yv,Xv); - 0x6: StringInst::CMPS(Yb,Xb); - 0x7: StringInst::CMPS(Yv,Xv); + 0x6: StringTestInst::CMPS(Yb,Xb); + 0x7: StringTestInst::CMPS(Yv,Xv); } 0x15: decode OPCODE_OP_BOTTOM3 { 0x0: Inst::TEST(rAb,Ib); @@ -342,8 +342,8 @@ 0x3: StringInst::STOS(Yv); 0x4: lods_Al_Xb(); 0x5: lods_rAX_Xv(); - 0x6: StringInst::SCAS(Yb); - 0x7: StringInst::SCAS(Yv); + 0x6: StringTestInst::SCAS(Yb); + 0x7: StringTestInst::SCAS(Yv); } format Inst { 0x16: MOV(Bb,Ib); |