Lines Matching refs:Imm
390 ImmOp Imm; member
413 Imm = o.Imm; in RISCVOperand()
483 static bool evaluateConstantImm(const MCExpr *Expr, int64_t &Imm, in evaluateConstantImm()
487 return RE->evaluateAsConstant(Imm); in evaluateConstantImm()
492 Imm = CE->getValue(); in evaluateConstantImm()
502 int64_t Imm; in isBareSimmNLsb0() local
506 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isBareSimmNLsb0()
511 IsValid = isShiftedInt<N - 1, 1>(Imm); in isBareSimmNLsb0()
518 int64_t Imm; in isBareSymbol() local
521 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isBareSymbol()
528 int64_t Imm; in isCallSymbol() local
531 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isCallSymbol()
539 int64_t Imm; in isPseudoJumpSymbol() local
542 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isPseudoJumpSymbol()
549 int64_t Imm; in isTPRelAddSymbol() local
552 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isTPRelAddSymbol()
559 int64_t Imm; in isTLSDESCCallSymbol() local
562 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isTLSDESCCallSymbol()
571 int64_t Imm; in isVTypeImm() local
575 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isVTypeImm()
576 return IsConstantImm && isUIntN(N, Imm) && VK == RISCVMCExpr::VK_RISCV_None; in isVTypeImm()
615 int64_t Imm; in isImmXLenLI() local
619 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isImmXLenLI()
629 (isRV64Imm() || (isInt<32>(Imm) || isUInt<32>(Imm))); in isImmXLenLI()
636 int64_t Imm; in isImmXLenLI_Restricted() local
640 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isImmXLenLI_Restricted()
643 (isRV64Imm() || (isInt<32>(Imm) || isUInt<32>(Imm))); in isImmXLenLI_Restricted()
647 int64_t Imm; in isUImmLog2XLen() local
651 if (!evaluateConstantImm(getImm(), Imm, VK) || in isUImmLog2XLen()
654 return (isRV64Imm() && isUInt<6>(Imm)) || isUInt<5>(Imm); in isUImmLog2XLen()
658 int64_t Imm; in isUImmLog2XLenNonZero() local
662 if (!evaluateConstantImm(getImm(), Imm, VK) || in isUImmLog2XLenNonZero()
665 if (Imm == 0) in isUImmLog2XLenNonZero()
667 return (isRV64Imm() && isUInt<6>(Imm)) || isUInt<5>(Imm); in isUImmLog2XLenNonZero()
671 int64_t Imm; in isUImmLog2XLenHalf() local
675 if (!evaluateConstantImm(getImm(), Imm, VK) || in isUImmLog2XLenHalf()
678 return (isRV64Imm() && isUInt<5>(Imm)) || isUInt<4>(Imm); in isUImmLog2XLenHalf()
682 int64_t Imm; in IsUImm() local
686 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in IsUImm()
687 return IsConstantImm && isUInt<N>(Imm) && VK == RISCVMCExpr::VK_RISCV_None; in IsUImm()
701 int64_t Imm; in isUImm8GE32() local
705 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm8GE32()
706 return IsConstantImm && isUInt<8>(Imm) && Imm >= 32 && in isUImm8GE32()
711 int64_t Imm; in isRnumArg() local
715 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg()
716 return IsConstantImm && Imm >= INT64_C(0) && Imm <= INT64_C(10) && in isRnumArg()
721 int64_t Imm; in isRnumArg_0_7() local
725 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg_0_7()
726 return IsConstantImm && Imm >= INT64_C(0) && Imm <= INT64_C(7) && in isRnumArg_0_7()
731 int64_t Imm; in isRnumArg_1_10() local
735 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg_1_10()
736 return IsConstantImm && Imm >= INT64_C(1) && Imm <= INT64_C(10) && in isRnumArg_1_10()
741 int64_t Imm; in isRnumArg_2_14() local
745 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg_2_14()
746 return IsConstantImm && Imm >= INT64_C(2) && Imm <= INT64_C(14) && in isRnumArg_2_14()
754 int64_t Imm; in isSImm5() local
755 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm5()
756 return IsConstantImm && isInt<5>(fixImmediateForRV32(Imm, isRV64Imm())) && in isSImm5()
764 int64_t Imm; in isSImm6() local
765 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm6()
766 return IsConstantImm && isInt<6>(fixImmediateForRV32(Imm, isRV64Imm())) && in isSImm6()
774 int64_t Imm; in isSImm6NonZero() local
775 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm6NonZero()
776 return IsConstantImm && Imm != 0 && in isSImm6NonZero()
777 isInt<6>(fixImmediateForRV32(Imm, isRV64Imm())) && in isSImm6NonZero()
784 int64_t Imm; in isCLUIImm() local
786 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isCLUIImm()
787 return IsConstantImm && (Imm != 0) && in isCLUIImm()
788 (isUInt<5>(Imm) || (Imm >= 0xfffe0 && Imm <= 0xfffff)) && in isCLUIImm()
795 int64_t Imm; in isUImm2Lsb0() local
797 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm2Lsb0()
798 return IsConstantImm && isShiftedUInt<1, 1>(Imm) && in isUImm2Lsb0()
805 int64_t Imm; in isUImm7Lsb00() local
807 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm7Lsb00()
808 return IsConstantImm && isShiftedUInt<5, 2>(Imm) && in isUImm7Lsb00()
815 int64_t Imm; in isUImm8Lsb00() local
817 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm8Lsb00()
818 return IsConstantImm && isShiftedUInt<6, 2>(Imm) && in isUImm8Lsb00()
825 int64_t Imm; in isUImm8Lsb000() local
827 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm8Lsb000()
828 return IsConstantImm && isShiftedUInt<5, 3>(Imm) && in isUImm8Lsb000()
837 int64_t Imm; in isUImm9Lsb000() local
839 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm9Lsb000()
840 return IsConstantImm && isShiftedUInt<6, 3>(Imm) && in isUImm9Lsb000()
847 int64_t Imm; in isUImm10Lsb00NonZero() local
849 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm10Lsb00NonZero()
850 return IsConstantImm && isShiftedUInt<8, 2>(Imm) && (Imm != 0) && in isUImm10Lsb00NonZero()
856 static int64_t fixImmediateForRV32(int64_t Imm, bool IsRV64Imm) { in fixImmediateForRV32()
857 if (IsRV64Imm || !isUInt<32>(Imm)) in fixImmediateForRV32()
858 return Imm; in fixImmediateForRV32()
859 return SignExtend64<32>(Imm); in fixImmediateForRV32()
864 int64_t Imm; in isSImm12() local
868 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm12()
872 IsValid = isInt<12>(fixImmediateForRV32(Imm, isRV64Imm())); in isSImm12()
887 int64_t Imm; in isSImm12Lsb00000() local
888 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm12Lsb00000()
889 return IsConstantImm && isShiftedInt<7, 5>(Imm) && in isSImm12Lsb00000()
898 int64_t Imm; in isSImm10Lsb0000NonZero() local
900 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm10Lsb0000NonZero()
901 return IsConstantImm && (Imm != 0) && isShiftedInt<6, 4>(Imm) && in isSImm10Lsb0000NonZero()
907 int64_t Imm; in isUImm20LUI() local
911 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm20LUI()
917 return isUInt<20>(Imm) && (VK == RISCVMCExpr::VK_RISCV_None || in isUImm20LUI()
925 int64_t Imm; in isUImm20AUIPC() local
929 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm20AUIPC()
939 return isUInt<20>(Imm) && (VK == RISCVMCExpr::VK_RISCV_None || in isUImm20AUIPC()
952 int64_t Imm; in isImmZero() local
954 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isImmZero()
955 return IsConstantImm && (Imm == 0) && VK == RISCVMCExpr::VK_RISCV_None; in isImmZero()
962 int64_t Imm; in isSImm5Plus1() local
963 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm5Plus1()
965 isInt<5>(fixImmediateForRV32(Imm, isRV64Imm()) - 1) && in isSImm5Plus1()
976 return Imm.IsRV64; in isRV64Imm()
991 return Imm.Val; in getImm()
1095 Op->Imm.Val = Val; in createImm()
1096 Op->Imm.IsRV64 = IsRV64; in createImm()
1173 int64_t Imm = 0; in addExpr() local
1175 bool IsConstant = evaluateConstantImm(Expr, Imm, VK); in addExpr()
1179 MCOperand::createImm(fixImmediateForRV32(Imm, IsRV64Imm))); in addExpr()
1202 int Imm = RISCVLoadFPImm::getLoadFPImm( in addFPImmOperands() local
1204 Inst.addOperand(MCOperand::createImm(Imm)); in addFPImmOperands()
1222 int64_t Imm = 0; in addVTypeIOperands() local
1225 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in addVTypeIOperands()
1229 Imm = getVType(); in addVTypeIOperands()
1231 Inst.addOperand(MCOperand::createImm(Imm)); in addVTypeIOperands()
1739 int64_t Imm = CE->getValue(); in parseInsnDirectiveOpcode() local
1740 if (isUInt<7>(Imm)) { in parseInsnDirectiveOpcode()
1794 int64_t Imm = CE->getValue(); in parseInsnCDirectiveOpcode() local
1795 if (Imm >= 0 && Imm <= 2) { in parseInsnCDirectiveOpcode()
1853 int64_t Imm = CE->getValue(); in parseCSRSystemRegister() local
1854 if (isUInt<12>(Imm)) { in parseCSRSystemRegister()
1855 auto SysReg = RISCVSysReg::lookupSysRegByEncoding(Imm); in parseCSRSystemRegister()
1859 RISCVOperand::createSysReg(SysReg ? SysReg->Name : "", S, Imm)); in parseCSRSystemRegister()
2342 unsigned Imm = 0; in parseFenceArg() local
2351 Imm |= RISCVFenceField::I; in parseFenceArg()
2354 Imm |= RISCVFenceField::O; in parseFenceArg()
2357 Imm |= RISCVFenceField::R; in parseFenceArg()
2360 Imm |= RISCVFenceField::W; in parseFenceArg()
2374 Operands.push_back(RISCVOperand::createFenceArg(Imm, getLoc())); in parseFenceArg()
3089 case RISCVMatInt::Imm: in emitLoadImm()
3524 int64_t Imm = Inst.getOperand(1).getImm(); in processInstruction() local
3529 Imm = SignExtend64<32>(Imm); in processInstruction()
3530 emitLoadImm(Reg, Imm, Out); in processInstruction()
3633 int64_t Imm = Inst.getOperand(2).getImm(); in processInstruction() local
3639 .addImm(Imm - 1) in processInstruction()
3645 int64_t Imm = Inst.getOperand(2).getImm(); in processInstruction() local
3650 if (Imm == 0) { in processInstruction()
3667 .addImm(Imm - 1) in processInstruction()