79a80,98
>
> class MicroHalt : public X86ISA::X86MicroopBase
> {
> public:
> MicroHalt(ExtMachInst _machInst, const char * instMnem,
> bool isMicro, bool isDelayed, bool isFirst, bool isLast) :
> X86MicroopBase(_machInst, "halt", instMnem,
> isMicro, isDelayed, isFirst, isLast, No_OpClass)
> {
> }
>
> MicroHalt(ExtMachInst _machInst, const char * instMnem) :
> X86MicroopBase(_machInst, "halt", instMnem,
> false, false, false, false, No_OpClass)
> {
> }
>
> %(BasicExecDeclare)s
> };
113a133,142
> output exec {{
> Fault
> MicroHalt::execute(%(CPU_exec_context)s *xc,
> Trace::InstRecord * traceData) const
> {
> xc->suspend();
> return NoFault;
> }
> }};
>
211a241,250
>
> class Halt(X86Microop):
> def __init__(self):
> pass
>
> def getAllocator(self, *microFlags):
> return "new MicroHalt(machInst, mnemonic %(flags)s)" % \
> self.microFlagsText(microFlags)
>
> microopClasses["halt"] = Halt