Collects immediate transport capabilities for the operation.
104 {
105
106 using std::make_pair;
107
112 std::set<const TTAMachine::Bus*> connectedBuses =
114 for (
const Bus* bus : connectedBuses) {
115 if (bus->immediateWidth() < 1) {
116 continue;
117 }
118 result.insert(
119 make_pair(
121 ImmInfoValue(bus->immediateWidth(), bus->signExtends())));
122 }
123
124 for (
const ImmediateUnit* iu : mach.immediateUnitNavigator()) {
126 for (auto& it : mach.instructionTemplateNavigator()) {
127 int supportedWidth = it->supportedWidth(*iu);
128 if (supportedWidth < 1) {
129 continue;
130 }
131
132 result.insert(
133 make_pair(
136 }
137 }
138 }
139 }
140}
#define assert(condition)
static std::set< const TTAMachine::Bus * > connectedSourceBuses(const TTAMachine::Port &port)
static bool isConnected(const TTAMachine::Port &sourcePort, const TTAMachine::Port &destinationPort, const TTAMachine::Guard *guard=NULL)
static TCEString toUpper(const TCEString &str, const std::locale &loc=std::locale())
FunctionUnit * parentUnit() const
virtual Machine * machine() const
virtual FUPort * port(int operand) const
const std::string & name() const