summaryrefslogtreecommitdiff
path: root/src/cpu/func_unit.cc
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2015-04-29 22:35:22 -0500
committerNilay Vaish <nilay@cs.wisc.edu>2015-04-29 22:35:22 -0500
commit43335495754abac71377bbd6df0c668b60b22822 (patch)
tree62ca271baac3fafb041bf24acaaeef14f6ab8e97 /src/cpu/func_unit.cc
parent0dbd696aaef47205c1430b53841423c7d25455ed (diff)
downloadgem5-43335495754abac71377bbd6df0c668b60b22822.tar.xz
cpu: o3: replace issueLatency with bool pipelined
Currently, each op class has a parameter issueLat that denotes the cycles after which another op of the same class can be issued. As of now, this latency can either be one cycle (fully pipelined) or same as execution latency of the op (not at all pipelined). The fact that issueLat is a parameter of type Cycles makes one believe that it can be set to any value. To avoid the confusion, the parameter is being renamed as 'pipelined' with type boolean. If set to true, the op would execute in a fully pipelined fashion. Otherwise, it would execute in an unpipelined fashion.
Diffstat (limited to 'src/cpu/func_unit.cc')
-rw-r--r--src/cpu/func_unit.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/cpu/func_unit.cc b/src/cpu/func_unit.cc
index bb7427da5..6d009a440 100644
--- a/src/cpu/func_unit.cc
+++ b/src/cpu/func_unit.cc
@@ -52,7 +52,7 @@ FuncUnit::FuncUnit(const FuncUnit &fu)
for (int i = 0; i < Num_OpClasses; ++i) {
opLatencies[i] = fu.opLatencies[i];
- issueLatencies[i] = fu.issueLatencies[i];
+ pipelined[i] = fu.pipelined[i];
}
capabilityList = fu.capabilityList;
@@ -60,15 +60,15 @@ FuncUnit::FuncUnit(const FuncUnit &fu)
void
-FuncUnit::addCapability(OpClass cap, unsigned oplat, unsigned issuelat)
+FuncUnit::addCapability(OpClass cap, unsigned oplat, bool pipeline)
{
- if (issuelat == 0 || oplat == 0)
+ if (oplat == 0)
panic("FuncUnit: you don't really want a zero-cycle latency do you?");
capabilityList.set(cap);
opLatencies[cap] = oplat;
- issueLatencies[cap] = issuelat;
+ pipelined[cap] = pipeline;
}
bool
@@ -89,10 +89,10 @@ FuncUnit::opLatency(OpClass cap)
return opLatencies[cap];
}
-unsigned
-FuncUnit::issueLatency(OpClass capability)
+bool
+FuncUnit::isPipelined(OpClass capability)
{
- return issueLatencies[capability];
+ return pipelined[capability];
}
////////////////////////////////////////////////////////////////////////////