13#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_VE_H
14#define LLVM_CLANG_LIB_BASIC_TARGETS_VE_H
18#include "llvm/Support/Compiler.h"
19#include "llvm/TargetParser/Triple.h"
30 LongDoubleWidth = 128;
31 LongDoubleAlign = 128;
32 LongDoubleFormat = &llvm::APFloat::IEEEquad();
33 DoubleAlign = LongLongAlign = 64;
35 LongWidth = LongAlign = PointerWidth = PointerAlign = 64;
36 SizeType = UnsignedLong;
37 PtrDiffType = SignedLong;
38 IntPtrType = SignedLong;
39 IntMaxType = SignedLong;
40 Int64Type = SignedLong;
42 MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
43 HasUnalignedAccess =
true;
45 WCharType = UnsignedInt;
46 WIntType = UnsignedInt;
47 UseZeroLengthBitfieldAlignment =
true;
49 "e-m:e-i64:64-n32:64-S128-v64:64:64-v128:64:64-v256:64:64-v512:64:64-"
50 "v1024:64:64-v2048:64:64-v4096:64:64-v8192:64:64-v16384:64:64");
61 return TargetInfo::VoidPtrBuiltinVaList;
76 static const char *
const GCCRegNames[] = {
78 "sx0",
"sx1",
"sx2",
"sx3",
"sx4",
"sx5",
"sx6",
"sx7",
79 "sx8",
"sx9",
"sx10",
"sx11",
"sx12",
"sx13",
"sx14",
"sx15",
80 "sx16",
"sx17",
"sx18",
"sx19",
"sx20",
"sx21",
"sx22",
"sx23",
81 "sx24",
"sx25",
"sx26",
"sx27",
"sx28",
"sx29",
"sx30",
"sx31",
82 "sx32",
"sx33",
"sx34",
"sx35",
"sx36",
"sx37",
"sx38",
"sx39",
83 "sx40",
"sx41",
"sx42",
"sx43",
"sx44",
"sx45",
"sx46",
"sx47",
84 "sx48",
"sx49",
"sx50",
"sx51",
"sx52",
"sx53",
"sx54",
"sx55",
85 "sx56",
"sx57",
"sx58",
"sx59",
"sx60",
"sx61",
"sx62",
"sx63",
100 {{
"s8",
"sl"},
"sx8"},
101 {{
"s9",
"fp"},
"sx9"},
102 {{
"s10",
"lr"},
"sx10"},
103 {{
"s11",
"sp"},
"sx11"},
104 {{
"s12",
"outer"},
"sx12"},
106 {{
"s14",
"tp"},
"sx14"},
107 {{
"s15",
"got"},
"sx15"},
108 {{
"s16",
"plt"},
"sx16"},
109 {{
"s17",
"info"},
"sx17"},
Defines the clang::TargetOptions class.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Exposes information about the current target.
BuiltinVaListKind
The different kinds of __builtin_va_list types defined by the target implementation.
Options for controlling the target.
ArrayRef< TargetInfo::GCCRegAlias > getGCCRegAliases() const override
bool allowsLargerPreferedTypeAlignment() const override
Whether target allows to overalign ABI-specified preferred alignment.
CallingConvCheckResult checkCallingConvention(CallingConv CC) const override
Determines whether a given calling convention is valid for the target.
ArrayRef< const char * > getGCCRegNames() const override
std::string_view getClobbers() const override
Returns a string of target-specific clobbers, in LLVM format.
BuiltinVaListKind getBuiltinVaListKind() const override
Returns the kind of __builtin_va_list type that should be used with this target.
bool validateAsmConstraint(const char *&Name, TargetInfo::ConstraintInfo &Info) const override
VETargetInfo(const llvm::Triple &Triple, const TargetOptions &)
bool hasSjLjLowering() const override
Controls if __builtin_longjmp / __builtin_setjmp can be lowered to llvm.eh.sjlj.longjmp / llvm....
Defines the clang::TargetInfo interface.
The JSON file list parser is used to communicate input to InstallAPI.
CallingConv
CallingConv - Specifies the calling convention that a function uses.