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 --- |