LLVM: lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
18
19using namespace llvm;
20
21void MipsELFMCAsmInfo::anchor() {}
22
26
29
30 if (TheTriple.isMIPS64() && !ABI.IsN32())
32
33 if (ABI.IsO32())
35 else if (ABI.IsN32() || ABI.IsN64())
38
50}
51
52void MipsCOFFMCAsmInfo::anchor() {}
53
64
71
74 int64_t AbsVal;
75
80 break;
82
83
85 return;
87 OS << "%call_hi";
88 break;
90 OS << "%call_lo";
91 break;
93 OS << "%dtprel_hi";
94 break;
96 OS << "%dtprel_lo";
97 break;
99 OS << "%got";
100 break;
102 OS << "%gottprel";
103 break;
105 OS << "%call16";
106 break;
108 OS << "%got_disp";
109 break;
111 OS << "%got_hi";
112 break;
114 OS << "%got_lo";
115 break;
117 OS << "%got_page";
118 break;
120 OS << "%got_ofst";
121 break;
123 OS << "%gp_rel";
124 break;
126 OS << "%hi";
127 break;
129 OS << "%higher";
130 break;
132 OS << "%highest";
133 break;
135 OS << "%lo";
136 break;
138 OS << "%neg";
139 break;
141 OS << "%pcrel_hi";
142 break;
144 OS << "%pcrel_lo";
145 break;
147 OS << "%tlsgd";
148 break;
150 OS << "%tlsldm";
151 break;
153 OS << "%tprel_hi";
154 break;
156 OS << "%tprel_lo";
157 break;
158 }
159
160 OS << '(';
162 OS << AbsVal;
163 else
165 OS << ')';
166}
167
174
175 return true;
176 }
177 }
178 }
179 }
180 return false;
181}
182
185
186
188 const MCExpr *SubExpr =
191 ->getSubExpr();
193 return false;
194
196 return true;
197 }
198
200 return false;
203}
204
209
213 return evaluate(Expr, Res, Asm);
214}
215
220
223 return evaluate(Expr, Res, Asm);
224}
static bool evaluate(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm)
static void printImpl(const MCAsmInfo &MAI, raw_ostream &OS, const MCSpecifierExpr &Expr)
Definition MipsMCAsmInfo.cpp:72
This class is intended to be used as a base class for asm properties and features specific to the tar...
const char * Data16bitsDirective
const char * Data64bitsDirective
ExceptionHandling ExceptionsType
Exception handling format for the target. Defaults to None.
bool AllowDollarAtStartOfIdentifier
This is true if the assembler allows the "$" character at the start of of a string to be lexed as an ...
StringRef PrivateGlobalPrefix
This prefix is used for globals like constant pool entries that are completely private to the ....
const char * Data32bitsDirective
WinEH::EncodingType WinEHEncodingType
Windows exception handling data (.pdata) encoding. Defaults to Invalid.
StringRef PrivateLabelPrefix
This prefix is used for labels for basic blocks.
void printExpr(raw_ostream &, const MCExpr &) const
bool AllowAtInName
This is true if the assembler allows @ characters in symbol names.
bool UseAssignmentForEHBegin
bool SupportsDebugInformation
True if target supports emission of debugging information.
bool HasSingleParameterDotFile
True if the target has a single parameter .file directive, this is true for ELF targets.
bool AlignmentIsInBytes
If this is true (the default) then the asmprinter emits ".align N" directives, where N is the number ...
const char * ZeroDirective
This should be set to the directive used to get some number of zero (and non-zero if supported by the...
bool DwarfRegNumForCFI
True if dwarf register numbers are printed instead of symbolic register names in ....
bool IsLittleEndian
True if target is little endian. Default is true.
unsigned CodePointerSize
Code pointer size in bytes. Default is 4.
unsigned CalleeSaveStackSlotSize
Size of the stack slot reserved for callee-saved registers, in bytes.
StringRef CommentString
This indicates the comment string used by the assembler.
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
LLVM_ABI bool evaluateAsRelocatable(MCValue &Res, const MCAssembler *Asm) const
Try to evaluate the expression to a relocatable value, i.e.
LLVM_ABI bool evaluateAsAbsolute(int64_t &Res) const
Try to evaluate the expression to an absolute value.
Extension point for target-specific MCExpr subclasses with a relocation specifier,...
const MCExpr * getSubExpr() const
static const MCSpecifierExpr * create(const MCExpr *Expr, Spec S, MCContext &Ctx, SMLoc Loc=SMLoc())
Spec getSpecifier() const
void setSpecifier(uint32_t S)
const MCSymbol * getSubSym() const
static MipsABIInfo computeTargetABI(const Triple &TT, StringRef ABIName)
bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const override
Definition MipsMCAsmInfo.cpp:221
MipsCOFFMCAsmInfo()
Definition MipsMCAsmInfo.cpp:54
void printSpecifierExpr(raw_ostream &OS, const MCSpecifierExpr &Expr) const override
Definition MipsMCAsmInfo.cpp:216
void printSpecifierExpr(raw_ostream &OS, const MCSpecifierExpr &Expr) const override
Definition MipsMCAsmInfo.cpp:205
MipsELFMCAsmInfo(const Triple &TheTriple, const MCTargetOptions &Options)
Definition MipsMCAsmInfo.cpp:23
bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const override
Definition MipsMCAsmInfo.cpp:210
Triple - Helper class for working with autoconf configuration names.
LLVM_ABI bool isLittleEndian() const
Tests whether the target triple is little endian.
bool isMIPS64() const
Tests whether the target is MIPS 64-bit (little and big endian).
This class implements an extremely fast bulk output stream that can only output to a stream.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
bool isGpOff(const MCSpecifierExpr &E)
Definition MipsMCAsmInfo.cpp:168
const MCSpecifierExpr * createGpOff(const MCExpr *Expr, Specifier S, MCContext &Ctx)
Definition MipsMCAsmInfo.cpp:65
@ Itanium
Windows CE ARM, PowerPC, SH3, SH4.
This is an optimization pass for GlobalISel generic memory operations.
decltype(auto) dyn_cast(const From &Val)
dyn_cast - Return the argument parameter cast to the specified type.
@ DwarfCFI
DWARF-like instruction based exceptions.
@ WinEH
Windows Exception Handling.
decltype(auto) cast(const From &Val)
cast - Return the argument parameter cast to the specified type.