summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-09-04 23:23:13 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-09-04 23:23:13 -0700
commitaaee21afdb39ed1fe02546acfca780881e07d813 (patch)
treeab6e0f04af881c23cbcc0e7e552a83f786fcc1cb /src/arch/x86/isa/decoder
parentb0b4038ee985bcd1d677f464d71812fb9827c9ce (diff)
downloadgem5-aaee21afdb39ed1fe02546acfca780881e07d813.tar.xz
X86: Implement idiv and propogate the mul corner case fix.
--HG-- extra : convert_revision : 348aa081067728afa14dc5b609fc7e26dbc5fad5
Diffstat (limited to 'src/arch/x86/isa/decoder')
-rw-r--r--src/arch/x86/isa/decoder/one_byte_opcodes.isa46
1 files changed, 24 insertions, 22 deletions
diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
index d8db47063..ecb92947f 100644
--- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
@@ -504,28 +504,30 @@
{{"Tried to execute the rep/repe prefix!"}});
0x4: hlt();
0x5: cmc();
- //0x6: group3_Eb();
- 0x6: decode MODRM_REG {
- 0x0: Inst::TEST(Eb,Iz);
- 0x1: Inst::TEST(Eb,Iz);
- 0x2: Inst::NOT(Eb);
- 0x3: Inst::NEG(Eb);
- 0x4: Inst::MUL_B(Eb);
- 0x5: Inst::IMUL_B(Eb);
- //This should be Eb, but it access the entire word value ax.
- 0x6: Inst::DIV_B(Ew);
- 0x7: idiv_Eb();
- }
- //0x7: group3_Ev();
- 0x7: decode MODRM_REG {
- 0x0: Inst::TEST(Ev,Iz);
- 0x1: Inst::TEST(Ev,Iz);
- 0x2: Inst::NOT(Ev);
- 0x3: Inst::NEG(Ev);
- 0x4: Inst::MUL(Ev);
- 0x5: Inst::IMUL(Ev);
- 0x6: Inst::DIV(Ev);
- 0x7: idiv_Ev();
+ format Inst {
+ //0x6: group3_Eb();
+ 0x6: decode MODRM_REG {
+ 0x0: TEST(Eb,Iz);
+ 0x1: TEST(Eb,Iz);
+ 0x2: NOT(Eb);
+ 0x3: NEG(Eb);
+ 0x4: MUL_B(Eb);
+ 0x5: IMUL_B(Eb);
+ //This should be Eb, but it access the entire word value ax.
+ 0x6: DIV_B(Ew);
+ 0x7: IDIV(Eb);
+ }
+ //0x7: group3_Ev();
+ 0x7: decode MODRM_REG {
+ 0x0: TEST(Ev,Iz);
+ 0x1: TEST(Ev,Iz);
+ 0x2: NOT(Ev);
+ 0x3: NEG(Ev);
+ 0x4: MUL(Ev);
+ 0x5: IMUL(Ev);
+ 0x6: DIV(Ev);
+ 0x7: IDIV(Ev);
+ }
}
}
0x1F: decode OPCODE_OP_BOTTOM3 {