17 #include "llvm/ADT/StringSwitch.h" 19 using namespace clang;
22 const char *
const SparcTargetInfo::GCCRegNames[] = {
23 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
"r8",
"r9",
"r10",
24 "r11",
"r12",
"r13",
"r14",
"r15",
"r16",
"r17",
"r18",
"r19",
"r20",
"r21",
25 "r22",
"r23",
"r24",
"r25",
"r26",
"r27",
"r28",
"r29",
"r30",
"r31" 29 return llvm::makeArrayRef(GCCRegNames);
33 {{
"g0"},
"r0"}, {{
"g1"},
"r1"}, {{
"g2"},
"r2"}, {{
"g3"},
"r3"},
34 {{
"g4"},
"r4"}, {{
"g5"},
"r5"}, {{
"g6"},
"r6"}, {{
"g7"},
"r7"},
35 {{
"o0"},
"r8"}, {{
"o1"},
"r9"}, {{
"o2"},
"r10"}, {{
"o3"},
"r11"},
36 {{
"o4"},
"r12"}, {{
"o5"},
"r13"}, {{
"o6",
"sp"},
"r14"}, {{
"o7"},
"r15"},
37 {{
"l0"},
"r16"}, {{
"l1"},
"r17"}, {{
"l2"},
"r18"}, {{
"l3"},
"r19"},
38 {{
"l4"},
"r20"}, {{
"l5"},
"r21"}, {{
"l6"},
"r22"}, {{
"l7"},
"r23"},
39 {{
"i0"},
"r24"}, {{
"i1"},
"r25"}, {{
"i2"},
"r26"}, {{
"i3"},
"r27"},
40 {{
"i4"},
"r28"}, {{
"i5"},
"r29"}, {{
"i6",
"fp"},
"r30"}, {{
"i7"},
"r31"},
44 return llvm::makeArrayRef(GCCRegAliases);
48 return llvm::StringSwitch<bool>(Feature)
49 .Case(
"softfloat", SoftFloat)
55 return llvm::StringSwitch<CPUKind>(Name)
114 if (
getTriple().getOS() != llvm::Triple::Solaris)
119 if (
getTriple().getOS() != llvm::Triple::Solaris) {
125 if (
getTriple().getVendor() == llvm::Triple::Myriad) {
126 std::string MyriadArchValue, Myriad2Value;
131 MyriadArchValue =
"__ma2100";
135 MyriadArchValue =
"__ma2150";
139 MyriadArchValue =
"__ma2155";
143 MyriadArchValue =
"__ma2450";
147 MyriadArchValue =
"__ma2455";
154 MyriadArchValue =
"__ma2080";
158 MyriadArchValue =
"__ma2085";
162 MyriadArchValue =
"__ma2480";
166 MyriadArchValue =
"__ma2485";
173 MyriadArchValue =
"__ma2100";
177 if (!MyriadArchValue.empty()) {
192 if (
getTriple().getOS() != llvm::Triple::Solaris) {
void DefineStd(MacroBuilder &Builder, StringRef MacroName, const LangOptions &Opts)
DefineStd - Define a macro name and standard variants.
Defines the clang::MacroBuilder utility class.
const llvm::Triple & getTriple() const
Returns the target triple of the primary target.
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
===-— Other target property query methods --------------------——===//
ArrayRef< TargetInfo::GCCRegAlias > getGCCRegAliases() const override
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
===-— Other target property query methods --------------------——===//
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 --------------------——===//
Dataflow Directional Tag Classes.
enum clang::targets::SparcTargetInfo::CPUKind CPU
bool hasFeature(StringRef Feature) const override
Determine whether the given target has the given feature.
CPUGeneration getCPUGeneration(CPUKind Kind) const
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".
CPUKind getCPUKind(StringRef Name) const