OpenASIP 2.2
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
ProximIUDetailsCmd Class Reference

#include <ProximIUDetailsCmd.hh>

Inheritance diagram for ProximIUDetailsCmd:
Inheritance graph
Collaboration diagram for ProximIUDetailsCmd:
Collaboration graph

Public Member Functions

 ProximIUDetailsCmd (const TTAMachine::ImmediateUnit &iu)
 
virtual ~ProximIUDetailsCmd ()
 
virtual bool Do ()
 
- Public Member Functions inherited from ComponentCommand
 ComponentCommand ()
 
virtual ~ComponentCommand ()
 
wxWindow * parentWindow ()
 
void setParentWindow (wxWindow *window)
 

Private Attributes

const TTAMachine::ImmediateUnitiu_
 Immediate unit to display.
 

Detailed Description

Command for displaying immediate unit details in the machine window component details pane.

Definition at line 46 of file ProximIUDetailsCmd.hh.

Constructor & Destructor Documentation

◆ ProximIUDetailsCmd()

ProximIUDetailsCmd::ProximIUDetailsCmd ( const TTAMachine::ImmediateUnit iu)

The Constructor.

Parameters
iuImmediate unit to display.

Definition at line 53 of file ProximIUDetailsCmd.cc.

53 :
54 ComponentCommand(), iu_(iu) {
55}
const TTAMachine::ImmediateUnit & iu_
Immediate unit to display.

◆ ~ProximIUDetailsCmd()

ProximIUDetailsCmd::~ProximIUDetailsCmd ( )
virtual

The Destructor.

Definition at line 61 of file ProximIUDetailsCmd.cc.

61 {
62}

Member Function Documentation

◆ Do()

bool ProximIUDetailsCmd::Do ( )
virtual

Executes the command.

Implements ComponentCommand.

Definition at line 68 of file ProximIUDetailsCmd.cc.

68 {
69
70 string iuName = iu_.name();
71
74
75 const UtilizationStats& stats =
77
78 // Append component type and name to the details widget.
80 machineWin->appendDetails(iuName + "\n\n");
81
82 // Append registers to the details widget.
83 machineWin->appendDetails(
85 LongImmediateUnitState& iuState =
86 machineState.longImmediateUnitState(iuName);
87
88 for (int i = 0; i < iuState.immediateRegisterCount(); i++) {
89 machineWin->appendDetails(" " + Conversion::toString(i) + ":\t");
90 int immValue = iuState.registerValue(i).sIntWordValue();
91 machineWin->appendDetails(Conversion::toString(immValue) + "\n");
92 }
93
94 // Append register access statistics to the utilization widget.
95 machineWin->appendUtilizationData("Register access statistics:\n\n");
96
97 int usedRegCount = 0;
98 for (int i = 0; i < iuState.immediateRegisterCount(); i++) {
99 ClockCycleCount reads = stats.registerReads(iuName, i);
100 ClockCycleCount writes = stats.registerWrites(iuName, i);
101 if (reads > 0 || writes > 0) {
102 usedRegCount++;
103 }
104 machineWin->appendUtilizationData(
105 Conversion::toString(i) + + ": " +
106 Conversion::toString(reads) + " reads, " +
107 Conversion::toString(writes) + " writes.\n");
108 }
109
110 machineWin->appendUtilizationData(
111 "\nTotal of " + Conversion::toString(usedRegCount) +
112 " registers used.");
113
114 return true;
115}
CycleCount ClockCycleCount
Alias for ClockCycleCount.
static std::string toString(const T &source)
virtual int immediateRegisterCount() const
virtual SimValue & registerValue(int index)
LongImmediateUnitState & longImmediateUnitState(const std::string &name)
static const std::string MACH_WIN_IMMEDIATES_TITLE
Title for the machine state window immediate unit immediates list.
static const std::string MACH_WIN_IU_LABEL
Label precing immediate unit names in the machine state window.
void appendDetails(std::string text)
void appendUtilizationData(std::string text)
static TracedSimulatorFrontend * frontend()
static ProximMachineStateWindow * machineStateWindow()
SIntWord sIntWordValue() const
Definition SimValue.cc:944
const UtilizationStats & utilizationStatistics(int core=-1)
MachineState & machineState(int core=-1)
virtual TCEString name() const
ClockCycleCount registerReads(const std::string &rfName, int registerIndex) const
ClockCycleCount registerWrites(const std::string &rfName, int registerIndex) const

References ProximMachineStateWindow::appendDetails(), ProximMachineStateWindow::appendUtilizationData(), ProximToolbox::frontend(), LongImmediateUnitState::immediateRegisterCount(), iu_, MachineState::longImmediateUnitState(), ProximConstants::MACH_WIN_IMMEDIATES_TITLE, ProximConstants::MACH_WIN_IU_LABEL, SimulatorFrontend::machineState(), ProximToolbox::machineStateWindow(), TTAMachine::Component::name(), UtilizationStats::registerReads(), LongImmediateUnitState::registerValue(), UtilizationStats::registerWrites(), SimValue::sIntWordValue(), Conversion::toString(), and SimulatorFrontend::utilizationStatistics().

Here is the call graph for this function:

Member Data Documentation

◆ iu_

const TTAMachine::ImmediateUnit& ProximIUDetailsCmd::iu_
private

Immediate unit to display.

Definition at line 53 of file ProximIUDetailsCmd.hh.

Referenced by Do().


The documentation for this class was generated from the following files: