From 61c56ffeaf3288e2a67c479a742cde5ab2d9377a Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 3 Apr 2007 15:01:09 +0000 Subject: A batch of changes and fixes. Macroops are now generated automatically, multiops do alot more of what they're supposed to (excluding memory operands), and microops are slightly more implemented. --HG-- extra : convert_revision : 518059f47e11df50aa450d4a322ef2ac069c99c9 --- src/arch/x86/isa/decoder/one_byte_opcodes.isa | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 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 b4aeece07..f7e6e3994 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -61,14 +61,15 @@ 0x1: decode OPCODE_OP_TOP5 { format WarnUnimpl { 0x00: decode OPCODE_OP_BOTTOM3 { + 0x4: TaggedOp::add({{AddI %0 %0}}, [rAl]); + 0x5: TaggedOp::add({{AddI %0 %0}}, [rAx]); 0x6: push_ES(); 0x7: pop_ES(); default: MultiOp::add( {{Add %0 %0 %1}}, OPCODE_OP_BOTTOM3, [[Eb,Gb],[Ev,Gv], - [Gb,Eb],[Gv,Ev], - [Al,Ib],[rAx,Iz]]); + [Gb,Eb],[Gv,Ev]]); } 0x01: decode OPCODE_OP_BOTTOM3 { 0x0: or_Eb_Gb(); @@ -125,15 +126,16 @@ 0x7: das(); } 0x06: decode OPCODE_OP_BOTTOM3 { - 0x0: xor_Eb_Gb(); - 0x1: xor_Ev_Gv(); - 0x2: xor_Gb_Eb(); - 0x3: xor_Gv_Ev(); - 0x4: xor_Al_Ib(); - 0x5: xor_rAX_Iz(); + 0x4: TaggedOp::xor({{XorI %0 %0}}, [rAl]); + 0x5: TaggedOp::xor({{XorI %0 %0}}, [rAx]); 0x6: M5InternalError::error( {{"Tried to execute the SS segment override prefix!"}}); 0x7: aaa(); + default: MultiOp::xor( + {{Xor %0 %0 %1}}, + OPCODE_OP_BOTTOM3, + [[Eb,Gb],[Ev,Gv], + [Gb,Eb],[Gv,Ev]]); } 0x07: decode OPCODE_OP_BOTTOM3 { 0x0: cmp_Eb_Gb(); -- cgit v1.2.3