diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:16 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:16 -0500 |
commit | e9c8f68c0fcfb72934b852a61671fb94a1927e1d (patch) | |
tree | 25c89e490c733f3a3afdd775f2c7a094a69fe4a1 /src/arch/arm/isa/formats/unknown.isa | |
parent | 05bd3eb4ec3d9fea3dbc46112a47459085d3011c (diff) | |
download | gem5-e9c8f68c0fcfb72934b852a61671fb94a1927e1d.tar.xz |
ARM: Make undefined instructions obey predication.
Diffstat (limited to 'src/arch/arm/isa/formats/unknown.isa')
-rw-r--r-- | src/arch/arm/isa/formats/unknown.isa | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/arch/arm/isa/formats/unknown.isa b/src/arch/arm/isa/formats/unknown.isa index e4bb94899..907703015 100644 --- a/src/arch/arm/isa/formats/unknown.isa +++ b/src/arch/arm/isa/formats/unknown.isa @@ -40,58 +40,6 @@ // // Authors: Stephen Hines -//////////////////////////////////////////////////////////////////// -// -// Unknown instructions -// - -output header {{ - /** - * Static instruction class for unknown (illegal) instructions. - * These cause simulator termination if they are executed in a - * non-speculative mode. This is a leaf class. - */ - class Unknown : public ArmStaticInst - { - public: - /// Constructor - Unknown(ExtMachInst _machInst) - : ArmStaticInst("unknown", _machInst, No_OpClass) - { - // don't call execute() (which panics) if we're on a - // speculative path - flags[IsNonSpeculative] = true; - } - - %(BasicExecDeclare)s - - std::string - generateDisassembly(Addr pc, const SymbolTable *symtab) const; - }; -}}; - -output decoder {{ - std::string - Unknown::generateDisassembly(Addr pc, const SymbolTable *symtab) const - { - return csprintf("%-10s (inst 0x%x, opcode 0x%x, binary:%s)", - "unknown", machInst, OPCODE, inst2string(machInst)); - } -}}; - -output exec {{ - Fault - Unknown::execute(%(CPU_exec_context)s *xc, - Trace::InstRecord *traceData) const - { -#if FULL_SYSTEM - return new UndefinedInstruction; -#else - return new UndefinedInstruction(machInst, true); -#endif - } -}}; - def format Unknown() {{ decode_block = 'return new Unknown(machInst);\n' }}; |