Go to the documentation of this file.
46 #ifndef __ARCH_ARM_TRACERS_TARMAC_PARSER_HH__
47 #define __ARCH_ARM_TRACERS_TARMAC_PARSER_HH__
50 #include <unordered_map>
58 #include "params/TarmacParser.hh"
98 bool _mismatch_on_pc_or_opcode) :
138 void dump()
override;
179 using MiscRegMap = std::unordered_map<std::string, RegIndex>;
229 trace.open(
p->path_to_trace.c_str());
300 #endif // __ARCH_ARM_TRACERS_TARMAC_PARSER_HH__
Addr startPc
Tracing starts when the PC gets this value for the first time (ignored if 0x0).
static ParserRegEntry regRecord
Buffer for register trace records.
Addr addr
The address that was accessed.
bool cpuId
If true, the trace format includes the CPU id.
TarmacParserRecord(Tick _when, ThreadContext *_thread, const StaticInstPtr _staticInst, ArmISA::PCState _pc, TarmacParser &_parent, const StaticInstPtr _macroStaticInst=NULL)
union Trace::InstRecord::@115 data
InstRecord * getInstRecord(Tick when, ThreadContext *tc, const StaticInstPtr staticInst, ArmISA::PCState pc, const StaticInstPtr macroStaticInst=NULL)
bool mismatch
True if a mismatch has been detected for this instruction.
bool started
True if tracing has started.
bool memWrCheck
If true, memory write accesses are checked.
static ParserInstEntry instRecord
Buffer for instruction trace records.
uint64_t Tick
Tick count type.
const StaticInstPtr inst
Current instruction.
TarmacParser(const Params *p)
std::shared_ptr< Request > RequestPtr
static std::list< ParserRegEntry > destRegRecords
List of records of destination registers.
bool mismatchOnPcOrOpcode
True if a mismatch has been detected for this instruction on PC or opcode.
TarmacParserRecordEvent(TarmacParser &_parent, ThreadContext *_thread, const StaticInstPtr _inst, ArmISA::PCState _pc, bool _mismatch, bool _mismatch_on_pc_or_opcode)
bool readMemNoEffect(Addr addr, uint8_t *data, unsigned size, unsigned flags)
Performs a memory access to read the value written by a previous write.
bool mismatchOnPcOrOpcode
True if a mismatch has been detected for this instruction on PC or opcode.
ArmISA::PCState pc
PC of the current instruction.
bool macroopInProgress
True if a macroop is currently in progress.
bool exitOnInsnDiff
If true, the simulation is stopped as the first mismatch is detected on PC or opcode.
static ParserMemEntry memRecord
Buffer for memory access trace records (stores only).
ThreadContext is the external interface to all thread state for anything outside of the CPU.
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
const char * iSetStateToStr(ISetState isetstate) const
Returns the string representation of an instruction set state.
RequestPtr memReq
Request for memory write checks.
Tarmac Parser: this tracer parses an existing Tarmac trace and it diffs it with gem5 simulation statu...
static MiscRegMap miscRegMap
TARMAC register trace record.
friend class TarmacParserRecord
unsigned flags
The flags that were assigned to the request.
std::ifstream trace
TARMAC trace file.
ISetState
ARM instruction set state.
static int8_t maxVectorLength
Max.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
ThreadContext * thread
Current thread context.
TarmacParserParams Params
std::unordered_map< std::string, RegIndex > MiscRegMap
Map from misc.
Addr size
The size of the memory request.
GenericISA::DelaySlotPCState< MachInst > PCState
bool mismatch
True if a mismatch has been detected for this instruction.
static const int MaxLineLength
void advanceTraceToStartPc()
Helper function to advance the trace up to startPc.
static TarmacRecordType currRecordType
Type of last parsed record.
static void printMismatchHeader(const StaticInstPtr inst, ArmISA::PCState pc)
Print a mismatch header containing the instruction fields as reported by gem5.
AddrRange ignoredAddrRange
Ignored addresses (ignored if empty).
bool parsingStarted
True if a TARMAC instruction record has already been parsed for this instruction.
Event triggered to check the value of the destination registers.
bool exitOnDiff
If true, the simulation is stopped as the first mismatch is detected.
TarmacParser & parent
Reference to the TARMAC trace object to which this record belongs.
bool advanceTrace()
Advances the TARMAC trace up to the next instruction, register, or memory access record.
static char buf[MaxLineLength]
Buffer used for trace file parsing.
const char * description() const
Return a C string describing the event.
TarmacRecordType
TARMAC trace record type.
Generated on Wed Sep 30 2020 14:02:01 for gem5 by doxygen 1.8.17