gem5  v20.1.0.0
fplib.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012-2013, 2017-2018 ARM Limited
3  * Copyright (c) 2020 Metempsy Technology Consulting
4  * All rights reserved
5  *
6  * The license below extends only to copyright in the software and shall
7  * not be construed as granting a license to any other intellectual
8  * property including but not limited to intellectual property relating
9  * to a hardware implementation of the functionality of the software
10  * licensed hereunder. You may use the software subject to the license
11  * terms below provided that you ensure that this notice is replicated
12  * unmodified and in its entirety in all distributions of the software,
13  * modified or unmodified, in source code or in binary form.
14  *
15  * Redistribution and use in source and binary forms, with or without
16  * modification, are permitted provided that the following conditions are
17  * met: redistributions of source code must retain the above copyright
18  * notice, this list of conditions and the following disclaimer;
19  * redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in the
21  * documentation and/or other materials provided with the distribution;
22  * neither the name of the copyright holders nor the names of its
23  * contributors may be used to endorse or promote products derived from
24  * this software without specific prior written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37  */
38 
47 #ifndef __ARCH_ARM_INSTS_FPLIB_HH__
48 #define __ARCH_ARM_INSTS_FPLIB_HH__
49 
50 #include <stdint.h>
51 
52 #include "arch/arm/miscregs.hh"
53 
54 namespace ArmISA
55 {
56 
57 enum FPRounding {
64 };
65 
66 static inline FPRounding
67 FPCRRounding(FPSCR &fpscr)
68 {
69  return (FPRounding)((uint32_t)fpscr >> 22 & 3);
70 }
71 
73 template <class T>
74 T fplibAbs(T op);
76 template <class T>
77 T fplibAdd(T op1, T op2, FPSCR &fpscr);
79 template <class T>
80 int fplibCompare(T op1, T op2, bool signal_nans, FPSCR &fpscr);
82 template <class T>
83 bool fplibCompareEQ(T op1, T op2, FPSCR &fpscr);
85 template <class T>
86 bool fplibCompareGE(T op1, T op2, FPSCR &fpscr);
88 template <class T>
89 bool fplibCompareGT(T op1, T op2, FPSCR &fpscr);
91 template <class T>
92 bool fplibCompareUN(T op1, T op2, FPSCR &fpscr);
94 template <class T1, class T2>
95 T2 fplibConvert(T1 op, FPRounding rounding, FPSCR &fpscr);
97 template <class T>
98 T fplibDiv(T op1, T op2, FPSCR &fpscr);
100 template <class T>
101 T fplibExpA(T op);
103 template <class T>
104 T fplibMax(T op1, T op2, FPSCR &fpscr);
106 template <class T>
107 T fplibMaxNum(T op1, T op2, FPSCR &fpscr);
109 template <class T>
110 T fplibMin(T op1, T op2, FPSCR &fpscr);
112 template <class T>
113 T fplibMinNum(T op1, T op2, FPSCR &fpscr);
115 template <class T>
116 T fplibMul(T op1, T op2, FPSCR &fpscr);
118 template <class T>
119 T fplibMulAdd(T addend, T op1, T op2, FPSCR &fpscr);
121 template <class T>
122 T fplibMulX(T op1, T op2, FPSCR &fpscr);
124 template <class T>
125 T fplibNeg(T op);
127 template <class T>
128 T fplibRSqrtEstimate(T op, FPSCR &fpscr);
130 template <class T>
131 T fplibRSqrtStepFused(T op1, T op2, FPSCR &fpscr);
133 template <class T>
134 T fplibRecipEstimate(T op, FPSCR &fpscr);
136 template <class T>
137 T fplibRecipStepFused(T op1, T op2, FPSCR &fpscr);
139 template <class T>
140 T fplibRecpX(T op, FPSCR &fpscr);
142 template <class T>
143 T fplibRoundInt(T op, FPRounding rounding, bool exact, FPSCR &fpscr);
145 template <class T>
146 T fplibScale(T op1, T op2, FPSCR &fpscr);
148 template <class T>
149 T fplibSqrt(T op, FPSCR &fpscr);
151 template <class T>
152 T fplibSub(T op1, T op2, FPSCR &fpscr);
154 template <class T>
155 T fplibTrigMulAdd(uint8_t coeff_index, T op1, T op2, FPSCR &fpscr);
157 template <class T>
158 T fplibTrigSMul(T op1, T op2, FPSCR &fpscr);
160 template <class T>
161 T fplibTrigSSel(T op1, T op2, FPSCR &fpscr);
163 template <class T1, class T2>
164 T2 fplibFPToFixed(T1 op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr);
166 template <class T>
167 T fplibFixedToFP(uint64_t op, int fbits, bool u, FPRounding rounding,
168  FPSCR &fpscr);
170 template <class T>
171 T fplibInfinity(int sgn);
173 template <class T>
174 T fplibDefaultNaN();
176 uint32_t fplibFPToFixedJS(uint64_t op, FPSCR &fpscr, bool Is64, uint8_t &nz);
177 
178 /* Function specializations... */
179 template <>
180 uint16_t fplibAbs(uint16_t op);
181 template <>
182 uint32_t fplibAbs(uint32_t op);
183 template <>
184 uint64_t fplibAbs(uint64_t op);
185 template <>
186 uint16_t fplibAdd(uint16_t op1, uint16_t op2, FPSCR &fpscr);
187 template <>
188 uint32_t fplibAdd(uint32_t op1, uint32_t op2, FPSCR &fpscr);
189 template <>
190 uint64_t fplibAdd(uint64_t op1, uint64_t op2, FPSCR &fpscr);
191 template <>
192 int fplibCompare(uint16_t op1, uint16_t op2, bool signal_nans, FPSCR &fpscr);
193 template <>
194 int fplibCompare(uint32_t op1, uint32_t op2, bool signal_nans, FPSCR &fpscr);
195 template <>
196 int fplibCompare(uint64_t op1, uint64_t op2, bool signal_nans, FPSCR &fpscr);
197 template <>
198 bool fplibCompareEQ(uint16_t op1, uint16_t op2, FPSCR &fpscr);
199 template <>
200 bool fplibCompareEQ(uint32_t op1, uint32_t op2, FPSCR &fpscr);
201 template <>
202 bool fplibCompareEQ(uint64_t op1, uint64_t op2, FPSCR &fpscr);
203 template <>
204 bool fplibCompareGE(uint16_t op1, uint16_t op2, FPSCR &fpscr);
205 template <>
206 bool fplibCompareGE(uint32_t op1, uint32_t op2, FPSCR &fpscr);
207 template <>
208 bool fplibCompareGE(uint64_t op1, uint64_t op2, FPSCR &fpscr);
209 template <>
210 bool fplibCompareGT(uint16_t op1, uint16_t op2, FPSCR &fpscr);
211 template <>
212 bool fplibCompareGT(uint32_t op1, uint32_t op2, FPSCR &fpscr);
213 template <>
214 bool fplibCompareGT(uint64_t op1, uint64_t op2, FPSCR &fpscr);
215 template <>
216 bool fplibCompareUN(uint16_t op1, uint16_t op2, FPSCR &fpscr);
217 template <>
218 bool fplibCompareUN(uint32_t op1, uint32_t op2, FPSCR &fpscr);
219 template <>
220 bool fplibCompareUN(uint64_t op1, uint64_t op2, FPSCR &fpscr);
221 template <>
222 uint16_t fplibConvert(uint32_t op, FPRounding rounding, FPSCR &fpscr);
223 template <>
224 uint16_t fplibConvert(uint64_t op, FPRounding rounding, FPSCR &fpscr);
225 template <>
226 uint32_t fplibConvert(uint16_t op, FPRounding rounding, FPSCR &fpscr);
227 template <>
228 uint32_t fplibConvert(uint64_t op, FPRounding rounding, FPSCR &fpscr);
229 template <>
230 uint64_t fplibConvert(uint16_t op, FPRounding rounding, FPSCR &fpscr);
231 template <>
232 uint64_t fplibConvert(uint32_t op, FPRounding rounding, FPSCR &fpscr);
233 template <>
234 uint16_t fplibDiv(uint16_t op1, uint16_t op2, FPSCR &fpscr);
235 template <>
236 uint32_t fplibDiv(uint32_t op1, uint32_t op2, FPSCR &fpscr);
237 template <>
238 uint64_t fplibDiv(uint64_t op1, uint64_t op2, FPSCR &fpscr);
239 template <>
240 uint16_t fplibExpA(uint16_t op);
241 template <>
242 uint32_t fplibExpA(uint32_t op);
243 template <>
244 uint64_t fplibExpA(uint64_t op);
245 template <>
246 uint16_t fplibMax(uint16_t op1, uint16_t op2, FPSCR &fpscr);
247 template <>
248 uint32_t fplibMax(uint32_t op1, uint32_t op2, FPSCR &fpscr);
249 template <>
250 uint64_t fplibMax(uint64_t op1, uint64_t op2, FPSCR &fpscr);
251 template <>
252 uint16_t fplibMaxNum(uint16_t op1, uint16_t op2, FPSCR &fpscr);
253 template <>
254 uint32_t fplibMaxNum(uint32_t op1, uint32_t op2, FPSCR &fpscr);
255 template <>
256 uint64_t fplibMaxNum(uint64_t op1, uint64_t op2, FPSCR &fpscr);
257 template <>
258 uint16_t fplibMin(uint16_t op1, uint16_t op2, FPSCR &fpscr);
259 template <>
260 uint32_t fplibMin(uint32_t op1, uint32_t op2, FPSCR &fpscr);
261 template <>
262 uint64_t fplibMin(uint64_t op1, uint64_t op2, FPSCR &fpscr);
263 template <>
264 uint16_t fplibMinNum(uint16_t op1, uint16_t op2, FPSCR &fpscr);
265 template <>
266 uint32_t fplibMinNum(uint32_t op1, uint32_t op2, FPSCR &fpscr);
267 template <>
268 uint64_t fplibMinNum(uint64_t op1, uint64_t op2, FPSCR &fpscr);
269 template <>
270 uint16_t fplibMul(uint16_t op1, uint16_t op2, FPSCR &fpscr);
271 template <>
272 uint32_t fplibMul(uint32_t op1, uint32_t op2, FPSCR &fpscr);
273 template <>
274 uint64_t fplibMul(uint64_t op1, uint64_t op2, FPSCR &fpscr);
275 template <>
276 uint16_t fplibMulAdd(uint16_t addend, uint16_t op1, uint16_t op2,
277  FPSCR &fpscr);
278 template <>
279 uint32_t fplibMulAdd(uint32_t addend, uint32_t op1, uint32_t op2,
280  FPSCR &fpscr);
281 template <>
282 uint64_t fplibMulAdd(uint64_t addend, uint64_t op1, uint64_t op2,
283  FPSCR &fpscr);
284 template <>
285 uint16_t fplibMulX(uint16_t op1, uint16_t op2, FPSCR &fpscr);
286 template <>
287 uint32_t fplibMulX(uint32_t op1, uint32_t op2, FPSCR &fpscr);
288 template <>
289 uint64_t fplibMulX(uint64_t op1, uint64_t op2, FPSCR &fpscr);
290 template <>
291 uint16_t fplibNeg(uint16_t op);
292 template <>
293 uint32_t fplibNeg(uint32_t op);
294 template <>
295 uint64_t fplibNeg(uint64_t op);
296 template <>
297 uint16_t fplibRSqrtEstimate(uint16_t op, FPSCR &fpscr);
298 template <>
299 uint32_t fplibRSqrtEstimate(uint32_t op, FPSCR &fpscr);
300 template<>
301 uint64_t fplibRSqrtEstimate(uint64_t op, FPSCR &fpscr);
302 template <>
303 uint16_t fplibRSqrtStepFused(uint16_t op1, uint16_t op2, FPSCR &fpscr);
304 template <>
305 uint32_t fplibRSqrtStepFused(uint32_t op1, uint32_t op2, FPSCR &fpscr);
306 template <>
307 uint64_t fplibRSqrtStepFused(uint64_t op1, uint64_t op2, FPSCR &fpscr);
308 template <>
309 uint16_t fplibRecipEstimate(uint16_t op, FPSCR &fpscr);
310 template <>
311 uint32_t fplibRecipEstimate(uint32_t op, FPSCR &fpscr);
312 template <>
313 uint64_t fplibRecipEstimate(uint64_t op, FPSCR &fpscr);
314 template <>
315 uint16_t fplibRecipStepFused(uint16_t op1, uint16_t op2, FPSCR &fpscr);
316 template <>
317 uint32_t fplibRecipStepFused(uint32_t op1, uint32_t op2, FPSCR &fpscr);
318 template <>
319 uint64_t fplibRecipStepFused(uint64_t op1, uint64_t op2, FPSCR &fpscr);
320 template <>
321 uint16_t fplibRecpX(uint16_t op, FPSCR &fpscr);
322 template <>
323 uint32_t fplibRecpX(uint32_t op, FPSCR &fpscr);
324 template <>
325 uint64_t fplibRecpX(uint64_t op, FPSCR &fpscr);
326 template <>
327 uint16_t fplibRoundInt(uint16_t op, FPRounding rounding, bool exact,
328  FPSCR &fpscr);
329 template <>
330 uint32_t fplibRoundInt(uint32_t op, FPRounding rounding, bool exact,
331  FPSCR &fpscr);
332 template <>
333 uint64_t fplibRoundInt(uint64_t op, FPRounding rounding, bool exact,
334  FPSCR &fpscr);
335 template <>
336 uint16_t fplibScale(uint16_t op1, uint16_t op2, FPSCR &fpscr);
337 template <>
338 uint32_t fplibScale(uint32_t op1, uint32_t op2, FPSCR &fpscr);
339 template <>
340 uint64_t fplibScale(uint64_t op1, uint64_t op2, FPSCR &fpscr);
341 template <>
342 uint16_t fplibSqrt(uint16_t op, FPSCR &fpscr);
343 template <>
344 uint32_t fplibSqrt(uint32_t op, FPSCR &fpscr);
345 template <>
346 uint64_t fplibSqrt(uint64_t op, FPSCR &fpscr);
347 template <>
348 uint16_t fplibSub(uint16_t op1, uint16_t op2, FPSCR &fpscr);
349 template <>
350 uint32_t fplibSub(uint32_t op1, uint32_t op2, FPSCR &fpscr);
351 template <>
352 uint64_t fplibSub(uint64_t op1, uint64_t op2, FPSCR &fpscr);
353 template <>
354 uint16_t fplibTrigMulAdd(uint8_t coeff_index, uint16_t op1, uint16_t op2,
355  FPSCR &fpscr);
356 template <>
357 uint32_t fplibTrigMulAdd(uint8_t coeff_index, uint32_t op1, uint32_t op2,
358  FPSCR &fpscr);
359 template <>
360 uint64_t fplibTrigMulAdd(uint8_t coeff_index, uint64_t op1, uint64_t op2,
361  FPSCR &fpscr);
362 template <>
363 uint16_t fplibTrigSMul(uint16_t op1, uint16_t op2, FPSCR &fpscr);
364 template <>
365 uint32_t fplibTrigSMul(uint32_t op1, uint32_t op2, FPSCR &fpscr);
366 template <>
367 uint64_t fplibTrigSMul(uint64_t op1, uint64_t op2, FPSCR &fpscr);
368 template <>
369 uint16_t fplibTrigSSel(uint16_t op1, uint16_t op2, FPSCR &fpscr);
370 template <>
371 uint32_t fplibTrigSSel(uint32_t op1, uint32_t op2, FPSCR &fpscr);
372 template <>
373 uint64_t fplibTrigSSel(uint64_t op1, uint64_t op2, FPSCR &fpscr);
374 template <>
375 uint16_t fplibFPToFixed(uint16_t op, int fbits, bool u, FPRounding rounding,
376  FPSCR &fpscr);
377 template <>
378 uint32_t fplibFPToFixed(uint16_t op, int fbits, bool u, FPRounding rounding,
379  FPSCR &fpscr);
380 template <>
381 uint32_t fplibFPToFixed(uint32_t op, int fbits, bool u, FPRounding rounding,
382  FPSCR &fpscr);
383 template <>
384 uint32_t fplibFPToFixed(uint64_t op, int fbits, bool u, FPRounding rounding,
385  FPSCR &fpscr);
386 template <>
387 uint64_t fplibFPToFixed(uint16_t op, int fbits, bool u, FPRounding rounding,
388  FPSCR &fpscr);
389 template <>
390 uint64_t fplibFPToFixed(uint32_t op, int fbits, bool u, FPRounding rounding,
391  FPSCR &fpscr);
392 template <>
393 uint64_t fplibFPToFixed(uint64_t op, int fbits, bool u, FPRounding rounding,
394  FPSCR &fpscr);
395 template <>
396 uint16_t fplibFixedToFP(uint64_t op, int fbits, bool u, FPRounding rounding,
397  FPSCR &fpscr);
398 template <>
399 uint32_t fplibFixedToFP(uint64_t op, int fbits, bool u, FPRounding rounding,
400  FPSCR &fpscr);
401 template <>
402 uint64_t fplibFixedToFP(uint64_t op, int fbits, bool u, FPRounding rounding,
403  FPSCR &fpscr);
404 template <>
405 uint16_t fplibInfinity(int sgn);
406 template <>
407 uint32_t fplibInfinity(int sgn);
408 template <>
409 uint64_t fplibInfinity(int sgn);
410 template <>
411 uint16_t fplibDefaultNaN();
412 template <>
413 uint32_t fplibDefaultNaN();
414 template <>
415 uint64_t fplibDefaultNaN();
416 }
417 
418 #endif
ArmISA::fplibAbs
uint16_t fplibAbs(uint16_t op)
Definition: fplib.cc:2369
ArmISA::fplibNeg
uint16_t fplibNeg(uint16_t op)
Definition: fplib.cc:3488
ArmISA::fplibRoundInt
uint16_t fplibRoundInt(uint16_t op, FPRounding rounding, bool exact, FPSCR &fpscr)
Definition: fplib.cc:4080
ArmISA::fplibCompareEQ
bool fplibCompareEQ(uint16_t a, uint16_t b, FPSCR &fpscr)
Definition: fplib.cc:2249
ArmISA::fplibExpA
uint16_t fplibExpA(uint16_t op)
Definition: fplib.cc:2935
ArmISA::fplibCompareGT
bool fplibCompareGT(uint16_t a, uint16_t b, FPSCR &fpscr)
Definition: fplib.cc:2269
ArmISA::fplibRSqrtEstimate
uint16_t fplibRSqrtEstimate(uint16_t op, FPSCR &fpscr)
Definition: fplib.cc:3528
ArmISA::fplibRSqrtStepFused
uint16_t fplibRSqrtStepFused(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3633
X86ISA::op
Bitfield< 4 > op
Definition: types.hh:78
ArmISA
Definition: ccregs.hh:41
ArmISA::fplibDefaultNaN
uint16_t fplibDefaultNaN()
Foating-point value for default NaN.
Definition: fplib.cc:5021
ArmISA::fplibMin
uint16_t fplibMin(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3272
ArmISA::fplibMulAdd
uint16_t fplibMulAdd(uint16_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:2875
ArmISA::FPCRRounding
static FPRounding FPCRRounding(FPSCR &fpscr)
Definition: fplib.hh:67
ArmISA::FPRounding_ZERO
@ FPRounding_ZERO
Definition: fplib.hh:61
ArmISA::fplibRecpX
uint16_t fplibRecpX(uint16_t op, FPSCR &fpscr)
Definition: fplib.cc:3999
ArmISA::fplibScale
uint16_t fplibScale(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:4275
ArmISA::FPRounding_TIEEVEN
@ FPRounding_TIEEVEN
Definition: fplib.hh:58
ArmISA::fplibConvert
uint16_t fplibConvert(uint32_t op, FPRounding rounding, FPSCR &fpscr)
Definition: fplib.cc:2624
ArmISA::FPRounding_NEGINF
@ FPRounding_NEGINF
Definition: fplib.hh:60
ArmISA::fplibFPToFixedJS
uint32_t fplibFPToFixedJS(uint64_t op, FPSCR &fpscr, bool is64, uint8_t &nz)
Floating-point JS convert to a signed integer, with rounding to zero.
Definition: fplib.cc:4752
ArmISA::fplibSqrt
uint16_t fplibSqrt(uint16_t op, FPSCR &fpscr)
Definition: fplib.cc:4305
ArmISA::FPRounding
FPRounding
Definition: fplib.hh:57
ArmISA::fplibFixedToFP
uint16_t fplibFixedToFP(uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
Floating-point convert from fixed-point.
Definition: fplib.cc:4963
ArmISA::fplibSub
uint16_t fplibSub(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:4335
ArmISA::fplibMulX
uint16_t fplibMulX(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3395
ArmISA::fplibTrigSMul
uint16_t fplibTrigSMul(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:4467
ArmISA::fplibMax
uint16_t fplibMax(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3179
ArmISA::fplibAdd
uint16_t fplibAdd(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:2390
ArmISA::fplibMul
uint16_t fplibMul(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3365
miscregs.hh
ArmISA::u
Bitfield< 22 > u
Definition: miscregs_types.hh:348
ArmISA::FPRounding_ODD
@ FPRounding_ODD
Definition: fplib.hh:63
ArmISA::fplibCompareUN
bool fplibCompareUN(uint16_t a, uint16_t b, FPSCR &fpscr)
Definition: fplib.cc:2279
ArmISA::fplibFPToFixed
uint16_t fplibFPToFixed(uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
Definition: fplib.cc:4635
ArmISA::fplibTrigMulAdd
uint16_t fplibTrigMulAdd(uint8_t coeff_index, uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:4365
ArmISA::fplibMaxNum
uint16_t fplibMaxNum(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3248
ArmISA::fplibInfinity
uint16_t fplibInfinity(int sgn)
Floating-point value for +/- infinity.
Definition: fplib.cc:5000
ArmISA::fplibCompare
int fplibCompare(uint16_t op1, uint16_t op2, bool signal_nans, FPSCR &fpscr)
Definition: fplib.cc:2420
ArmISA::FPRounding_TIEAWAY
@ FPRounding_TIEAWAY
Definition: fplib.hh:62
ArmISA::fplibRecipStepFused
uint16_t fplibRecipStepFused(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3909
ArmISA::FPRounding_POSINF
@ FPRounding_POSINF
Definition: fplib.hh:59
ArmISA::nz
nz
Definition: miscregs_types.hh:49
ArmISA::fplibDiv
uint16_t fplibDiv(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:2905
ArmISA::fplibRecipEstimate
uint16_t fplibRecipEstimate(uint16_t op, FPSCR &fpscr)
Definition: fplib.cc:3723
ArmISA::fplibMinNum
uint16_t fplibMinNum(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:3341
ArmISA::fplibCompareGE
bool fplibCompareGE(uint16_t a, uint16_t b, FPSCR &fpscr)
Definition: fplib.cc:2259
ArmISA::fplibTrigSSel
uint16_t fplibTrigSSel(uint16_t op1, uint16_t op2, FPSCR &fpscr)
Definition: fplib.cc:4525

Generated on Wed Sep 30 2020 14:02:00 for gem5 by doxygen 1.8.17