44 #ifndef __ARCH_RISCV_UTILITY_HH__
45 #define __ARCH_RISCV_UTILITY_HH__
66 template<
typename T>
inline bool
72 template<>
inline bool
75 return std::isnan(
val)
76 && (
reinterpret_cast<uint32_t&
>(
val)&0x00400000);
79 template<>
inline bool
82 return std::isnan(
val)
83 && (
reinterpret_cast<uint64_t&
>(
val)&0x0008000000000000ULL);
86 template<
typename T>
inline bool
92 template<>
inline bool
95 return std::isnan(
val)
96 && (
reinterpret_cast<uint32_t&
>(
val)&0x00200000);
99 template<>
inline bool
102 return std::isnan(
val)
103 && (
reinterpret_cast<uint64_t&
>(
val)&0x0004000000000000ULL);
120 std::stringstream str;
121 str <<
"?? (x" <<
reg.index() <<
')';
127 std::stringstream str;
128 str <<
"?? (f" <<
reg.index() <<
')';
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
Register ID: describe an architectural register with its class and index.
const std::vector< std::string > RegNames
const std::vector< std::string > RegNames
bool issignalingnan< double >(double val)
bool isquietnan< double >(double val)
bool issignalingnan(T val)
bool isquietnan< float >(float val)
std::string registerName(RegId reg)
bool issignalingnan< float >(float val)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
@ FloatRegClass
Floating-point register.
@ IntRegClass
Integer register.