29 #ifndef __ARCH_POWER_INSTS_FLOATING_HH__ 30 #define __ARCH_POWER_INSTS_FLOATING_HH__ 58 return ((
bits(val_bits, 30, 23) == 0xFF) &&
bits(val_bits, 22, 0));
64 return ((
bits(val_bits, 62, 52) == 0x7FF) &&
bits(val_bits, 51, 0));
71 uint32_t val_bits = *(uint32_t *) val_ptr;
72 return isNan(val_bits);
79 uint64_t val_bits = *(uint64_t *) val_ptr;
80 return isNan(val_bits);
87 return ((
bits(val_bits, 30, 22) == 0x1FE) &&
bits(val_bits, 22, 0));
94 return (
bits(val_bits, 30, 22) == 0x1FF);
101 return ((
bits(val_bits, 30, 23) == 0xFF) && !
bits(val_bits, 22, 0));
108 return ((
bits(val_bits, 30, 23) != 0xFF) &&
bits(val_bits, 22, 0));
116 return (!
bits(val_bits, 30, 23) &&
bits(val_bits, 22, 0));
123 return (!
bits(val_bits, 30, 23) && !
bits(val_bits, 22, 0));
130 return (
bits(val_bits, 31));
139 else if (a < b) { c = 0x8; }
140 else if (a > b) { c = 0x4; }
151 #endif //__ARCH_POWER_INSTS_FLOATING_HH__ bool isNegative(uint32_t val_bits) const
bool isNan(uint64_t val_bits) const
FloatOp(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
bool isSnan(uint32_t val_bits) const
bool isDenormalized(uint32_t val_bits) const
bool isZero(uint32_t val_bits) const
bool isInfinity(uint32_t val_bits) const
bool isQnan(uint32_t val_bits) const
bool isNan(uint32_t val_bits) const
bool isNormalized(uint32_t val_bits) const
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool isNan(float val) const
uint32_t makeCRField(double a, double b) const
Base class for floating point operations.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
bool isNan(double val) const
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it...