gem5 [DEVELOP-FOR-25.1]
Loading...
Searching...
No Matches
fplib.hh File Reference

Floating-point library code, which will gradually replace vfp.hh. More...

#include <stdint.h>
#include "arch/arm/regs/misc.hh"

Go to the source code of this file.

Namespaces

namespace  gem5
 Copyright (c) 2024 Arm Limited All rights reserved.
namespace  gem5::ArmISA

Enumerations

enum  gem5::ArmISA::FPRounding {
  gem5::ArmISA::FPRounding_TIEEVEN = 0 , gem5::ArmISA::FPRounding_POSINF = 1 , gem5::ArmISA::FPRounding_NEGINF = 2 , gem5::ArmISA::FPRounding_ZERO = 3 ,
  gem5::ArmISA::FPRounding_TIEAWAY = 4 , gem5::ArmISA::FPRounding_ODD = 5
}

Functions

static FPRounding gem5::ArmISA::FPCRRounding (FPSCR &fpscr)
template<class T>
gem5::ArmISA::fplibAbs (T op, FPCR fpcr=0)
 Floating-point absolute value.
template<class T>
gem5::ArmISA::fplibAdd (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point add.
template<class T>
int gem5::ArmISA::fplibCompare (T op1, T op2, bool signal_nans, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point compare (quiet and signaling).
template<class T>
bool gem5::ArmISA::fplibCompareEQ (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point compare equal.
template<class T>
bool gem5::ArmISA::fplibCompareGE (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point compare greater than or equal.
template<class T>
bool gem5::ArmISA::fplibCompareGT (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point compare greater than.
template<class T>
bool gem5::ArmISA::fplibCompareUN (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point compare unordered.
template<class T1, class T2>
T2 gem5::ArmISA::fplibConvert (T1 op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point convert precision.
template<class T>
gem5::ArmISA::fplibDiv (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point division.
template<class T1, class T2>
T2 gem5::ArmISA::fplibDot (T1 op1_a, T1 op1_b, T1 op2_a, T1 op2_b, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point 2-way dot-product.
template<class T>
gem5::ArmISA::fplibExpA (T op)
 Floating-point exponential accelerator.
template<class T>
gem5::ArmISA::fplibLogB (T op, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point base 2 logarithm.
template<class T>
gem5::ArmISA::fplibMax (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point maximum.
template<class T>
gem5::ArmISA::fplibMaxNum (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point maximum number.
template<class T>
gem5::ArmISA::fplibMin (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point minimum.
template<class T>
gem5::ArmISA::fplibMinNum (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point minimum number.
template<class T>
gem5::ArmISA::fplibMul (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point multiply.
template<class T>
gem5::ArmISA::fplibMulAdd (T addend, T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point multiply-add.
template<class T1, class T2>
T2 gem5::ArmISA::fplibMulAddH (T2 addend, T1 op1, T1 op2, FPSCR &fpscr, FPCR fpcr=0)
template<class T>
gem5::ArmISA::fplibMulX (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point multiply extended.
template<class T>
gem5::ArmISA::fplibNeg (T op, FPCR fpcr=0)
 Floating-point negate.
template<class T>
gem5::ArmISA::fplibRSqrtEstimate (T op, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point reciprocal square root estimate.
template<class T>
gem5::ArmISA::fplibRSqrtStepFused (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point reciprocal square root step.
template<class T>
gem5::ArmISA::fplibRecipEstimate (T op, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point reciprocal estimate.
template<class T>
gem5::ArmISA::fplibRecipStepFused (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point reciprocal step.
template<class T>
gem5::ArmISA::fplibRecpX (T op, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point reciprocal exponent.
template<class T>
gem5::ArmISA::fplibRoundInt (T op, FPRounding rounding, bool exact, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point convert to integer.
template<class T>
gem5::ArmISA::fplibRoundIntN (T op, FPRounding rounding, bool exact, int intsize, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point convert to integer.
template<class T>
gem5::ArmISA::fplibScale (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point adjust exponent.
template<class T>
gem5::ArmISA::fplibSqrt (T op, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point square root.
template<class T>
gem5::ArmISA::fplibSub (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point subtract.
template<class T>
gem5::ArmISA::fplibTrigMulAdd (uint8_t coeff_index, T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point trigonometric multiply-add coefficient.
template<class T>
gem5::ArmISA::fplibTrigSMul (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point trigonometric starting value.
template<class T>
gem5::ArmISA::fplibTrigSSel (T op1, T op2, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point trigonometric select coefficient.
template<class T1, class T2>
T2 gem5::ArmISA::fplibFPToFixed (T1 op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point convert to fixed-point.
template<class T>
gem5::ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr=0)
 Floating-point convert from fixed-point.
template<class T>
gem5::ArmISA::fplibInfinity (int sgn)
 Floating-point value for +/- infinity.
template<class T>
gem5::ArmISA::fplibDefaultNaN (FPCR fpcr=0)
 Foating-point value for default NaN.
uint32_t gem5::ArmISA::fplibFPToFixedJS (uint64_t op, FPSCR &fpscr, bool Is64, uint8_t &nz)
 Floating-point JS convert to a signed integer, with rounding to zero.
template<class T>
gem5::ArmISA::fplib32RSqrtStep (T op1, T op2, FPSCR &fpscr)
template<class T>
gem5::ArmISA::fplib32RecipStep (T op1, T op2, FPSCR &fpscr)
template<>
uint16_t gem5::ArmISA::fplibAbs (uint16_t op, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibAbs (uint32_t op, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibAbs (uint64_t op, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibAdd (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibAdd (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibAdd (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
int gem5::ArmISA::fplibCompare (uint16_t op1, uint16_t op2, bool signal_nans, FPSCR &fpscr, FPCR fpcr)
template<>
int gem5::ArmISA::fplibCompare (uint32_t op1, uint32_t op2, bool signal_nans, FPSCR &fpscr, FPCR fpcr)
template<>
int gem5::ArmISA::fplibCompare (uint64_t op1, uint64_t op2, bool signal_nans, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareEQ (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareEQ (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareEQ (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareGE (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareGE (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareGE (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareGT (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareGT (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareGT (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareUN (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareUN (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
bool gem5::ArmISA::fplibCompareUN (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibDiv (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibDiv (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibDiv (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibDot (uint16_t op1_a, uint16_t op1_b, uint16_t op2_a, uint16_t op2_b, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibExpA (uint16_t op)
template<>
uint32_t gem5::ArmISA::fplibExpA (uint32_t op)
template<>
uint64_t gem5::ArmISA::fplibExpA (uint64_t op)
template<>
uint16_t gem5::ArmISA::fplibLogB (uint16_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibLogB (uint32_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibLogB (uint64_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMax (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMax (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMax (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMaxNum (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMaxNum (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMaxNum (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMin (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMin (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMin (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMinNum (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMinNum (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMinNum (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMul (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMul (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMul (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMulAdd (uint16_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMulAdd (uint32_t addend, uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMulAdd (uint64_t addend, uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMulAddH (uint32_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibMulX (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibMulX (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibMulX (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibNeg (uint16_t op, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibNeg (uint32_t op, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibNeg (uint64_t op, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibRSqrtEstimate (uint16_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRSqrtEstimate (uint32_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRSqrtEstimate (uint64_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibRSqrtStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRSqrtStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRSqrtStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibRecipEstimate (uint16_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRecipEstimate (uint32_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRecipEstimate (uint64_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibRecipStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRecipStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRecipStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibRecpX (uint16_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRecpX (uint32_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRecpX (uint64_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibRoundInt (uint16_t op, FPRounding rounding, bool exact, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRoundInt (uint32_t op, FPRounding rounding, bool exact, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRoundInt (uint64_t op, FPRounding rounding, bool exact, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibRoundIntN (uint32_t op, FPRounding rounding, bool exact, int intsize, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibRoundIntN (uint64_t op, FPRounding rounding, bool exact, int intsize, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibScale (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibScale (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibScale (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibSqrt (uint16_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibSqrt (uint32_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibSqrt (uint64_t op, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibSub (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibSub (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibSub (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibTrigMulAdd (uint8_t coeff_index, uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibTrigMulAdd (uint8_t coeff_index, uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibTrigMulAdd (uint8_t coeff_index, uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibTrigSMul (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibTrigSMul (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibTrigSMul (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibTrigSSel (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibTrigSSel (uint32_t op1, uint32_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibTrigSSel (uint64_t op1, uint64_t op2, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplibInfinity (int sgn)
template<>
uint32_t gem5::ArmISA::fplibInfinity (int sgn)
template<>
uint64_t gem5::ArmISA::fplibInfinity (int sgn)
template<>
uint16_t gem5::ArmISA::fplibDefaultNaN (FPCR fpcr)
template<>
uint32_t gem5::ArmISA::fplibDefaultNaN (FPCR fpcr)
template<>
uint64_t gem5::ArmISA::fplibDefaultNaN (FPCR fpcr)
template<>
uint16_t gem5::ArmISA::fplib32RSqrtStep (uint16_t op1, uint16_t op2, FPSCR &fpscr)
template<>
uint16_t gem5::ArmISA::fplib32RecipStep (uint16_t op1, uint16_t op2, FPSCR &fpscr)
uint16_t gem5::ArmISA::fplibBfAdd (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfMax (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfMaxNum (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfMin (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfMinNum (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfMul (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint32_t gem5::ArmISA::fplibBfMulH (uint16_t op1, uint16_t op2, FPSCR &fpscr)
uint16_t gem5::ArmISA::fplibBfMulAdd (uint16_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint32_t gem5::ArmISA::fplibBfMulAddH (uint32_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfNeg (uint16_t op, FPCR fpcr)
uint16_t gem5::ArmISA::fplibBfSub (uint16_t op1, uint16_t op2, FPSCR &fpscr, FPCR fpcr)
uint32_t gem5::ArmISA::fplibAdd_Bf16 (uint32_t op1, uint32_t op2, FPSCR &fpscr)
uint16_t gem5::ArmISA::fplibConvertBF (uint32_t op, FPRounding rounding, FPSCR &fpscr, FPCR fpcr)
uint32_t gem5::ArmISA::fplibBfdotAdd (uint32_t addend, uint16_t op1_a, uint16_t op1_b, uint16_t op2_a, uint16_t op2_b, FPSCR &fpscr, FPCR fpcr)

Detailed Description

Floating-point library code, which will gradually replace vfp.hh.

For portability, this library does not use floating-point data types. Currently, C's standard integer types are used in the API, though this could be changed to something like class Fp32 { uint32_t x; }, etc.

Definition in file fplib.hh.


Generated on Mon Oct 27 2025 04:13:06 for gem5 by doxygen 1.14.0