summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-06-04 15:59:20 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-06-04 15:59:20 +0000
commit41bc0fc5b27b97f6235e5cd3fe089ff43b588bef (patch)
tree7c29765ea484fd0fde4a6d82b0f03aba3203c856 /src/arch/x86/isa/decoder
parente47f1667b6f5f3b329c171a10d571696bd24b045 (diff)
downloadgem5-41bc0fc5b27b97f6235e5cd3fe089ff43b588bef.tar.xz
Reworking x86's microcode system. This is a work in progress, and X86 doesn't compile.
src/arch/x86/isa/decoder/one_byte_opcodes.isa: src/arch/x86/isa/macroop.isa: src/arch/x86/isa/main.isa: src/arch/x86/isa/microasm.isa: src/arch/x86/isa/microops/base.isa: src/arch/x86/isa/microops/microops.isa: src/arch/x86/isa/operands.isa: src/arch/x86/isa/microops/regop.isa: src/arch/x86/isa/microops/specop.isa: Reworking x86's microcode system --HG-- extra : convert_revision : cab66be59ed758b192226af17eddd5a86aa190f3
Diffstat (limited to 'src/arch/x86/isa/decoder')
-rw-r--r--src/arch/x86/isa/decoder/one_byte_opcodes.isa22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
index 12f3c5f96..0ee9c53c6 100644
--- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
@@ -61,12 +61,11 @@
0x1: decode OPCODE_OP_TOP5 {
format WarnUnimpl {
0x00: decode OPCODE_OP_BOTTOM3 {
- 0x4: Inst::ADD(rAl,Ib);
- 0x5: Inst::ADD(rAx,Iz);
+ 0x4: ADD();
+ 0x5: ADD();
0x6: push_ES();
0x7: pop_ES();
- default: MultiInst::ADD(OPCODE_OP_BOTTOM3,
- [Eb,Gb],[Ev,Gv],[Gb,Eb],[Gv,Ev]);
+ default: ADD();
}
0x01: decode OPCODE_OP_BOTTOM3 {
0x0: or_Eb_Gb();
@@ -123,13 +122,12 @@
0x7: das();
}
0x06: decode OPCODE_OP_BOTTOM3 {
- 0x4: Inst::XOR(rAl,Ib);
- 0x5: Inst::XOR(rAx,Iz);
+ 0x4: Inst::XOR(ALIb);
+ 0x5: Inst::XOR(rAX,Iz);
0x6: M5InternalError::error(
{{"Tried to execute the SS segment override prefix!"}});
0x7: aaa();
- default: MultiInst::XOR(OPCODE_OP_BOTTOM3,
- [Eb,Gb],[Ev,Gv],[Gb,Eb],[Gv,Ev]);
+ default: MultiInst::XOR(EbGb, EvGv, GbEb, GvEv);
}
0x07: decode OPCODE_OP_BOTTOM3 {
0x0: cmp_Eb_Gb();
@@ -237,10 +235,10 @@
0x7: xchg_Ev_Gv();
}
0x11: decode OPCODE_OP_BOTTOM3 {
- 0x0: Inst::MOV(Eb, Gb);
- 0x1: Inst::MOV(Ev, Gv);
- 0x2: Inst::MOV(Gb, Eb);
- 0x3: Inst::MOV(Gv, Ev);
+ 0x0: MOV();
+ 0x1: MOV();
+ 0x2: MOV();
+ 0x3: MOV();
0x4: mov_MwRv_Sw(); //What to do with this one?
0x5: lea_Gv_M();
0x6: mov_Sw_MwRv();