Go to the documentation of this file.
39 #include "debug/ArmTme.hh"
48 TmeImmOp64::generateDisassembly(
52 printMnemonic(
ss,
"",
false);
58 TmeRegNone64::generateDisassembly(
63 printIntReg(
ss, dest);
68 MicroTmeBasic64::generateDisassembly(
86 flags[IsMicroop] =
true;
87 flags[IsReadBarrier] =
true;
88 flags[IsWriteBarrier] =
true;
102 panic(
"tfence should not have memory semantics");
111 panic(
"tfence should not have memory semantics");
134 flags[IsHtmStart] =
true;
135 flags[IsInteger] =
true;
136 flags[IsLoad] =
true;
137 flags[IsMicroop] =
true;
138 flags[IsNonSpeculative] =
true;
145 panic(
"TME is not supported with atomic memory");
168 flags[IsInteger] =
true;
169 flags[IsMicroop] =
true;
182 flags[IsLoad] =
true;
183 flags[IsMicroop] =
true;
184 flags[IsNonSpeculative] =
true;
185 flags[IsHtmCancel] =
true;
192 panic(
"TME is not supported with atomic memory");
223 flags[IsHtmStop] =
true;
224 flags[IsLoad] =
true;
225 flags[IsMicroop] =
true;
226 flags[IsNonSpeculative] =
true;
232 panic(
"TME is not supported with atomic memory");
int8_t _numVecDestRegs
To use in architectures with vector register file.
std::bitset< Num_Flags > flags
Flag values for this instruction.
static const OpClass MemReadOp
Tcancel64(ArmISA::ExtMachInst, uint64_t)
MicroTcommit64(ArmISA::ExtMachInst)
Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const
Tcommit64(ArmISA::ExtMachInst _machInst)
Register ID: describe an architectural register with its class and index.
Fault initiateAcc(ExecContext *, Trace::InstRecord *) const
int8_t _numVecElemDestRegs
Tstart64(ArmISA::ExtMachInst, ArmISA::IntRegIndex)
void setRegIdxArrays(RegIdArrayPtr src, RegIdArrayPtr dest)
Set the pointers which point to the arrays of source and destination register indices.
std::shared_ptr< FaultBase > Fault
void setDestRegIdx(int i, const RegId &val)
Fault execute(ExecContext *, Trace::InstRecord *) const
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
RegId(StaticInst::*)[] RegIdArrayPtr
Base class for predicated macro-operations.
constexpr decltype(nullptr) NoFault
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
MacroTmeOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass)
@ IntRegClass
Integer register.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void ccprintf(cp::Print &print)
Fault execute(ExecContext *, Trace::InstRecord *) const
Fault execute(ExecContext *, Trace::InstRecord *) const
int8_t _numSrcRegs
See numSrcRegs().
int8_t _numFPDestRegs
The following are used to track physical register usage for machines with separate int & FP reg files...
Fault execute(ExecContext *, Trace::InstRecord *) const
int8_t _numDestRegs
See numDestRegs().
#define panic(...)
This implements a cprintf based panic() function.
Ttest64(ArmISA::ExtMachInst, ArmISA::IntRegIndex)
Generated on Tue Jun 22 2021 15:28:21 for gem5 by doxygen 1.8.17