Lines Matching defs:ImmValue
228 bool loadImmediate(int64_t ImmValue, unsigned DstReg, unsigned SrcReg,
2620 int64_t ImmValue = Inst.getOperand(2).getImm();
2621 if (isInt<16>(ImmValue))
2632 int64_t ImmValue = Inst.getOperand(2).getImm();
2633 if (isUInt<16>(ImmValue))
2751 /// @param ImmValue The immediate to load.
2755 /// @param Is32BitImm Is ImmValue 32-bit or 64-bit?
2759 bool MipsAsmParser::loadImmediate(int64_t ImmValue, unsigned DstReg,
2771 if (isInt<32>(ImmValue) || isUInt<32>(ImmValue)) {
2775 ImmValue = SignExtend64<32>(ImmValue);
2800 if (isInt<16>(ImmValue)) {
2808 TOut.emitRRI(Mips::DADDiu, DstReg, SrcReg, ImmValue, IDLoc, STI);
2812 TOut.emitRRI(Mips::ADDiu, DstReg, SrcReg, ImmValue, IDLoc, STI);
2816 if (isUInt<16>(ImmValue)) {
2824 TOut.emitRRI(Mips::ORi, TmpReg, ZeroReg, ImmValue, IDLoc, STI);
2830 if (isInt<32>(ImmValue) || isUInt<32>(ImmValue)) {
2833 uint16_t Bits31To16 = (ImmValue >> 16) & 0xffff;
2834 uint16_t Bits15To0 = ImmValue & 0xffff;
2835 if (!Is32BitImm && !isInt<32>(ImmValue)) {
2838 if (ImmValue == 0xffffffff) {
2865 if (isShiftedUIntAtAnyPosition<16>(ImmValue)) {
2871 // We've processed ImmValue satisfying isUInt<16> above, so ImmValue must be
2873 unsigned BitWidth = llvm::bit_width((uint64_t)ImmValue);
2874 assert(BitWidth >= 17 && "ImmValue must be at least 17-bit wide");
2879 uint16_t Bits = (ImmValue >> ShiftAmount) & 0xffff;
2895 // Load bits 32-63 of ImmValue into bits 0-31 of the temporary register.
2896 if (loadImmediate(ImmValue >> 32, TmpReg, Mips::NoRegister, true, false,
2904 uint16_t ImmChunk = (ImmValue >> BitNum) & 0xffff;
3717 int64_t ImmValue = ImmOp.getImm();
3718 if (ImmValue == 0) {
3733 if (loadImmediate(ImmValue, ATReg, Mips::NoRegister, !isGP64bit(), true,
4248 int64_t ImmValue;
4256 ImmValue = RtOp.getImm();
4290 if (ImmValue == 0) {
4298 if (isRem && (ImmValue == 1 || (Signed && (ImmValue == -1)))) {
4301 } else if (isDiv && ImmValue == 1) {
4304 } else if (isDiv && Signed && ImmValue == -1) {
4308 if (loadImmediate(ImmValue, ATReg, Mips::NoRegister, isInt<32>(ImmValue),
4645 int64_t ImmValue = Inst.getOperand(2).getImm();
4666 if (isInt<16>(ImmValue)) {
4668 TOut.emitRRI(OpImmCode, DstReg, SrcReg, ImmValue, IDLoc, STI);
4679 if (loadImmediate(ImmValue, ImmReg, Mips::NoRegister, isInt<32>(ImmValue),
4702 int64_t ImmValue = Inst.getOperand(2).getImm();
4727 if (loadImmediate(ImmValue, ImmReg, Mips::NoRegister, isInt<32>(ImmValue),
4782 int64_t ImmValue = Inst.getOperand(2).getImm();
4809 if (loadImmediate(ImmValue, ImmReg, Mips::NoRegister, isInt<32>(ImmValue),
4833 int64_t ImmValue = Inst.getOperand(2).getImm();
4835 bool Is32Bit = isInt<32>(ImmValue) || (!isGP64bit() && isUInt<32>(ImmValue));
4847 if (!loadImmediate(ImmValue, DstReg, Mips::NoRegister, Is32Bit, false,
4995 int64_t ImmValue = Inst.getOperand(2).getImm();
5003 uint64_t ShiftValue = ImmValue;
5004 if (ImmValue != 0)
5005 ShiftValue = MaxShift - ImmValue;
5011 TOut.emitRRI(Mips::ROTR, DReg, SReg, ImmValue, Inst.getLoc(), STI);
5019 if (ImmValue == 0) {
5041 TOut.emitRRI(FirstShift, ATReg, SReg, ImmValue, Inst.getLoc(), STI);
5042 TOut.emitRRI(SecondShift, DReg, SReg, 32 - ImmValue, Inst.getLoc(), STI);
5120 int64_t ImmValue = Inst.getOperand(2).getImm() % 64;
5129 if (ImmValue == 0)
5131 else if (ImmValue % 32 == 0)
5133 else if ((ImmValue >= 1) && (ImmValue <= 32)) {
5138 } else if (ImmValue >= 33) {
5145 uint64_t ShiftValue = ImmValue % 32;
5147 ShiftValue = (32 - ImmValue % 32) % 32;
5155 if (ImmValue == 0) {
5164 if ((ImmValue >= 1) && (ImmValue <= 31)) {
5168 if (ImmValue == 32) {
5172 if ((ImmValue >= 33) && (ImmValue <= 63)) {
5178 if ((ImmValue >= 1) && (ImmValue <= 31)) {
5182 if (ImmValue == 32) {
5186 if ((ImmValue >= 33) && (ImmValue <= 63)) {
5197 TOut.emitRRI(FirstShift, ATReg, SReg, ImmValue % 32, Inst.getLoc(), STI);
5198 TOut.emitRRI(SecondShift, DReg, SReg, (32 - ImmValue % 32) % 32,
5230 int32_t ImmValue = Inst.getOperand(2).getImm();
5236 loadImmediate(ImmValue, ATReg, Mips::NoRegister, true, false, IDLoc, Out,
5546 int64_t ImmValue = Inst.getOperand(2).getImm();
5550 if (ImmValue == 0) {
5564 if (ImmValue > -0x8000 && ImmValue < 0) {
5565 ImmValue = -ImmValue;
5571 if (isUInt<16>(ImmValue)) {
5572 TOut.emitRRI(Opc, DstReg, SrcReg, ImmValue, IDLoc, STI);
5581 if (loadImmediate(ImmValue, ATReg, Mips::NoRegister, isInt<32>(ImmValue),
5811 int64_t ImmValue = BaseOp.getImm();
5812 if (ImmValue == 0) {