cpu: Add a pointer to a generic Nop StaticInst.
This can be used whenever generic code needs a filler instruction that doesn't do anything. Change-Id: Ib245d3e880a951e229eb315a09ecc7c47e6ae00f Reviewed-on: https://gem5-review.googlesource.com/6823 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
@@ -35,7 +35,41 @@
|
||||
|
||||
#include "sim/core.hh"
|
||||
|
||||
namespace {
|
||||
|
||||
static TheISA::ExtMachInst nopMachInst;
|
||||
|
||||
class NopStaticInst : public StaticInst
|
||||
{
|
||||
public:
|
||||
NopStaticInst() : StaticInst("gem5 nop", nopMachInst, No_OpClass)
|
||||
{}
|
||||
|
||||
Fault
|
||||
execute(ExecContext *xc, Trace::InstRecord *traceData) const override
|
||||
{
|
||||
return NoFault;
|
||||
}
|
||||
|
||||
void
|
||||
advancePC(TheISA::PCState &pcState) const override
|
||||
{
|
||||
pcState.advance();
|
||||
}
|
||||
|
||||
std::string
|
||||
generateDisassembly(Addr pc, const SymbolTable *symtab) const override
|
||||
{
|
||||
return mnemonic;
|
||||
}
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
StaticInstPtr StaticInst::nullStaticInstPtr;
|
||||
StaticInstPtr StaticInst::nopStaticInstPtr = new NopStaticInst;
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
@@ -205,6 +205,9 @@ class StaticInst : public RefCounted, public StaticInstFlags
|
||||
/// Pointer to a statically allocated "null" instruction object.
|
||||
static StaticInstPtr nullStaticInstPtr;
|
||||
|
||||
/// Pointer to a statically allocated generic "nop" instruction object.
|
||||
static StaticInstPtr nopStaticInstPtr;
|
||||
|
||||
/// The binary machine instruction.
|
||||
const ExtMachInst machInst;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user