LLVM  3.7.0
Classes | Enumerations | Functions
llvm::WinEH Namespace Reference

Classes

struct  Instruction
 
struct  FrameInfo
 
class  UnwindEmitter
 

Enumerations

enum  EncodingType {
  EncodingType::Invalid, EncodingType::Alpha, EncodingType::Alpha64, EncodingType::ARM,
  EncodingType::CE, EncodingType::Itanium, EncodingType::X86, EncodingType::MIPS = Alpha
}
 

Functions

static MCSectiongetUnwindInfoSection (StringRef SecName, MCSectionCOFF *UnwindSec, const MCSymbol *Function, MCContext &Context)
 We can't have one section for all .pdata or .xdata because the Microsoft linker seems to want all code relocations to refer to the same object file section. More...
 

Enumeration Type Documentation

Enumerator
Invalid 
Alpha 

Invalid.

Alpha64 

Windows Alpha.

ARM 

Windows AXP64.

CE 

Windows NT (Windows on ARM)

Itanium 

Windows CE ARM, PowerPC, SH3, SH4.

X86 

Windows x64, Windows Itanium (IA-64)

MIPS 

Windows x86, uses no CFI, just EH tables.

Definition at line 32 of file MCAsmInfo.h.

Function Documentation

static MCSection* llvm::WinEH::getUnwindInfoSection ( StringRef  SecName,
MCSectionCOFF *  UnwindSec,
const MCSymbol *  Function,
MCContext &  Context 
)
static

We can't have one section for all .pdata or .xdata because the Microsoft linker seems to want all code relocations to refer to the same object file section.

If the code described is comdat, create a new comdat section associated with that comdat. If the code described is not in the main .text section, make a new section for it. Otherwise use the main unwind info section.

Definition at line 28 of file MCWinEH.cpp.

References llvm::MCContext::getAssociativeCOFFSection(), llvm::MCSectionCOFF::getCharacteristics(), llvm::MCContext::getCOFFSection(), llvm::MCSectionCOFF::getCOMDATSymbol(), llvm::SectionKind::getDataRel(), llvm::MCSymbol::getSection(), llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA, llvm::COFF::IMAGE_SCN_LNK_COMDAT, llvm::COFF::IMAGE_SCN_MEM_READ, llvm::MCSymbol::isInSection(), llvm::ARMBuildAttrs::Section, llvm::StringRef::startswith(), and llvm::StringRef::substr().

Referenced by llvm::WinEH::UnwindEmitter::getPDataSection(), and llvm::WinEH::UnwindEmitter::getXDataSection().