• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/RISCV/AsmParser/

Lines Matching refs:RISCV

1 //===-- RISCVAsmParser.cpp - Parse RISCV assembly to MCInst instructions --===//
68 bool isRV64() const { return getSTI().hasFeature(RISCV::Feature64Bit); }
69 bool isRV32E() const { return getSTI().hasFeature(RISCV::FeatureRV32E); }
234 !getSTI().getFeatureBits()[RISCV::FeatureStdExtF]) {
239 !getSTI().getFeatureBits()[RISCV::FeatureStdExtD]) {
338 return Kind == KindTy::Register && Reg.RegNum == RISCV::V0;
347 RISCVMCRegisterClasses[RISCV::GPRRegClassID].contains(Reg.RegNum);
956 assert(Reg >= RISCV::F0_D && Reg <= RISCV::F31_D && "Invalid register");
957 return Reg - RISCV::F0_D + RISCV::F0_F;
968 RISCVMCRegisterClasses[RISCV::FPR64RegClassID].contains(Reg);
970 RISCVMCRegisterClasses[RISCV::FPR64CRegClassID].contains(Reg);
1210 assert(!(RegNo >= RISCV::F0_F && RegNo <= RISCV::F31_F));
1212 static_assert(RISCV::F0_D < RISCV::F0_F, "FPR matching must be updated");
1213 if (RegNo == RISCV::NoRegister)
1215 if (IsRV32E && RegNo >= RISCV::X16 && RegNo <= RISCV::X31)
1216 RegNo = RISCV::NoRegister;
1217 return RegNo == RISCV::NoRegister;
1271 if (RegNo == RISCV::NoRegister) {
1602 if (RegNo == RISCV::NoRegister)
1604 if (RegNo != RISCV::V0)
1747 if (getSTI().getFeatureBits()[RISCV::FeatureRelax]) {
1896 setFeatureBits(RISCV::FeatureStdExtC, "c");
1908 clearFeatureBits(RISCV::FeatureStdExtC, "c");
1944 setFeatureBits(RISCV::FeatureRelax, "relax");
1956 clearFeatureBits(RISCV::FeatureRelax, "relax");
2037 clearFeatureBits(RISCV::Feature64Bit, "64bit");
2039 setFeatureBits(RISCV::Feature64Bit, "64bit");
2045 clearFeatureBits(RISCV::FeatureRV32E, "e");
2047 setFeatureBits(RISCV::FeatureRV32E, "e");
2049 clearFeatureBits(RISCV::FeatureRV32E, "e");
2050 setFeatureBits(RISCV::FeatureStdExtM, "m");
2051 setFeatureBits(RISCV::FeatureStdExtA, "a");
2052 setFeatureBits(RISCV::FeatureStdExtF, "f");
2053 setFeatureBits(RISCV::FeatureStdExtD, "d");
2055 setFeatureBits(RISCV::FeatureStdExtM, "m");
2057 setFeatureBits(RISCV::FeatureStdExtA, "a");
2059 setFeatureBits(RISCV::FeatureStdExtF, "f");
2061 setFeatureBits(RISCV::FeatureStdExtF, "f");
2062 setFeatureBits(RISCV::FeatureStdExtD, "d");
2064 setFeatureBits(RISCV::FeatureStdExtC, "c");
2088 if (getFeatureBits(RISCV::Feature64Bit))
2090 if (getFeatureBits(RISCV::FeatureRV32E))
2095 if (getFeatureBits(RISCV::FeatureStdExtM))
2097 if (getFeatureBits(RISCV::FeatureStdExtA))
2099 if (getFeatureBits(RISCV::FeatureStdExtF))
2101 if (getFeatureBits(RISCV::FeatureStdExtD))
2103 if (getFeatureBits(RISCV::FeatureStdExtC))
2126 Register SrcReg = RISCV::X0;
2128 if (Inst.Opc == RISCV::LUI) {
2130 Out, MCInstBuilder(RISCV::LUI).addReg(DestReg).addImm(Inst.Imm));
2158 Out, MCInstBuilder(RISCV::AUIPC).addOperand(TmpReg).addExpr(SymbolHi));
2181 RISCV::ADDI, IDLoc, Out);
2200 SecondOpcode = isRV64() ? RISCV::LD : RISCV::LW;
2203 SecondOpcode = RISCV::ADDI;
2219 unsigned SecondOpcode = isRV64() ? RISCV::LD : RISCV::LW;
2235 RISCV::ADDI, IDLoc, Out);
2259 assert(Inst.getOpcode() == RISCV::PseudoAddTPRel && "Invalid instruction");
2261 if (Inst.getOperand(2).getReg() != RISCV::X4) {
2271 return RISCVOperand::createReg(RISCV::NoRegister, llvm::SMLoc(),
2279 (MCID.TSFlags >> RISCV::ConstraintOffset) & RISCV::ConstraintMask;
2280 if (TargetFlags == RISCV::NoConstraint)
2286 if ((TargetFlags == RISCV::WidenV) || (TargetFlags == RISCV::WidenW) ||
2287 (TargetFlags == RISCV::SlideUp) || (TargetFlags == RISCV::Vrgather) ||
2288 (TargetFlags == RISCV::Vcompress)) {
2289 if (TargetFlags != RISCV::WidenW) {
2294 if (TargetFlags == RISCV::WidenV) {
2307 if (TargetFlags == RISCV::WidenV || TargetFlags == RISCV::WidenW) {
2322 } else if (TargetFlags == RISCV::Narrow) {
2331 } else if (TargetFlags == RISCV::WidenCvt || TargetFlags == RISCV::Iota) {
2336 if (TargetFlags == RISCV::WidenCvt) {
2361 case RISCV::PseudoLI: {
2367 emitToStreamer(Out, MCInstBuilder(RISCV::ADDI)
2369 .addReg(RISCV::X0)
2382 case RISCV::PseudoLLA:
2385 case RISCV::PseudoLA:
2388 case RISCV::PseudoLA_TLS_IE:
2391 case RISCV::PseudoLA_TLS_GD:
2394 case RISCV::PseudoLB:
2395 emitLoadStoreSymbol(Inst, RISCV::LB, IDLoc, Out, /*HasTmpReg=*/false);
2397 case RISCV::PseudoLBU:
2398 emitLoadStoreSymbol(Inst, RISCV::LBU, IDLoc, Out, /*HasTmpReg=*/false);
2400 case RISCV::PseudoLH:
2401 emitLoadStoreSymbol(Inst, RISCV::LH, IDLoc, Out, /*HasTmpReg=*/false);
2403 case RISCV::PseudoLHU:
2404 emitLoadStoreSymbol(Inst, RISCV::LHU, IDLoc, Out, /*HasTmpReg=*/false);
2406 case RISCV::PseudoLW:
2407 emitLoadStoreSymbol(Inst, RISCV::LW, IDLoc, Out, /*HasTmpReg=*/false);
2409 case RISCV::PseudoLWU:
2410 emitLoadStoreSymbol(Inst, RISCV::LWU, IDLoc, Out, /*HasTmpReg=*/false);
2412 case RISCV::PseudoLD:
2413 emitLoadStoreSymbol(Inst, RISCV::LD, IDLoc, Out, /*HasTmpReg=*/false);
2415 case RISCV::PseudoFLW:
2416 emitLoadStoreSymbol(Inst, RISCV::FLW, IDLoc, Out, /*HasTmpReg=*/true);
2418 case RISCV::PseudoFLD:
2419 emitLoadStoreSymbol(Inst, RISCV::FLD, IDLoc, Out, /*HasTmpReg=*/true);
2421 case RISCV::PseudoSB:
2422 emitLoadStoreSymbol(Inst, RISCV::SB, IDLoc, Out, /*HasTmpReg=*/true);
2424 case RISCV::PseudoSH:
2425 emitLoadStoreSymbol(Inst, RISCV::SH, IDLoc, Out, /*HasTmpReg=*/true);
2427 case RISCV::PseudoSW:
2428 emitLoadStoreSymbol(Inst, RISCV::SW, IDLoc, Out, /*HasTmpReg=*/true);
2430 case RISCV::PseudoSD:
2431 emitLoadStoreSymbol(Inst, RISCV::SD, IDLoc, Out, /*HasTmpReg=*/true);
2433 case RISCV::PseudoFSW:
2434 emitLoadStoreSymbol(Inst, RISCV::FSW, IDLoc, Out, /*HasTmpReg=*/true);
2436 case RISCV::PseudoFSD:
2437 emitLoadStoreSymbol(Inst, RISCV::FSD, IDLoc, Out, /*HasTmpReg=*/true);
2439 case RISCV::PseudoAddTPRel: