aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCObjectWriter.cpp
AgeCommit message (Collapse)AuthorFilesLines
2012-08-08Move [SU]LEB128 encoding to a utility header.Jim Grosbach1-34/+0
These functions are very generic. There's no reason for them to be tied to MCObjectWriter. llvm-svn: 161545
2012-01-31Fixed a crash in llvm-mc for Mach-O when a symbol difference expression uses aKevin Enderby1-0/+2
symbol from an assignment. In this case the symbol did not have a fragment so MCObjectWriter::IsSymbolRefDifferenceFullyResolved() should not have been calling IsSymbolRefDifferenceFullyResolvedImpl() with a NULL fragment and should just have returned false in that case. llvm-svn: 149442
2011-11-05Add an option to pad an uleb128 to MCObjectWriter and remove the uleb128 ↵Benjamin Kramer1-2/+10
encoding from the DWARF asm printer. As a side effect we now print dwarf ulebs with .ascii directives. llvm-svn: 143809
2011-02-16Gas is very inconsistent about when a relaxation/relocation is needed. DoRafael Espindola1-0/+12
the right thing and stop trying to copy it. Fixes PR8944. llvm-svn: 125648
2010-12-24Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We nowRafael Espindola1-3/+9
have a single point where targets test if a relocation is needed. llvm-svn: 122549
2010-12-18Merge isAbsolute into IsSymbolRefDifferenceFullyResolved.Rafael Espindola1-0/+21
llvm-svn: 122148
2010-09-30This is the last major patch to implement support for the .loc directiveKevin Enderby1-0/+26
and output the dwarf line number tables. This contains the code to emit and encode the dwarf line tables from the previously gathered information in the MCLineSection objects. This contains all the details to encode the line and address deltas into the dwarf line table. To do this an MCDwarfLineAddrFragment has been added. Also this moves the interface code out of Mach-O streamer into MCDwarf so it should be useable by other object file formats. There is now one call to be made from an MCObjectStreamer EmitInstruction() method: MCLineEntry::Make(this, getCurrentSection()); to create a line entry after each instruction is assembled. And one call call to be made from an MCObjectStreamer Finish() method: MCDwarfFileTable::Emit(this, DwarfLineSection); when getContext().hasDwarfFiles() is true and is passed a object file specific MCSection where to emit the dwarf file and the line tables. This appears to now be correct for 32-bit targets, at least x86. But the relocation entries for 64-bit Darwin needs some further work which is next up to work on. So for now the 64-bit Mach-O target does not output the dwarf file and line tables. llvm-svn: 115157
2010-03-19MC/Mach-O: Move to MachObjectWriter.{h,cpp}.Daniel Dunbar1-1/+1
llvm-svn: 98952
2010-03-19MC: Split MCObjectWriter out of MCAssembler.cpp.Daniel Dunbar1-0/+15
llvm-svn: 98949