gem5
v20.1.0.0
|
Go to the source code of this file.
Namespaces | |
ArmISA | |
Enumerations | |
enum | ArmISA::FPRounding { ArmISA::FPRounding_TIEEVEN = 0, ArmISA::FPRounding_POSINF = 1, ArmISA::FPRounding_NEGINF = 2, ArmISA::FPRounding_ZERO = 3, ArmISA::FPRounding_TIEAWAY = 4, ArmISA::FPRounding_ODD = 5 } |
Functions | |
static FPRounding | ArmISA::FPCRRounding (FPSCR &fpscr) |
template<class T > | |
T | ArmISA::fplibAbs (T op) |
Floating-point absolute value. More... | |
template<class T > | |
T | ArmISA::fplibAdd (T op1, T op2, FPSCR &fpscr) |
Floating-point add. More... | |
template<class T > | |
int | ArmISA::fplibCompare (T op1, T op2, bool signal_nans, FPSCR &fpscr) |
Floating-point compare (quiet and signaling). More... | |
template<class T > | |
bool | ArmISA::fplibCompareEQ (T op1, T op2, FPSCR &fpscr) |
Floating-point compare equal. More... | |
template<class T > | |
bool | ArmISA::fplibCompareGE (T op1, T op2, FPSCR &fpscr) |
Floating-point compare greater than or equal. More... | |
template<class T > | |
bool | ArmISA::fplibCompareGT (T op1, T op2, FPSCR &fpscr) |
Floating-point compare greater than. More... | |
template<class T > | |
bool | ArmISA::fplibCompareUN (T op1, T op2, FPSCR &fpscr) |
Floating-point compare unordered. More... | |
template<class T1 , class T2 > | |
T2 | ArmISA::fplibConvert (T1 op, FPRounding rounding, FPSCR &fpscr) |
Floating-point convert precision. More... | |
template<class T > | |
T | ArmISA::fplibDiv (T op1, T op2, FPSCR &fpscr) |
Floating-point division. More... | |
template<class T > | |
T | ArmISA::fplibExpA (T op) |
Floating-point exponential accelerator. More... | |
template<class T > | |
T | ArmISA::fplibMax (T op1, T op2, FPSCR &fpscr) |
Floating-point maximum. More... | |
template<class T > | |
T | ArmISA::fplibMaxNum (T op1, T op2, FPSCR &fpscr) |
Floating-point maximum number. More... | |
template<class T > | |
T | ArmISA::fplibMin (T op1, T op2, FPSCR &fpscr) |
Floating-point minimum. More... | |
template<class T > | |
T | ArmISA::fplibMinNum (T op1, T op2, FPSCR &fpscr) |
Floating-point minimum number. More... | |
template<class T > | |
T | ArmISA::fplibMul (T op1, T op2, FPSCR &fpscr) |
Floating-point multiply. More... | |
template<class T > | |
T | ArmISA::fplibMulAdd (T addend, T op1, T op2, FPSCR &fpscr) |
Floating-point multiply-add. More... | |
template<class T > | |
T | ArmISA::fplibMulX (T op1, T op2, FPSCR &fpscr) |
Floating-point multiply extended. More... | |
template<class T > | |
T | ArmISA::fplibNeg (T op) |
Floating-point negate. More... | |
template<class T > | |
T | ArmISA::fplibRSqrtEstimate (T op, FPSCR &fpscr) |
Floating-point reciprocal square root estimate. More... | |
template<class T > | |
T | ArmISA::fplibRSqrtStepFused (T op1, T op2, FPSCR &fpscr) |
Floating-point reciprocal square root step. More... | |
template<class T > | |
T | ArmISA::fplibRecipEstimate (T op, FPSCR &fpscr) |
Floating-point reciprocal estimate. More... | |
template<class T > | |
T | ArmISA::fplibRecipStepFused (T op1, T op2, FPSCR &fpscr) |
Floating-point reciprocal step. More... | |
template<class T > | |
T | ArmISA::fplibRecpX (T op, FPSCR &fpscr) |
Floating-point reciprocal exponent. More... | |
template<class T > | |
T | ArmISA::fplibRoundInt (T op, FPRounding rounding, bool exact, FPSCR &fpscr) |
Floating-point convert to integer. More... | |
template<class T > | |
T | ArmISA::fplibScale (T op1, T op2, FPSCR &fpscr) |
Floating-point adjust exponent. More... | |
template<class T > | |
T | ArmISA::fplibSqrt (T op, FPSCR &fpscr) |
Floating-point square root. More... | |
template<class T > | |
T | ArmISA::fplibSub (T op1, T op2, FPSCR &fpscr) |
Floating-point subtract. More... | |
template<class T > | |
T | ArmISA::fplibTrigMulAdd (uint8_t coeff_index, T op1, T op2, FPSCR &fpscr) |
Floating-point trigonometric multiply-add coefficient. More... | |
template<class T > | |
T | ArmISA::fplibTrigSMul (T op1, T op2, FPSCR &fpscr) |
Floating-point trigonometric starting value. More... | |
template<class T > | |
T | ArmISA::fplibTrigSSel (T op1, T op2, FPSCR &fpscr) |
Floating-point trigonometric select coefficient. More... | |
template<class T1 , class T2 > | |
T2 | ArmISA::fplibFPToFixed (T1 op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
Floating-point convert to fixed-point. More... | |
template<> | |
uint16_t | ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
Floating-point convert from fixed-point. More... | |
template<> | |
uint16_t | ArmISA::fplibInfinity (int sgn) |
Floating-point value for +/- infinity. More... | |
template<> | |
uint16_t | ArmISA::fplibDefaultNaN () |
Foating-point value for default NaN. More... | |
uint32_t | ArmISA::fplibFPToFixedJS (uint64_t op, FPSCR &fpscr, bool Is64, uint8_t &nz) |
Floating-point JS convert to a signed integer, with rounding to zero. More... | |
template<> | |
uint16_t | ArmISA::fplibAbs (uint16_t op) |
template<> | |
uint32_t | ArmISA::fplibAbs (uint32_t op) |
template<> | |
uint64_t | ArmISA::fplibAbs (uint64_t op) |
template<> | |
uint16_t | ArmISA::fplibAdd (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibAdd (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibAdd (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
int | ArmISA::fplibCompare (uint16_t op1, uint16_t op2, bool signal_nans, FPSCR &fpscr) |
template<> | |
int | ArmISA::fplibCompare (uint32_t op1, uint32_t op2, bool signal_nans, FPSCR &fpscr) |
template<> | |
int | ArmISA::fplibCompare (uint64_t op1, uint64_t op2, bool signal_nans, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareEQ (uint16_t a, uint16_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareEQ (uint32_t a, uint32_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareEQ (uint64_t a, uint64_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareGE (uint16_t a, uint16_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareGE (uint32_t a, uint32_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareGE (uint64_t a, uint64_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareGT (uint16_t a, uint16_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareGT (uint32_t a, uint32_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareGT (uint64_t a, uint64_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareUN (uint16_t a, uint16_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareUN (uint32_t a, uint32_t b, FPSCR &fpscr) |
template<> | |
bool | ArmISA::fplibCompareUN (uint64_t a, uint64_t b, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibDiv (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibDiv (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibDiv (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibExpA (uint16_t op) |
template<> | |
uint32_t | ArmISA::fplibExpA (uint32_t op) |
template<> | |
uint64_t | ArmISA::fplibExpA (uint64_t op) |
template<> | |
uint16_t | ArmISA::fplibMax (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMax (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMax (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibMaxNum (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMaxNum (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMaxNum (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibMin (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMin (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMin (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibMinNum (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMinNum (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMinNum (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibMul (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMul (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMul (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibMulAdd (uint16_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMulAdd (uint32_t addend, uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMulAdd (uint64_t addend, uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibMulX (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibMulX (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibMulX (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibNeg (uint16_t op) |
template<> | |
uint32_t | ArmISA::fplibNeg (uint32_t op) |
template<> | |
uint64_t | ArmISA::fplibNeg (uint64_t op) |
template<> | |
uint16_t | ArmISA::fplibRSqrtEstimate (uint16_t op, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibRSqrtEstimate (uint32_t op, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibRSqrtEstimate (uint64_t op, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibRSqrtStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibRSqrtStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibRSqrtStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibRecipEstimate (uint16_t op, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibRecipEstimate (uint32_t op, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibRecipEstimate (uint64_t op, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibRecipStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibRecipStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibRecipStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibRecpX (uint16_t op, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibRecpX (uint32_t op, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibRecpX (uint64_t op, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibRoundInt (uint16_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibRoundInt (uint32_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibRoundInt (uint64_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibScale (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibScale (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibScale (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibSqrt (uint16_t op, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibSqrt (uint32_t op, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibSqrt (uint64_t op, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibSub (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibSub (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibSub (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibTrigMulAdd (uint8_t coeff_index, uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibTrigMulAdd (uint8_t coeff_index, uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibTrigMulAdd (uint8_t coeff_index, uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibTrigSMul (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibTrigSMul (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibTrigSMul (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibTrigSSel (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibTrigSSel (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
template<> | |
uint64_t | ArmISA::fplibTrigSSel (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
template<> | |
uint16_t | ArmISA::fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
template<> | |
uint32_t | ArmISA::fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
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.