diff options
author | Rekai Gonzalez Alberquilla <Rekai.GonzalezAlberquilla@arm.com> | 2015-05-05 16:47:24 +0100 |
---|---|---|
committer | Rekai Gonzalez Alberquilla <Rekai.GonzalezAlberquilla@arm.com> | 2015-05-05 16:47:24 +0100 |
commit | 21f8242430c7a1935a892aac1c26b970b306b113 (patch) | |
tree | ed0a865314e7b0fef98bd3e9199d3e23ee1464df /src/cpu | |
parent | 8faeec44a69ee56ca9252cd36a2bb8e22d02bddd (diff) | |
download | gem5-21f8242430c7a1935a892aac1c26b970b306b113.tar.xz |
cpu: Change literal integer constants to meaningful labels
fu_pool and inst_queue were using -1 for "no such FU" and -2 for "all those
FUs are busy at the moment" when requesting for a FU and replying. This
patch introduces new constants NoCapableFU and NoFreeFU respectively.
In addition, the condition (idx == -2 || idx != -1) is equivalent to
(idx != -1), so this patch also simplifies that.
--HG--
extra : rebase_source : 4833717b9d1e09d7594d1f34f882e13fc4b86846
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/o3/fu_pool.hh | 13 | ||||
-rw-r--r-- | src/cpu/o3/inst_queue_impl.hh | 6 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/cpu/o3/fu_pool.hh b/src/cpu/o3/fu_pool.hh index e6bb8cb8e..b6e9c126a 100644 --- a/src/cpu/o3/fu_pool.hh +++ b/src/cpu/o3/fu_pool.hh @@ -134,12 +134,17 @@ class FUPool : public SimObject FUPool(const Params *p); ~FUPool(); + static constexpr auto NoCapableFU = -2; + static constexpr auto NoFreeFU = -1; /** - * Gets a FU providing the requested capability. Will mark the unit as busy, - * but leaves the freeing of the unit up to the IEW stage. + * Gets a FU providing the requested capability. Will mark the + * unit as busy, but leaves the freeing of the unit up to the IEW + * stage. + * * @param capability The capability requested. - * @return Returns -2 if the FU pool does not have the capability, -1 if - * there is no free FU, and the FU's index otherwise. + * @return Returns NoCapableFU if the FU pool does not have the + * capability, NoFreeFU if there is no free FU, and the FU's index + * otherwise. */ int getUnit(OpClass capability); diff --git a/src/cpu/o3/inst_queue_impl.hh b/src/cpu/o3/inst_queue_impl.hh index 516d526b1..7352c622b 100644 --- a/src/cpu/o3/inst_queue_impl.hh +++ b/src/cpu/o3/inst_queue_impl.hh @@ -801,21 +801,21 @@ InstructionQueue<Impl>::scheduleReadyInsts() continue; } - int idx = -2; + int idx = FUPool::NoCapableFU; Cycles op_latency = Cycles(1); ThreadID tid = issuing_inst->threadNumber; if (op_class != No_OpClass) { idx = fuPool->getUnit(op_class); issuing_inst->isFloating() ? fpAluAccesses++ : intAluAccesses++; - if (idx > -1) { + if (idx > FUPool::NoFreeFU) { op_latency = fuPool->getOpLatency(op_class); } } // If we have an instruction that doesn't require a FU, or a // valid FU, then schedule for execution. - if (idx == -2 || idx != -1) { + if (idx != FUPool::NoFreeFU) { if (op_latency == Cycles(1)) { i2e_info->size++; instsToExecute.push_back(issuing_inst); |