Lines Matching +full:isa +full:- +full:extensions
1 //===- MipsArchTree.cpp --------------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===---------------------------------------------------------------------===//
11 //===---------------------------------------------------------------------===//
66 assert(!files.empty() && "expected non-empty file list"); in checkFlags()
73 if (config->is64 && f.flags & EF_MIPS_MICROMIPS) in checkFlags()
74 error(toString(f.file) + ": microMIPS 64-bit is not supported"); in checkFlags()
83 error(toString(f.file) + ": -mnan=" + getNanName(nan2) + in checkFlags()
84 " is incompatible with target -mnan=" + getNanName(nan)); in checkFlags()
88 error(toString(f.file) + ": -mfp" + getFpName(fp2) + in checkFlags()
89 " is incompatible with target -mfp" + getFpName(fp)); in checkFlags()
103 // Check PIC/non-PIC compatibility. in getPicFlags()
109 ": linking non-abicalls code with abicalls code " + in getPicFlags()
113 ": linking abicalls code with non-abicalls code " + in getPicFlags()
117 // Compute the result PIC/non-PIC flag. in getPicFlags()
129 // MIPS32R6 and MIPS64R6 are not compatible with other extensions
130 // MIPS64R2 extensions.
135 // MIPS64 extensions.
139 // MIPS V extensions.
141 // R5000 extensions.
143 // MIPS IV extensions.
147 // VR4100 extensions.
150 // MIPS III extensions.
158 // MIPS32 extensions.
160 // MIPS II extensions.
163 // MIPS I extensions.
271 // ISA. If there are incompatible input files, we show an error.
282 // Check ISA compatibility. in getArchFlags()
286 error("incompatible target ISA:\n>>> " + toString(files[0].file) + ": " + in getArchFlags()
299 v.push_back({f, cast<ObjFile<ELFT>>(f)->getObj().getHeader().e_flags}); in calcMipsEFlags()
304 if (config->emulation.empty() || config->is64) in calcMipsEFlags()
306 return config->mipsN32Abi ? EF_MIPS_ABI2 : EF_MIPS_ABI_O32; in calcMipsEFlags()
321 return -1; in compareMipsFpAbi()
326 return -1; in compareMipsFpAbi()
334 return "-mdouble-float"; in getMipsFpAbiName()
336 return "-msingle-float"; in getMipsFpAbiName()
338 return "-msoft-float"; in getMipsFpAbiName()
340 return "-mgp32 -mfp64 (old)"; in getMipsFpAbiName()
342 return "-mfpxx"; in getMipsFpAbiName()
344 return "-mgp32 -mfp64"; in getMipsFpAbiName()
346 return "-mgp32 -mfp64 -mno-odd-spreg"; in getMipsFpAbiName()
365 return ef->template getObj<ELFT>().getHeader().e_flags & EF_MIPS_ABI2; in isN32Abi()
370 switch (config->ekind) { in isMipsN32Abi()
380 llvm_unreachable("unknown Config->EKind"); in isMipsN32Abi()
384 bool elf::isMicroMips() { return config->eflags & EF_MIPS_MICROMIPS; } in isMicroMips()
387 uint32_t arch = config->eflags & EF_MIPS_ARCH; in isMipsR6()