Lines Matching defs:Triple
37 const llvm::Triple &TargetTriple,
100 BareMetal::BareMetal(const Driver &D, const llvm::Triple &Triple,
102 : ToolChain(D, Triple, Args) {
105 findMultilibs(D, Triple, Args);
118 static bool isARMBareMetal(const llvm::Triple &Triple) {
119 if (Triple.getArch() != llvm::Triple::arm &&
120 Triple.getArch() != llvm::Triple::thumb &&
121 Triple.getArch() != llvm::Triple::armeb &&
122 Triple.getArch() != llvm::Triple::thumbeb)
125 if (Triple.getVendor() != llvm::Triple::UnknownVendor)
128 if (Triple.getOS() != llvm::Triple::UnknownOS)
131 if (Triple.getEnvironment() != llvm::Triple::EABI &&
132 Triple.getEnvironment() != llvm::Triple::EABIHF)
139 static bool isAArch64BareMetal(const llvm::Triple &Triple) {
140 if (Triple.getArch() != llvm::Triple::aarch64 &&
141 Triple.getArch() != llvm::Triple::aarch64_be)
144 if (Triple.getVendor() != llvm::Triple::UnknownVendor)
147 if (Triple.getOS() != llvm::Triple::UnknownOS)
150 return Triple.getEnvironmentName() == "elf";
153 static bool isRISCVBareMetal(const llvm::Triple &Triple) {
154 if (!Triple.isRISCV())
157 if (Triple.getVendor() != llvm::Triple::UnknownVendor)
160 if (Triple.getOS() != llvm::Triple::UnknownOS)
163 return Triple.getEnvironmentName() == "elf";
167 static bool isPPCBareMetal(const llvm::Triple &Triple) {
168 return Triple.isPPC() && Triple.getOS() == llvm::Triple::UnknownOS &&
169 Triple.getEnvironment() == llvm::Triple::EABI;
198 const llvm::Triple &Triple) {
218 void BareMetal::findMultilibs(const Driver &D, const llvm::Triple &Triple,
221 if (isRISCVBareMetal(Triple)) {
222 if (findRISCVMultilibs(D, Triple, Args, Result)) {
227 llvm::SmallString<128> MultilibPath(computeBaseSysRoot(D, Triple));
235 bool BareMetal::handlesTarget(const llvm::Triple &Triple) {
236 return isARMBareMetal(Triple) || isAArch64BareMetal(Triple) ||
237 isRISCVBareMetal(Triple) || isPPCBareMetal(Triple);
471 const llvm::Triple::ArchType Arch = TC.getArch();
472 const llvm::Triple &Triple = getToolChain().getEffectiveTriple();
481 if (Triple.isARM() || Triple.isThumb()) {
482 bool IsBigEndian = arm::isARMBigEndian(Triple, Args);
484 arm::appendBE8LinkFlag(Args, CmdArgs, Triple);
486 } else if (Triple.isAArch64()) {
487 CmdArgs.push_back(Arch == llvm::Triple::aarch64_be ? "-EB" : "-EL");
542 const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
543 const bool IsAArch64 = getTriple().getArch() == llvm::Triple::aarch64 ||
544 getTriple().getArch() == llvm::Triple::aarch64_be;
545 const bool IsRISCV64 = getTriple().getArch() == llvm::Triple::riscv64;