Lines Matching refs:Imm
398 ImmOp Imm; member
421 Imm = o.Imm; in RISCVOperand()
491 static bool evaluateConstantImm(const MCExpr *Expr, int64_t &Imm, in evaluateConstantImm()
495 return RE->evaluateAsConstant(Imm); in evaluateConstantImm()
500 Imm = CE->getValue(); in evaluateConstantImm()
510 int64_t Imm; in isBareSimmNLsb0() local
514 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isBareSimmNLsb0()
519 IsValid = isShiftedInt<N - 1, 1>(Imm); in isBareSimmNLsb0()
526 int64_t Imm; in isBareSymbol() local
529 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isBareSymbol()
536 int64_t Imm; in isCallSymbol() local
539 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isCallSymbol()
547 int64_t Imm; in isPseudoJumpSymbol() local
550 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isPseudoJumpSymbol()
557 int64_t Imm; in isTPRelAddSymbol() local
560 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isTPRelAddSymbol()
567 int64_t Imm; in isTLSDESCCallSymbol() local
570 if (!isImm() || evaluateConstantImm(getImm(), Imm, VK)) in isTLSDESCCallSymbol()
579 int64_t Imm; in isVTypeImm() local
583 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isVTypeImm()
584 return IsConstantImm && isUIntN(N, Imm) && VK == RISCVMCExpr::VK_RISCV_None; in isVTypeImm()
623 int64_t Imm; in isImmXLenLI() local
627 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isImmXLenLI()
637 (isRV64Imm() || (isInt<32>(Imm) || isUInt<32>(Imm))); in isImmXLenLI()
644 int64_t Imm; in isImmXLenLI_Restricted() local
648 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isImmXLenLI_Restricted()
651 (isRV64Imm() || (isInt<32>(Imm) || isUInt<32>(Imm))); in isImmXLenLI_Restricted()
655 int64_t Imm; in isUImmLog2XLen() local
659 if (!evaluateConstantImm(getImm(), Imm, VK) || in isUImmLog2XLen()
662 return (isRV64Imm() && isUInt<6>(Imm)) || isUInt<5>(Imm); in isUImmLog2XLen()
666 int64_t Imm; in isUImmLog2XLenNonZero() local
670 if (!evaluateConstantImm(getImm(), Imm, VK) || in isUImmLog2XLenNonZero()
673 if (Imm == 0) in isUImmLog2XLenNonZero()
675 return (isRV64Imm() && isUInt<6>(Imm)) || isUInt<5>(Imm); in isUImmLog2XLenNonZero()
679 int64_t Imm; in isUImmLog2XLenHalf() local
683 if (!evaluateConstantImm(getImm(), Imm, VK) || in isUImmLog2XLenHalf()
686 return (isRV64Imm() && isUInt<5>(Imm)) || isUInt<4>(Imm); in isUImmLog2XLenHalf()
690 int64_t Imm; in IsUImm() local
694 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in IsUImm()
695 return IsConstantImm && isUInt<N>(Imm) && VK == RISCVMCExpr::VK_RISCV_None; in IsUImm()
711 int64_t Imm; in isUImm8GE32() local
715 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm8GE32()
716 return IsConstantImm && isUInt<8>(Imm) && Imm >= 32 && in isUImm8GE32()
721 int64_t Imm; in isRnumArg() local
725 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg()
726 return IsConstantImm && Imm >= INT64_C(0) && Imm <= INT64_C(10) && in isRnumArg()
731 int64_t Imm; in isRnumArg_0_7() local
735 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg_0_7()
736 return IsConstantImm && Imm >= INT64_C(0) && Imm <= INT64_C(7) && in isRnumArg_0_7()
741 int64_t Imm; in isRnumArg_1_10() local
745 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg_1_10()
746 return IsConstantImm && Imm >= INT64_C(1) && Imm <= INT64_C(10) && in isRnumArg_1_10()
751 int64_t Imm; in isRnumArg_2_14() local
755 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isRnumArg_2_14()
756 return IsConstantImm && Imm >= INT64_C(2) && Imm <= INT64_C(14) && in isRnumArg_2_14()
764 int64_t Imm; in isSImm5() local
765 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm5()
766 return IsConstantImm && isInt<5>(fixImmediateForRV32(Imm, isRV64Imm())) && in isSImm5()
774 int64_t Imm; in isSImm6() local
775 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm6()
776 return IsConstantImm && isInt<6>(fixImmediateForRV32(Imm, isRV64Imm())) && in isSImm6()
784 int64_t Imm; in isSImm6NonZero() local
785 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm6NonZero()
786 return IsConstantImm && Imm != 0 && in isSImm6NonZero()
787 isInt<6>(fixImmediateForRV32(Imm, isRV64Imm())) && in isSImm6NonZero()
794 int64_t Imm; in isCLUIImm() local
796 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isCLUIImm()
797 return IsConstantImm && (Imm != 0) && in isCLUIImm()
798 (isUInt<5>(Imm) || (Imm >= 0xfffe0 && Imm <= 0xfffff)) && in isCLUIImm()
805 int64_t Imm; in isUImm2Lsb0() local
807 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm2Lsb0()
808 return IsConstantImm && isShiftedUInt<1, 1>(Imm) && in isUImm2Lsb0()
815 int64_t Imm; in isUImm5Lsb0() local
817 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm5Lsb0()
818 return IsConstantImm && isShiftedUInt<4, 1>(Imm) && in isUImm5Lsb0()
825 int64_t Imm; in isUImm6Lsb0() local
827 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm6Lsb0()
828 return IsConstantImm && isShiftedUInt<5, 1>(Imm) && in isUImm6Lsb0()
835 int64_t Imm; in isUImm7Lsb00() local
837 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm7Lsb00()
838 return IsConstantImm && isShiftedUInt<5, 2>(Imm) && in isUImm7Lsb00()
845 int64_t Imm; in isUImm8Lsb00() local
847 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm8Lsb00()
848 return IsConstantImm && isShiftedUInt<6, 2>(Imm) && in isUImm8Lsb00()
855 int64_t Imm; in isUImm8Lsb000() local
857 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm8Lsb000()
858 return IsConstantImm && isShiftedUInt<5, 3>(Imm) && in isUImm8Lsb000()
867 int64_t Imm; in isUImm9Lsb000() local
869 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm9Lsb000()
870 return IsConstantImm && isShiftedUInt<6, 3>(Imm) && in isUImm9Lsb000()
877 int64_t Imm; in isUImm10Lsb00NonZero() local
879 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm10Lsb00NonZero()
880 return IsConstantImm && isShiftedUInt<8, 2>(Imm) && (Imm != 0) && in isUImm10Lsb00NonZero()
886 static int64_t fixImmediateForRV32(int64_t Imm, bool IsRV64Imm) { in fixImmediateForRV32()
887 if (IsRV64Imm || !isUInt<32>(Imm)) in fixImmediateForRV32()
888 return Imm; in fixImmediateForRV32()
889 return SignExtend64<32>(Imm); in fixImmediateForRV32()
894 int64_t Imm; in isSImm12() local
898 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm12()
902 IsValid = isInt<12>(fixImmediateForRV32(Imm, isRV64Imm())); in isSImm12()
917 int64_t Imm; in isSImm12Lsb00000() local
918 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm12Lsb00000()
919 return IsConstantImm && isShiftedInt<7, 5>(Imm) && in isSImm12Lsb00000()
928 int64_t Imm; in isSImm10Lsb0000NonZero() local
930 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm10Lsb0000NonZero()
931 return IsConstantImm && (Imm != 0) && isShiftedInt<6, 4>(Imm) && in isSImm10Lsb0000NonZero()
937 int64_t Imm; in isUImm20LUI() local
941 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm20LUI()
947 return isUInt<20>(Imm) && (VK == RISCVMCExpr::VK_RISCV_None || in isUImm20LUI()
955 int64_t Imm; in isUImm20AUIPC() local
959 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isUImm20AUIPC()
969 return isUInt<20>(Imm) && (VK == RISCVMCExpr::VK_RISCV_None || in isUImm20AUIPC()
982 int64_t Imm; in isImmZero() local
984 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isImmZero()
985 return IsConstantImm && (Imm == 0) && VK == RISCVMCExpr::VK_RISCV_None; in isImmZero()
992 int64_t Imm; in isSImm5Plus1() local
993 bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK); in isSImm5Plus1()
995 isInt<5>(fixImmediateForRV32(Imm, isRV64Imm()) - 1) && in isSImm5Plus1()
1006 return Imm.IsRV64; in isRV64Imm()
1021 return Imm.Val; in getImm()
1125 Op->Imm.Val = Val; in createImm()
1126 Op->Imm.IsRV64 = IsRV64; in createImm()
1203 int64_t Imm = 0; in addExpr() local
1205 bool IsConstant = evaluateConstantImm(Expr, Imm, VK); in addExpr()
1209 MCOperand::createImm(fixImmediateForRV32(Imm, IsRV64Imm))); in addExpr()
1232 int Imm = RISCVLoadFPImm::getLoadFPImm( in addFPImmOperands() local
1234 Inst.addOperand(MCOperand::createImm(Imm)); in addFPImmOperands()
1252 int64_t Imm = 0; in addVTypeIOperands() local
1256 evaluateConstantImm(getImm(), Imm, VK); in addVTypeIOperands()
1259 Imm = getVType(); in addVTypeIOperands()
1261 Inst.addOperand(MCOperand::createImm(Imm)); in addVTypeIOperands()
1777 int64_t Imm = CE->getValue(); in parseInsnDirectiveOpcode() local
1778 if (isUInt<7>(Imm)) { in parseInsnDirectiveOpcode()
1832 int64_t Imm = CE->getValue(); in parseInsnCDirectiveOpcode() local
1833 if (Imm >= 0 && Imm <= 2) { in parseInsnCDirectiveOpcode()
1891 int64_t Imm = CE->getValue(); in parseCSRSystemRegister() local
1892 if (isUInt<12>(Imm)) { in parseCSRSystemRegister()
1893 auto Range = RISCVSysReg::lookupSysRegByEncoding(Imm); in parseCSRSystemRegister()
1898 Operands.push_back(RISCVOperand::createSysReg(Reg.Name, S, Imm)); in parseCSRSystemRegister()
1904 Operands.push_back(RISCVOperand::createSysReg("", S, Imm)); in parseCSRSystemRegister()
2403 unsigned Imm = 0; in parseFenceArg() local
2412 Imm |= RISCVFenceField::I; in parseFenceArg()
2415 Imm |= RISCVFenceField::O; in parseFenceArg()
2418 Imm |= RISCVFenceField::R; in parseFenceArg()
2421 Imm |= RISCVFenceField::W; in parseFenceArg()
2435 Operands.push_back(RISCVOperand::createFenceArg(Imm, getLoc())); in parseFenceArg()
3606 int64_t Imm = Inst.getOperand(1).getImm(); in processInstruction() local
3611 Imm = SignExtend64<32>(Imm); in processInstruction()
3612 emitLoadImm(Reg, Imm, Out); in processInstruction()
3715 int64_t Imm = Inst.getOperand(2).getImm(); in processInstruction() local
3721 .addImm(Imm - 1) in processInstruction()
3728 int64_t Imm = Inst.getOperand(2).getImm(); in processInstruction() local
3733 if (Imm == 0) { in processInstruction()
3751 .addImm(Imm - 1) in processInstruction()