gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Enumerations | Functions
fplib.hh File Reference

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

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

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 >
ArmISA::fplibAbs (T op)
 Floating-point absolute value. More...
 
template<class 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 T1 , class T2 >
T2 ArmISA::fplibConvert (T1 op, FPRounding rounding, FPSCR &fpscr)
 Floating-point convert precision. More...
 
template<class T >
ArmISA::fplibDiv (T op1, T op2, FPSCR &fpscr)
 Floating-point division. More...
 
template<class T >
ArmISA::fplibMax (T op1, T op2, FPSCR &fpscr)
 Floating-point maximum. More...
 
template<class T >
ArmISA::fplibMaxNum (T op1, T op2, FPSCR &fpscr)
 Floating-point maximum number. More...
 
template<class T >
ArmISA::fplibMin (T op1, T op2, FPSCR &fpscr)
 Floating-point minimum. More...
 
template<class T >
ArmISA::fplibMinNum (T op1, T op2, FPSCR &fpscr)
 Floating-point minimum number. More...
 
template<class T >
ArmISA::fplibMul (T op1, T op2, FPSCR &fpscr)
 Floating-point multiply. More...
 
template<class T >
ArmISA::fplibMulAdd (T addend, T op1, T op2, FPSCR &fpscr)
 Floating-point multiply-add. More...
 
template<class T >
ArmISA::fplibMulX (T op1, T op2, FPSCR &fpscr)
 Floating-point multiply extended. More...
 
template<class T >
ArmISA::fplibNeg (T op)
 Floating-point negate. More...
 
template<class T >
ArmISA::fplibRSqrtEstimate (T op, FPSCR &fpscr)
 Floating-point reciprocal square root estimate. More...
 
template<class T >
ArmISA::fplibRSqrtStepFused (T op1, T op2, FPSCR &fpscr)
 Floating-point reciprocal square root step. More...
 
template<class T >
ArmISA::fplibRecipEstimate (T op, FPSCR &fpscr)
 Floating-point reciprocal estimate. More...
 
template<class T >
ArmISA::fplibRecipStepFused (T op1, T op2, FPSCR &fpscr)
 Floating-point reciprocal step. More...
 
template<class T >
ArmISA::fplibRecpX (T op, FPSCR &fpscr)
 Floating-point reciprocal exponent. More...
 
template<class T >
ArmISA::fplibRoundInt (T op, FPRounding rounding, bool exact, FPSCR &fpscr)
 Floating-point convert to integer. More...
 
template<class T >
ArmISA::fplibSqrt (T op, FPSCR &fpscr)
 Floating-point square root. More...
 
template<class T >
ArmISA::fplibSub (T op1, T op2, FPSCR &fpscr)
 Floating-point subtract. 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<class T >
ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
 Floating-point convert from fixed-point. More...
 
template<>
uint32_t ArmISA::fplibAbs (uint32_t op)
 
template<>
uint64_t ArmISA::fplibAbs (uint64_t op)
 
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 (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 (uint32_t a, uint32_t b, FPSCR &fpscr)
 
template<>
bool ArmISA::fplibCompareEQ (uint64_t a, uint64_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 (uint32_t a, uint32_t b, FPSCR &fpscr)
 
template<>
bool ArmISA::fplibCompareGT (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<>
uint32_t ArmISA::fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibConvert (uint32_t op, FPRounding rounding, 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<>
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<>
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<>
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<>
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<>
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<>
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<>
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<>
uint32_t ArmISA::fplibNeg (uint32_t op)
 
template<>
uint64_t ArmISA::fplibNeg (uint64_t op)
 
template<>
uint32_t ArmISA::fplibRSqrtEstimate (uint32_t op, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibRSqrtEstimate (uint64_t op, 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<>
uint32_t ArmISA::fplibRecipEstimate (uint32_t op, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibRecipEstimate (uint64_t op, 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<>
uint32_t ArmISA::fplibRecpX (uint32_t op, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibRecpX (uint64_t op, 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<>
uint32_t ArmISA::fplibSqrt (uint32_t op, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibSqrt (uint64_t op, 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<>
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)
 
template<>
uint64_t ArmISA::fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
 
template<>
uint64_t ArmISA::fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
 
template<>
uint32_t ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
 Floating-point convert from fixed-point. More...
 
template<>
uint64_t ArmISA::fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr)
 Floating-point convert from fixed-point. More...
 

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 Fri Jun 9 2017 13:03:55 for gem5 by doxygen 1.8.6