Skip to content
  1. Feb 16, 2010
  2. Feb 15, 2010
  3. Sep 18, 2009
    • Chris Lattner's avatar
      Make a new X8632_MachoTargetObjectFile TLOF implementation whose · 3a78ce3a
      Chris Lattner authored
      getSymbolForDwarfGlobalReference is smart enough to know that it 
      needs to register the stub it references with MachineModuleInfoMachO,
      so that it gets emitted at the end of the file.
      
      Move stub emission from X86ATTAsmPrinter::doFinalization to the
      new X86ATTAsmPrinter::EmitEndOfAsmFile asmprinter hook.  The important
      thing here is that EmitEndOfAsmFile is called *after* the ehframes are
      emitted, so we get all the stubs.
      
      This allows us to remove a gross hack from the asmprinter where it would
      "just know" that it needed to output stubs for personality functions.
      Now this is all driven from a consistent interface.
      
      The testcase change is just reordering the expected output now that the
      stubs come out after the ehframe instead of before.
      
      This also unblocks other changes that Bill wants to make.
      
      llvm-svn: 82269
      3a78ce3a
  4. Sep 17, 2009
  5. Sep 16, 2009
    • Chris Lattner's avatar
      Big change #1 for personality function references: · b866602f
      Chris Lattner authored
      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
      b866602f
Loading