#include "MCTargetDesc/SystemZMCFixups.h"
#include "MCTargetDesc/SystemZMCTargetDesc.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCFixup.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstdint>
#include <memory>
usingnamespacellvm;
namespace {
class SystemZELFObjectWriter : public MCELFObjectTargetWriter { … };
}
SystemZELFObjectWriter::SystemZELFObjectWriter(uint8_t OSABI)
: … { … }
static unsigned getAbsoluteReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
static unsigned getPCRelReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
static unsigned getTLSLEReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
static unsigned getTLSLDOReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
static unsigned getTLSLDMReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
static unsigned getTLSGDReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
static unsigned getPLTReloc(MCContext &Ctx, SMLoc Loc, unsigned Kind) { … }
unsigned SystemZELFObjectWriter::getRelocType(MCContext &Ctx,
const MCValue &Target,
const MCFixup &Fixup,
bool IsPCRel) const { … }
std::unique_ptr<MCObjectTargetWriter>
llvm::createSystemZELFObjectWriter(uint8_t OSABI) { … }