32 MAB.getTargetOptions().getABIName()));
48 S.appendContents(4, 0);
55 S.appendContents(8, 0);
71 unsigned EFlags = W.getELFHeaderEFlags();
89 W.setELFHeaderEFlags(EFlags);
94 unsigned MaxBytesToEmit) {
101 AlignFrag->setLinkerRelaxable();
106 std::unique_ptr<MCAsmBackend> MAB,
107 std::unique_ptr<MCObjectWriter> MOW,
108 std::unique_ptr<MCCodeEmitter> MCE) {
110 C, std::move(MAB), std::move(MOW), std::move(MCE));
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
static bool shouldRelaxAlign(const MCFragment &F)
Check whether an alignment fragment needs linker relaxation.
void emitCodeAlignment(Align Alignment, const MCSubtargetInfo &STI, unsigned MaxBytesToEmit) override
Emit nops until the byte alignment ByteAlignment is reached.
MCELFStreamer & getStreamer()
void emitDirectiveOptionPop() override
void emitDirectiveOptionPush() override
void emitDTPRel32Value(const MCExpr *) override
void emitDirectiveOptionNoRelax() override
void emitDirectiveOptionRelax() override
void emitDTPRel64Value(const MCExpr *) override
LoongArchTargetELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI)
LoongArchABI::ABI getTargetABI() const
LoongArchTargetStreamer(MCStreamer &S)
void setTargetABI(LoongArchABI::ABI ABI)
MCAsmBackend & getBackend() const
Context object for machine code objects.
ELFObjectWriter & getWriter()
Base class for the full range of assembler expressions which are needed for parsing.
MCAssembler & getAssembler()
void emitCodeAlignment(Align ByteAlignment, const MCSubtargetInfo &STI, unsigned MaxBytesToEmit=0) override
Emit nops until the byte alignment ByteAlignment is reached.
Streaming machine code generation interface.
MCFragment * getCurrentFragment() const
Generic base class for all target subtargets.
const Triple & getTargetTriple() const
const FeatureBitset & getFeatureBits() const
LLVM Value Representation.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ EF_LOONGARCH_ABI_SINGLE_FLOAT
@ EF_LOONGARCH_ABI_DOUBLE_FLOAT
@ EF_LOONGARCH_ABI_SOFT_FLOAT
ABI computeTargetABI(const Triple &TT, const FeatureBitset &FeatureBits, StringRef ABIName)
@ fixup_loongarch_dtprel64
@ fixup_loongarch_dtprel32
This is an optimization pass for GlobalISel generic memory operations.
MCELFStreamer * createLoongArchELFStreamer(MCContext &C, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > MOW, std::unique_ptr< MCCodeEmitter > MCE)
This struct is a compact representation of a valid (non-zero power of two) alignment.