diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-04-10 17:13:26 +0000 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-04-10 17:13:26 +0000 |
commit | c59f9456b9ee1d821416761de07759e0402c101c (patch) | |
tree | 0aae7e3646c57839d146e4b802404d88110ccf9c /src/arch | |
parent | f53d2ccbfc63f1a7de13f7772e72814b4f94f47a (diff) | |
download | gem5-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
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/x86/faults.hh | 20 |
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"); |