31 #ifndef __ARCH_POWER_INSTS_INTEGER_HH__ 32 #define __ARCH_POWER_INSTS_INTEGER_HH__ 64 rcSet(false), oeSet(false)
75 if (a < b) { c += 0x8; }
76 else if (a > b) { c += 0x4; }
88 if (a < b) { c += 0x8; }
89 else if (a > b) { c += 0x4; }
111 :
IntOp(mnem, _machInst, __opClass),
133 :
IntOp(mnem, _machInst, __opClass),
161 fullMask =
mask(31 - mb, 31 - me);
163 fullMask = ~
mask(31 - (me + 1), 31 - (mb - 1));
170 uint32_t
n = shift & 31;
171 return (rs << n) | (rs >> (32 -
n));
180 #endif //__ARCH_POWER_INSTS_INTEGER_HH__ uint32_t makeCRField(uint32_t a, uint32_t b, uint32_t xerSO) const
IntImmOp(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
const ExtMachInst machInst
The binary machine instruction.
IntShiftOp(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
IntOp(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
We provide a base class for integer operations and then inherit for several other classes...
uint32_t rotateValue(uint32_t rs, uint32_t shift) const
Class for integer rotate operations.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
IntRotateOp(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
uint64_t sext(uint64_t val)
Sign-extend an N-bit value to 64 bits.
Class for integer immediate (signed and unsigned) operations.
uint32_t makeCRField(int32_t a, int32_t b, uint32_t xerSO) const
Class for integer operations with a shift.