fu_pool.cc (10728:0fd6a08a7332) fu_pool.cc (10807:dac26eb4cb64)
1/*
2 * Copyright (c) 2012-2013 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 75 unchanged lines hidden (view full) ---

84 : SimObject(p)
85{
86 numFU = 0;
87
88 funcUnits.clear();
89
90 for (int i = 0; i < Num_OpClasses; ++i) {
91 maxOpLatencies[i] = Cycles(0);
1/*
2 * Copyright (c) 2012-2013 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 75 unchanged lines hidden (view full) ---

84 : SimObject(p)
85{
86 numFU = 0;
87
88 funcUnits.clear();
89
90 for (int i = 0; i < Num_OpClasses; ++i) {
91 maxOpLatencies[i] = Cycles(0);
92 maxIssueLatencies[i] = Cycles(0);
92 pipelined[i] = true;
93 }
94
95 //
96 // Iterate through the list of FUDescData structures
97 //
98 const vector<FUDesc *> &paramList = p->FUList;
99 for (FUDDiterator i = paramList.begin(); i != paramList.end(); ++i) {
100

--- 17 unchanged lines hidden (view full) ---

118 capabilityList.set((*j)->opClass);
119
120 // Add each of the FU's that will have this capability to the
121 // appropriate queue.
122 for (int k = 0; k < (*i)->number; ++k)
123 fuPerCapList[(*j)->opClass].addFU(numFU + k);
124
125 // indicate that this FU has the capability
93 }
94
95 //
96 // Iterate through the list of FUDescData structures
97 //
98 const vector<FUDesc *> &paramList = p->FUList;
99 for (FUDDiterator i = paramList.begin(); i != paramList.end(); ++i) {
100

--- 17 unchanged lines hidden (view full) ---

118 capabilityList.set((*j)->opClass);
119
120 // Add each of the FU's that will have this capability to the
121 // appropriate queue.
122 for (int k = 0; k < (*i)->number; ++k)
123 fuPerCapList[(*j)->opClass].addFU(numFU + k);
124
125 // indicate that this FU has the capability
126 fu->addCapability((*j)->opClass, (*j)->opLat, (*j)->issueLat);
126 fu->addCapability((*j)->opClass, (*j)->opLat, (*j)->pipelined);
127
128 if ((*j)->opLat > maxOpLatencies[(*j)->opClass])
129 maxOpLatencies[(*j)->opClass] = (*j)->opLat;
130
127
128 if ((*j)->opLat > maxOpLatencies[(*j)->opClass])
129 maxOpLatencies[(*j)->opClass] = (*j)->opLat;
130
131 if ((*j)->issueLat > maxIssueLatencies[(*j)->opClass])
132 maxIssueLatencies[(*j)->opClass] = (*j)->issueLat;
131 if (!(*j)->pipelined)
132 pipelined[(*j)->opClass] = false;
133 }
134
135 numFU++;
136
137 // Add the appropriate number of copies of this FU to the list
138 fu->name = (*i)->name() + "(0)";
139 funcUnits.push_back(fu);
140

--- 131 unchanged lines hidden ---
133 }
134
135 numFU++;
136
137 // Add the appropriate number of copies of this FU to the list
138 fu->name = (*i)->name() + "(0)";
139 funcUnits.push_back(fu);
140

--- 131 unchanged lines hidden ---