31,94d30
< // Declarations for execute() methods.
< def template BasicExecDeclare {{
< Fault execute(%(CPU_exec_context)s *, Trace::InstRecord *) const;
< }};
<
< // Basic instruction class declaration template.
< def template BasicDeclare {{
< /**
< * Static instruction class for "%(mnemonic)s".
< */
< class %(class_name)s : public %(base_class)s
< {
< public:
< /// Constructor.
< %(class_name)s(ExtMachInst machInst);
< %(BasicExecDeclare)s
< };
< }};
<
< // Basic instruction class constructor template.
< def template BasicConstructor {{
< inline %(class_name)s::%(class_name)s(ExtMachInst machInst) : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
< {
< %(constructor)s;
< }
< }};
<
<
< // Basic instruction class execute method template.
< def template BasicExecute {{
< Fault %(class_name)s::execute(%(CPU_exec_context)s *xc, Trace::InstRecord *traceData) const
< {
< Fault fault = NoFault;
<
< %(op_decl)s;
< %(op_rd)s;
< %(code)s;
<
< if (fault == NoFault)
< {
< %(op_wb)s;
< }
< return fault;
< }
< }};
<
< // Basic decode template.
< def template BasicDecode {{
< return new %(class_name)s(machInst);
< }};
<
< // Basic decode template, passing mnemonic in as string arg to constructor.
< def template BasicDecodeWithMnemonic {{
< return new %(class_name)s("%(mnemonic)s", machInst);
< }};
<
< // Definitions of execute methods that panic.
< def template BasicExecPanic {{
< Fault execute(%(CPU_exec_context)s *, Trace::InstRecord *) const
< {
< panic("Execute method called when it shouldn't!");
< }
< }};
<