summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder/decoder.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-03-21 19:19:53 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-03-21 19:19:53 +0000
commit0a80d06deaaf6fc574abacc2fed9b74d0bca1085 (patch)
tree070b5addf386a199fb9837c07eabe85191b5d3ba /src/arch/x86/isa/decoder/decoder.isa
parent3efec59fc55a439353adbd859722d8a5d170c18d (diff)
downloadgem5-0a80d06deaaf6fc574abacc2fed9b74d0bca1085.tar.xz
Break out the one and two byte opcodes into different files. Also change what bits decode is done on to reflect where clumps of instructions are.
--HG-- extra : convert_revision : 8768676eac25e6a4f0dc50ce2dc576bdcdd6e025
Diffstat (limited to 'src/arch/x86/isa/decoder/decoder.isa')
-rw-r--r--src/arch/x86/isa/decoder/decoder.isa29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/arch/x86/isa/decoder/decoder.isa b/src/arch/x86/isa/decoder/decoder.isa
index 85f376b49..20f31f882 100644
--- a/src/arch/x86/isa/decoder/decoder.isa
+++ b/src/arch/x86/isa/decoder/decoder.isa
@@ -58,7 +58,32 @@
// The actual decoder specification
//
-decode EXAMPLE default Unknown::unknown()
+decode OPCODE_NUM default Unknown::unknown()
{
- 0x0: Unknown::unknown2();
+ 0x0: M5InternalError::error(
+ {{"Saw an ExtMachInst with zero opcode bytes!"}});
+ //1 byte opcodes
+ ##include "one_byte_opcodes.isa"
+ //2 byte opcodes
+ ##include "two_byte_opcodes.isa"
+ //3 byte opcodes
+ 0x3: decode OPCODE_PREFIXA {
+ 0xF0: decode OPCODE_PREFIXB {
+ //We don't handle these properly in the predecoder yet, so there's
+ //no reason to implement them for now.
+ 0x38: decode OPCODE_OP {
+ default: FailUnimpl::sseThreeEight();
+ }
+ 0x3A: decode OPCODE_OP {
+ default: FailUnimpl::sseThreeA();
+ }
+ 0xF0: decode OPCODE_OP {
+ default: FailUnimpl::threednow();
+ }
+ default: M5InternalError::error(
+ {{"Unexpected second opcode byte in three byte opcode!"}});
+ }
+ default: M5InternalError::error(
+ {{"Unexpected first opcode byte in three byte opcode!"}});
+ }
}