fu_pool.hh (10814:46b6043bd32c) fu_pool.hh (11365:83c3e117464e)
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

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

129 typedef std::vector<FuncUnit *>::iterator fuListIterator;
130
131 public:
132 typedef FUPoolParams Params;
133 /** Constructs a FU pool. */
134 FUPool(const Params *p);
135 ~FUPool();
136
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

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

129 typedef std::vector<FuncUnit *>::iterator fuListIterator;
130
131 public:
132 typedef FUPoolParams Params;
133 /** Constructs a FU pool. */
134 FUPool(const Params *p);
135 ~FUPool();
136
137 static constexpr auto NoCapableFU = -2;
138 static constexpr auto NoFreeFU = -1;
137 /**
139 /**
138 * Gets a FU providing the requested capability. Will mark the unit as busy,
139 * but leaves the freeing of the unit up to the IEW stage.
140 * Gets a FU providing the requested capability. Will mark the
141 * unit as busy, but leaves the freeing of the unit up to the IEW
142 * stage.
143 *
140 * @param capability The capability requested.
144 * @param capability The capability requested.
141 * @return Returns -2 if the FU pool does not have the capability, -1 if
142 * there is no free FU, and the FU's index otherwise.
145 * @return Returns NoCapableFU if the FU pool does not have the
146 * capability, NoFreeFU if there is no free FU, and the FU's index
147 * otherwise.
143 */
144 int getUnit(OpClass capability);
145
146 /** Frees a FU at the end of this cycle. */
147 void freeUnitNextCycle(int fu_idx);
148
149 /** Frees all FUs on the list. */
150 void processFreeUnits();

--- 25 unchanged lines hidden ---
148 */
149 int getUnit(OpClass capability);
150
151 /** Frees a FU at the end of this cycle. */
152 void freeUnitNextCycle(int fu_idx);
153
154 /** Frees all FUs on the list. */
155 void processFreeUnits();

--- 25 unchanged lines hidden ---