47 lines
1 KiB
Text
47 lines
1 KiB
Text
|
////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Unknown instructions
|
||
|
//
|
||
|
|
||
|
output header {{
|
||
|
/**
|
||
|
* Class for Unknown/Illegal instructions
|
||
|
*/
|
||
|
class Unknown : public SparcStaticInst
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
// Constructor
|
||
|
Unknown(ExtMachInst _machInst) :
|
||
|
SparcStaticInst("unknown", _machInst, No_OpClass)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
%(BasicExecDeclare)s
|
||
|
|
||
|
std::string generateDisassembly(Addr pc,
|
||
|
const SymbolTable *symtab) const;
|
||
|
|
||
|
};
|
||
|
}};
|
||
|
|
||
|
output decoder {{
|
||
|
std::string Unknown::generateDisassembly(Addr pc,
|
||
|
const SymbolTable *symtab) const
|
||
|
{
|
||
|
return "Unknown instruction\n";
|
||
|
}
|
||
|
}};
|
||
|
|
||
|
output exec {{
|
||
|
Fault Unknown::execute(%(CPU_exec_context)s *xc,
|
||
|
Trace::InstRecord *traceData) const
|
||
|
{
|
||
|
return new IllegalInstruction;
|
||
|
}
|
||
|
}};
|
||
|
|
||
|
def format Unknown() {{
|
||
|
decode_block = 'return new Unknown(machInst);\n'
|
||
|
}};
|