From c2d60abf52fc81119970ab0617f9a979f1377685 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 2 Oct 2007 23:02:18 -0700 Subject: 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 --- src/arch/x86/isa/decoder/one_byte_opcodes.isa | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/arch/x86/isa/decoder/one_byte_opcodes.isa') 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); -- cgit v1.2.3