32 #ifndef __ARCH_POWER_INSTS_FLOATING_HH__
33 #define __ARCH_POWER_INSTS_FLOATING_HH__
61 return ((
bits(val_bits, 30, 23) == 0xFF) &&
bits(val_bits, 22, 0));
67 return ((
bits(val_bits, 62, 52) == 0x7FF) &&
bits(val_bits, 51, 0));
74 uint32_t val_bits = *(uint32_t *) val_ptr;
75 return isNan(val_bits);
82 uint64_t val_bits = *(uint64_t *) val_ptr;
83 return isNan(val_bits);
90 return ((
bits(val_bits, 30, 22) == 0x1FE) &&
bits(val_bits, 22, 0));
97 return (
bits(val_bits, 30, 22) == 0x1FF);
104 return ((
bits(val_bits, 30, 23) == 0xFF) && !
bits(val_bits, 22, 0));
111 return ((
bits(val_bits, 30, 23) != 0xFF) &&
bits(val_bits, 22, 0));
119 return (!
bits(val_bits, 30, 23) &&
bits(val_bits, 22, 0));
126 return (!
bits(val_bits, 30, 23) && !
bits(val_bits, 22, 0));
133 return (
bits(val_bits, 31));
142 else if (a < b) { c = 0x8; }
143 else if (a > b) { c = 0x4; }
153 #endif //__ARCH_POWER_INSTS_FLOATING_HH__
FloatOp(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
bool isNan(double val) const
bool isDenormalized(uint32_t val_bits) const
bool isNan(float val) const
bool isNegative(uint32_t val_bits) const
bool isNan(uint64_t val_bits) const
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
Internal function to generate disassembly string.
bool isInfinity(uint32_t val_bits) const
uint32_t makeCRField(double a, double b) const
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Base class for floating point operations.
bool isNan(uint32_t val_bits) const
bool isZero(uint32_t val_bits) const
bool isSnan(uint32_t val_bits) const
bool isNormalized(uint32_t val_bits) const
bool isQnan(uint32_t val_bits) const
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it...