summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder/one_byte_opcodes.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-04-03 15:01:09 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-04-03 15:01:09 +0000
commit61c56ffeaf3288e2a67c479a742cde5ab2d9377a (patch)
treeb8b45bdd677e1d81241a6247b0574a3f8130e592 /src/arch/x86/isa/decoder/one_byte_opcodes.isa
parent0ce6936e7d5373593f5a468529d30035db62b601 (diff)
downloadgem5-61c56ffeaf3288e2a67c479a742cde5ab2d9377a.tar.xz
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
Diffstat (limited to 'src/arch/x86/isa/decoder/one_byte_opcodes.isa')
-rw-r--r--src/arch/x86/isa/decoder/one_byte_opcodes.isa18
1 files changed, 10 insertions, 8 deletions
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();