fu_pool.cc (8737:770ccf3af571) fu_pool.cc (9184:a1a8f137b796)
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

71FUPool::FUPool(const Params *p)
72 : SimObject(p)
73{
74 numFU = 0;
75
76 funcUnits.clear();
77
78 for (int i = 0; i < Num_OpClasses; ++i) {
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

71FUPool::FUPool(const Params *p)
72 : SimObject(p)
73{
74 numFU = 0;
75
76 funcUnits.clear();
77
78 for (int i = 0; i < Num_OpClasses; ++i) {
79 maxOpLatencies[i] = 0;
80 maxIssueLatencies[i] = 0;
79 maxOpLatencies[i] = Cycles(0);
80 maxIssueLatencies[i] = Cycles(0);
81 }
82
83 //
84 // Iterate through the list of FUDescData structures
85 //
86 const vector<FUDesc *> &paramList = p->FUList;
87 for (FUDDiterator i = paramList.begin(); i != paramList.end(); ++i) {
88

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

144 unitBusy.resize(numFU);
145
146 for (int i = 0; i < numFU; i++) {
147 unitBusy[i] = false;
148 }
149}
150
151void
81 }
82
83 //
84 // Iterate through the list of FUDescData structures
85 //
86 const vector<FUDesc *> &paramList = p->FUList;
87 for (FUDDiterator i = paramList.begin(); i != paramList.end(); ++i) {
88

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

144 unitBusy.resize(numFU);
145
146 for (int i = 0; i < numFU; i++) {
147 unitBusy[i] = false;
148 }
149}
150
151void
152FUPool::annotateMemoryUnits(unsigned hit_latency)
152FUPool::annotateMemoryUnits(Cycles hit_latency)
153{
154 maxOpLatencies[MemReadOp] = hit_latency;
155
156 fuListIterator i = funcUnits.begin();
157 fuListIterator iend = funcUnits.end();
158 for (; i != iend; ++i) {
159 if ((*i)->provides(MemReadOp))
160 (*i)->opLatency(MemReadOp) = hit_latency;

--- 122 unchanged lines hidden ---
153{
154 maxOpLatencies[MemReadOp] = hit_latency;
155
156 fuListIterator i = funcUnits.begin();
157 fuListIterator iend = funcUnits.end();
158 for (; i != iend; ++i) {
159 if ((*i)->provides(MemReadOp))
160 (*i)->opLatency(MemReadOp) = hit_latency;

--- 122 unchanged lines hidden ---