16 #include "llvm/ADT/StringSwitch.h" 18 using namespace clang;
21 const char *
const LanaiTargetInfo::GCCRegNames[] = {
22 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
"r8",
"r9",
"r10",
23 "r11",
"r12",
"r13",
"r14",
"r15",
"r16",
"r17",
"r18",
"r19",
"r20",
"r21",
24 "r22",
"r23",
"r24",
"r25",
"r26",
"r27",
"r28",
"r29",
"r30",
"r31" 28 return llvm::makeArrayRef(GCCRegNames);
32 {{
"pc"},
"r2"}, {{
"sp"},
"r4"}, {{
"fp"},
"r5"}, {{
"rv"},
"r8"},
33 {{
"rr1"},
"r10"}, {{
"rr2"},
"r11"}, {{
"rca"},
"r15"},
37 return llvm::makeArrayRef(GCCRegAliases);
41 return llvm::StringSwitch<bool>(Name).Case(
"v11",
true).Default(
false);
45 Values.emplace_back(
"v11");
49 CPU = llvm::StringSwitch<CPUKind>(Name).Case(
"v11", CK_V11).Default(CK_NONE);
51 return CPU != CK_NONE;
55 return llvm::StringSwitch<bool>(Feature).Case(
"lanai",
true).Default(
false);
69 llvm_unreachable(
"Unhandled target CPU");
Defines the clang::MacroBuilder utility class.
void fillValidCPUList(SmallVectorImpl< StringRef > &Values) const override
Fill a SmallVectorImpl with the valid values to setCPU.
bool hasFeature(StringRef Feature) const override
Determine whether the given target has the given feature.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
===-— Other target property query methods --------------------——===//
ArrayRef< TargetInfo::GCCRegAlias > getGCCRegAliases() const override
bool isValidCPUName(StringRef Name) const override
brief Determine whether this TargetInfo supports the given CPU name.
bool setCPU(const std::string &Name) override
Target the specified CPU.
Dataflow Directional Tag Classes.
ArrayRef< const char * > getGCCRegNames() const override
void defineMacro(const Twine &Name, const Twine &Value="1")
Append a #define line for macro of the form "\#define Name Value\n".