LLVM  4.0.0
Public Member Functions | List of all members
llvm::MipsAsmBackend Class Reference

#include <MipsAsmBackend.h>

Inheritance diagram for llvm::MipsAsmBackend:
[legend]
Collaboration diagram for llvm::MipsAsmBackend:
[legend]

Public Member Functions

 MipsAsmBackend (const Target &T, Triple::OSType OSType, bool IsLittle, bool Is64Bit)
 
MCObjectWritercreateObjectWriter (raw_pwrite_stream &OS) const override
 Create a new MCObjectWriter instance for use by the assembler backend to emit the final object file. More...
 
void applyFixup (const MCFixup &Fixup, char *Data, unsigned DataSize, uint64_t Value, bool IsPCRel) const override
 ApplyFixup - Apply the Value for given Fixup into the provided data fragment, at the offset specified by the fixup and following the fixup kind as appropriate. More...
 
Optional< MCFixupKindgetFixupKind (StringRef Name) const override
 Map a relocation name used in .reloc to a fixup kind. More...
 
const MCFixupKindInfogetFixupKindInfo (MCFixupKind Kind) const override
 Get information on a fixup kind. More...
 
unsigned getNumFixupKinds () const override
 Get the number of target specific fixup kinds. More...
 
bool writeNopData (uint64_t Count, MCObjectWriter *OW) const override
 WriteNopData - Write an (optimal) nop sequence of Count bytes to the given output. More...
 
void processFixupValue (const MCAssembler &Asm, const MCAsmLayout &Layout, const MCFixup &Fixup, const MCFragment *DF, const MCValue &Target, uint64_t &Value, bool &IsResolved) override
 processFixupValue - Target hook to process the literal value of a fixup if necessary. More...
 
Target Relaxation Interfaces
bool mayNeedRelaxation (const MCInst &Inst) const override
 MayNeedRelaxation - Check whether the given instruction may need relaxation. More...
 
bool fixupNeedsRelaxation (const MCFixup &Fixup, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const override
 fixupNeedsRelaxation - Target specific predicate for whether a given fixup requires the associated instruction to be relaxed. More...
 
void relaxInstruction (const MCInst &Inst, const MCSubtargetInfo &STI, MCInst &Res) const override
 RelaxInstruction - Relax the instruction in the given fragment to the next wider instruction. More...
 
- Public Member Functions inherited from llvm::MCAsmBackend
virtual ~MCAsmBackend ()
 
virtual void reset ()
 lifetime management More...
 
virtual unsigned getMinimumNopSize () const
 Returns the minimum size of a nop in bytes on this target. More...
 
virtual void finishLayout (MCAssembler const &Asm, MCAsmLayout &Layout) const
 Give backend an opportunity to finish layout after relaxation. More...
 
virtual void handleAssemblerFlag (MCAssemblerFlag Flag)
 Handle any target-specific assembler flags. By default, do nothing. More...
 
virtual uint32_t generateCompactUnwindEncoding (ArrayRef< MCCFIInstruction >) const
 Generate the compact unwind encoding for the CFI instructions. More...
 
virtual bool fixupNeedsRelaxationAdvanced (const MCFixup &Fixup, bool Resolved, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const
 Target specific predicate for whether a given fixup requires the associated instruction to be relaxed. More...
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::MCAsmBackend
 MCAsmBackend ()
 

Detailed Description

Definition at line 29 of file MipsAsmBackend.h.

Constructor & Destructor Documentation

llvm::MipsAsmBackend::MipsAsmBackend ( const Target T,
Triple::OSType  OSType,
bool  IsLittle,
bool  Is64Bit 
)
inline

Definition at line 35 of file MipsAsmBackend.h.

Member Function Documentation

void MipsAsmBackend::applyFixup ( const MCFixup Fixup,
char *  Data,
unsigned  DataSize,
uint64_t  Value,
bool  IsPCRel 
) const
overridevirtual
MCObjectWriter * MipsAsmBackend::createObjectWriter ( raw_pwrite_stream OS) const
overridevirtual

Create a new MCObjectWriter instance for use by the assembler backend to emit the final object file.

Implements llvm::MCAsmBackend.

Definition at line 213 of file MipsAsmBackend.cpp.

References llvm::createMipsELFObjectWriter(), and llvm::MCELFObjectTargetWriter::getOSABI().

bool llvm::MipsAsmBackend::fixupNeedsRelaxation ( const MCFixup Fixup,
uint64_t  Value,
const MCRelaxableFragment DF,
const MCAsmLayout Layout 
) const
inlineoverridevirtual

fixupNeedsRelaxation - Target specific predicate for whether a given fixup requires the associated instruction to be relaxed.

Implements llvm::MCAsmBackend.

Definition at line 64 of file MipsAsmBackend.h.

References llvm_unreachable.

Optional< MCFixupKind > MipsAsmBackend::getFixupKind ( StringRef  Name) const
overridevirtual

Map a relocation name used in .reloc to a fixup kind.

Reimplemented from llvm::MCAsmBackend.

Definition at line 295 of file MipsAsmBackend.cpp.

References llvm::StringSwitch< T, R >::Default(), llvm::Mips::fixup_Mips_NONE, llvm::FK_Data_4, and llvm::MCAsmBackend::getFixupKind().

const MCFixupKindInfo & MipsAsmBackend::getFixupKindInfo ( MCFixupKind  Kind) const
overridevirtual
unsigned llvm::MipsAsmBackend::getNumFixupKinds ( ) const
inlineoverridevirtual

Get the number of target specific fixup kinds.

Implements llvm::MCAsmBackend.

Definition at line 47 of file MipsAsmBackend.h.

References llvm::Mips::NumTargetFixupKinds.

Referenced by getFixupKindInfo().

bool llvm::MipsAsmBackend::mayNeedRelaxation ( const MCInst Inst) const
inlineoverridevirtual

MayNeedRelaxation - Check whether the given instruction may need relaxation.

Parameters
Inst- The instruction to test.

Implements llvm::MCAsmBackend.

Definition at line 58 of file MipsAsmBackend.h.

void MipsAsmBackend::processFixupValue ( const MCAssembler Asm,
const MCAsmLayout Layout,
const MCFixup Fixup,
const MCFragment DF,
const MCValue Target,
uint64_t &  Value,
bool IsResolved 
)
overridevirtual

processFixupValue - Target hook to process the literal value of a fixup if necessary.

Reimplemented from llvm::MCAsmBackend.

Definition at line 476 of file MipsAsmBackend.cpp.

References adjustFixupValue(), and llvm::MCAssembler::getContext().

void llvm::MipsAsmBackend::relaxInstruction ( const MCInst Inst,
const MCSubtargetInfo STI,
MCInst Res 
) const
inlineoverridevirtual

RelaxInstruction - Relax the instruction in the given fragment to the next wider instruction.

Parameters
Inst- The instruction to relax, which may be the same as the output.
[out]ResOn return, the relaxed instruction.

Implements llvm::MCAsmBackend.

Definition at line 78 of file MipsAsmBackend.h.

bool MipsAsmBackend::writeNopData ( uint64_t  Count,
MCObjectWriter OW 
) const
overridevirtual

WriteNopData - Write an (optimal) nop sequence of Count bytes to the given output.

If the target cannot generate such a sequence, it should return an error.

Returns
- True on success.

Implements llvm::MCAsmBackend.

Definition at line 462 of file MipsAsmBackend.cpp.

References llvm::MCObjectWriter::WriteZeros().


The documentation for this class was generated from the following files: