summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-04-10 17:13:26 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-04-10 17:13:26 +0000
commitc59f9456b9ee1d821416761de07759e0402c101c (patch)
tree0aae7e3646c57839d146e4b802404d88110ccf9c
parentf53d2ccbfc63f1a7de13f7772e72814b4f94f47a (diff)
downloadgem5-c59f9456b9ee1d821416761de07759e0402c101c.tar.xz
Fix up the base x86 fault object and create a fault to be generated by unimplemented instructions in their microcode. This is useful if certain variations of an instruction are implemented, but, for instance, it's memory based versions aren't.
--HG-- extra : convert_revision : 24e69c5a6a0af2d0cf67e858a051ae6624bb300f
-rw-r--r--src/arch/x86/faults.hh20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/arch/x86/faults.hh b/src/arch/x86/faults.hh
index 6d89c273a..8c9afcdb5 100644
--- a/src/arch/x86/faults.hh
+++ b/src/arch/x86/faults.hh
@@ -65,12 +65,32 @@ namespace X86ISA
{
class X86Fault : public FaultBase
{
+ protected:
+ const char * name()
+ {
+ return "generic_x86_fault";
+ }
+
void invoke(ThreadContext * tc)
{
panic("X86 faults are not implemented!");
}
};
+ class UnimpInstFault : public FaultBase
+ {
+ public:
+ const char * name()
+ {
+ return "unimplemented_micro";
+ }
+
+ void invoke(ThreadContext * tc)
+ {
+ panic("Unimplemented instruction!");
+ }
+ };
+
static inline Fault genPageTableFault(Addr va)
{
panic("Page table fault not implemented in x86!\n");