llvm-mirror/lib/MC
Chris Lattner 7b52d90c9e Big change #1 for personality function references:
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding
fields from MAI: they aren't part of the asm syntax, they are
related to the structure of the object file.

To replace their functionality, add a new 
TLOF::getSymbolForDwarfGlobalReference method which asks targets
to decide how to reference a global from EH in a pc-relative way.

The default implementation just returns the symbol.  The default
darwin implementation references the symbol through an indirect
$non_lazy_ptr stub.  The bizarro x86-64 darwin specialization
handles the weird "foo@GOTPCREL+4" hack.

DwarfException.cpp now uses this to emit the reference to the
symbol in the right way, and this also eliminates another 
horrible hack from DwarfException.cpp:

-    if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL"))
-      O << "-" << MAI->getPCSymbol();

llvm-svn: 81991
2009-09-16 01:46:41 +00:00
..
CMakeLists.txt Update CMake. 2009-09-14 05:22:47 +00:00
Makefile
MCAsmInfo.cpp Big change #1 for personality function references: 2009-09-16 01:46:41 +00:00
MCAsmInfoCOFF.cpp
MCAsmInfoDarwin.cpp Big change #1 for personality function references: 2009-09-16 01:46:41 +00:00
MCAsmLexer.cpp
MCAsmParser.cpp
MCAsmStreamer.cpp Change MCAsmStreamer to take an MCInstPrinter instead of a 2009-09-14 03:02:37 +00:00
MCAssembler.cpp
MCCodeEmitter.cpp
MCContext.cpp
MCDisassembler.cpp
MCExpr.cpp add a helper method for creating MCSymbol and MCSymbolRefExpr at 2009-09-16 01:26:31 +00:00
MCInst.cpp
MCInstPrinter.cpp
MCMachOStreamer.cpp
MCNullStreamer.cpp
MCSection.cpp
MCSectionELF.cpp
MCSectionMachO.cpp
MCStreamer.cpp
MCSymbol.cpp
MCValue.cpp
TargetAsmParser.cpp