|
gem5
v21.0.1.0
|
#include <fenv.h>#include <cmath>#include "arch/arm/insts/misc.hh"#include "arch/arm/miscregs.hh"Go to the source code of this file.
Classes | |
| class | ArmISA::VfpMacroOp |
| class | ArmISA::FpOp |
| class | ArmISA::FpCondCompRegOp |
| class | ArmISA::FpCondSelOp |
| class | ArmISA::FpRegRegOp |
| class | ArmISA::FpRegImmOp |
| class | ArmISA::FpRegRegImmOp |
| class | ArmISA::FpRegRegRegOp |
| class | ArmISA::FpRegRegRegCondOp |
| class | ArmISA::FpRegRegRegRegOp |
| class | ArmISA::FpRegRegRegImmOp |
Namespaces | |
| ArmISA | |
Typedefs | |
| typedef int | ArmISA::VfpSavedState |
Enumerations | |
| enum | ArmISA::VfpMicroMode { ArmISA::VfpNotAMicroop, ArmISA::VfpMicroop, ArmISA::VfpFirstMicroop, ArmISA::VfpLastMicroop } |
| enum | ArmISA::FeExceptionBit { ArmISA::FeDivByZero = FE_DIVBYZERO, ArmISA::FeInexact = FE_INEXACT, ArmISA::FeInvalid = FE_INVALID, ArmISA::FeOverflow = FE_OVERFLOW, ArmISA::FeUnderflow = FE_UNDERFLOW, ArmISA::FeAllExceptions = FE_ALL_EXCEPT } |
| enum | ArmISA::FeRoundingMode { ArmISA::FeRoundDown = FE_DOWNWARD, ArmISA::FeRoundNearest = FE_TONEAREST, ArmISA::FeRoundZero = FE_TOWARDZERO, ArmISA::FeRoundUpward = FE_UPWARD } |
| enum | ArmISA::VfpRoundingMode { ArmISA::VfpRoundNearest = 0, ArmISA::VfpRoundUpward = 1, ArmISA::VfpRoundDown = 2, ArmISA::VfpRoundZero = 3, ArmISA::VfpRoundAway = 4 } |
Functions | |
| template<class T > | |
| static void | ArmISA::setVfpMicroFlags (VfpMicroMode mode, T &flags) |
| static float | ArmISA::bitsToFp (uint64_t, float) |
| static double | ArmISA::bitsToFp (uint64_t, double) |
| static uint32_t | ArmISA::fpToBits (float) |
| static uint64_t | ArmISA::fpToBits (double) |
| template<class fpType > | |
| static bool | ArmISA::flushToZero (fpType &op) |
| template<class fpType > | |
| static bool | ArmISA::flushToZero (fpType &op1, fpType &op2) |
| template<class fpType > | |
| static void | ArmISA::vfpFlushToZero (FPSCR &fpscr, fpType &op) |
| template<class fpType > | |
| static void | ArmISA::vfpFlushToZero (FPSCR &fpscr, fpType &op1, fpType &op2) |
| template<class fpType > | |
| static bool | ArmISA::isSnan (fpType val) |
| VfpSavedState | ArmISA::prepFpState (uint32_t rMode) |
| void | ArmISA::finishVfp (FPSCR &fpscr, VfpSavedState state, bool flush, FPSCR mask) |
| template<class fpType > | |
| fpType | ArmISA::fixDest (FPSCR fpscr, fpType val, fpType op1) |
| template<class fpType > | |
| fpType | ArmISA::fixDest (FPSCR fpscr, fpType val, fpType op1, fpType op2) |
| template<class fpType > | |
| fpType | ArmISA::fixDivDest (FPSCR fpscr, fpType val, fpType op1, fpType op2) |
| float | ArmISA::fixFpDFpSDest (FPSCR fpscr, double val) |
| double | ArmISA::fixFpSFpDDest (FPSCR fpscr, float val) |
| uint16_t | ArmISA::vcvtFpSFpH (FPSCR &fpscr, bool flush, bool defaultNan, uint32_t rMode, bool ahp, float op) |
| uint16_t | ArmISA::vcvtFpDFpH (FPSCR &fpscr, bool flush, bool defaultNan, uint32_t rMode, bool ahp, double op) |
| float | ArmISA::vcvtFpHFpS (FPSCR &fpscr, bool defaultNan, bool ahp, uint16_t op) |
| double | ArmISA::vcvtFpHFpD (FPSCR &fpscr, bool defaultNan, bool ahp, uint16_t op) |
| static double | ArmISA::makeDouble (uint32_t low, uint32_t high) |
| static uint32_t | ArmISA::lowFromDouble (double val) |
| static uint32_t | ArmISA::highFromDouble (double val) |
| static void | ArmISA::setFPExceptions (int exceptions) |
| template<typename T > | |
| uint64_t | ArmISA::vfpFpToFixed (T val, bool isSigned, uint8_t width, uint8_t imm, bool useRmode=true, VfpRoundingMode roundMode=VfpRoundZero, bool aarch64=false) |
| float | ArmISA::vfpUFixedToFpS (bool flush, bool defaultNan, uint64_t val, uint8_t width, uint8_t imm) |
| float | ArmISA::vfpSFixedToFpS (bool flush, bool defaultNan, int64_t val, uint8_t width, uint8_t imm) |
| double | ArmISA::vfpUFixedToFpD (bool flush, bool defaultNan, uint64_t val, uint8_t width, uint8_t imm) |
| double | ArmISA::vfpSFixedToFpD (bool flush, bool defaultNan, int64_t val, uint8_t width, uint8_t imm) |
| float | ArmISA::fprSqrtEstimate (FPSCR &fpscr, float op) |
| uint32_t | ArmISA::unsignedRSqrtEstimate (uint32_t op) |
| float | ArmISA::fpRecipEstimate (FPSCR &fpscr, float op) |
| uint32_t | ArmISA::unsignedRecipEstimate (uint32_t op) |
| FPSCR | ArmISA::fpStandardFPSCRValue (const FPSCR &fpscr) |
| template<typename T > | |
| static T | ArmISA::fpAdd (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpSub (T a, T b) |
| static float | ArmISA::fpAddS (float a, float b) |
| static double | ArmISA::fpAddD (double a, double b) |
| static float | ArmISA::fpSubS (float a, float b) |
| static double | ArmISA::fpSubD (double a, double b) |
| static float | ArmISA::fpDivS (float a, float b) |
| static double | ArmISA::fpDivD (double a, double b) |
| template<typename T > | |
| static T | ArmISA::fpDiv (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpMulX (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpMul (T a, T b) |
| static float | ArmISA::fpMulS (float a, float b) |
| static double | ArmISA::fpMulD (double a, double b) |
| template<typename T > | |
| static T | ArmISA::fpMulAdd (T op1, T op2, T addend) |
| template<typename T > | |
| static T | ArmISA::fpRIntX (T a, FPSCR &fpscr) |
| template<typename T > | |
| static T | ArmISA::fpMaxNum (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpMax (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpMinNum (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpMin (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpRSqrts (T a, T b) |
| template<typename T > | |
| static T | ArmISA::fpRecps (T a, T b) |
| static float | ArmISA::fpRSqrtsS (float a, float b) |
| static float | ArmISA::fpRecpsS (float a, float b) |
| template<typename T > | |
| static T | ArmISA::roundNEven (T a) |