Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | This is the last major patch to implement support for the .loc directive | Kevin Enderby | 2010-09-30 | 1 | -0/+38 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Make it possible for the MCObjectWriter to decide if a given fixup is fully | Rafael Espindola | 2010-09-30 | 1 | -128/+27 |
| | | | | | | | | | | | resolved or not. Different object files have different restrictions and different native assemblers have different idiosyncrasies we want to emulate for now. Move the existing MachO logic to the new place and implement an ELF one that gets fixups to globals right. llvm-svn: 115131 | ||||
* | Remove unused argument. | Rafael Espindola | 2010-09-27 | 1 | -4/+3 |
| | | | | llvm-svn: 114852 | ||||
* | MC: Add missing ')' in diagnostic. | Daniel Dunbar | 2010-09-24 | 1 | -1/+1 |
| | | | | llvm-svn: 114717 | ||||
* | Avoid some Mach-O specific alignment being done on ELF. | Rafael Espindola | 2010-09-22 | 1 | -18/+20 |
| | | | | llvm-svn: 114594 | ||||
* | Add a InitSections method to the streamer interface. | Rafael Espindola | 2010-09-15 | 1 | -1/+1 |
| | | | | | | | | | | | | | | The ELF implementation now creates text, data and bss to match the gnu as behavior. The text streamer still has the old MachO specific behavior since the testsuite checks that it will error when a directive is given before a setting the current section for example. A nice benefit is that -n is not required anymore when producing ELF files. llvm-svn: 114027 | ||||
* | MC: Give a (lame) hard error if a .org directive would create an unreasonably | Daniel Dunbar | 2010-09-09 | 1 | -1/+1 |
| | | | | | | large object file (> 1GB). llvm-svn: 113494 | ||||
* | MC/ELF: Allow null values in virtual sections, ELF doesn't use special | Daniel Dunbar | 2010-08-18 | 1 | -1/+16 |
| | | | | | | directives for putting contents in .bss, for example. llvm-svn: 111376 | ||||
* | Layout helper function. | Matt Fleming | 2010-08-16 | 1 | -0/+34 |
| | | | | | | | | Introduce a helper method to add a section to the end of a layout. This will be used by the ELF ObjectWriter code to add the metadata sections (symbol table, etc) to the end of an object file. llvm-svn: 111171 | ||||
* | Record a symbol's size which is needed for ELF symbol tables. | Matt Fleming | 2010-08-16 | 1 | -1/+2 |
| | | | | llvm-svn: 111170 | ||||
* | MC: Initialize MCFragment::Offset, noticed by Cameron Esfahani. | Daniel Dunbar | 2010-07-30 | 1 | -1/+2 |
| | | | | llvm-svn: 109875 | ||||
* | MC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh). | Daniel Dunbar | 2010-07-28 | 1 | -0/+3 |
| | | | | llvm-svn: 109649 | ||||
* | Initial modifications to MCAssembler and TargetMachine for the MCJIT. | Reid Kleckner | 2010-07-22 | 1 | -4/+10 |
| | | | | | | Patch by Olivier Meurant! llvm-svn: 109080 | ||||
* | The variable ValueSize is set to 1 on both code paths, and then | Duncan Sands | 2010-06-29 | 1 | -5/+1 |
| | | | | | | ignored! Remove it. llvm-svn: 107138 | ||||
* | MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol. | Daniel Dunbar | 2010-06-16 | 1 | -6/+5 |
| | | | | llvm-svn: 106142 | ||||
* | Don't call flush() at a library level which isn't checking for errors | Dan Gohman | 2010-06-01 | 1 | -1/+0 |
| | | | | | | and doesn't know where the output is going. llvm-svn: 105274 | ||||
* | MC: When running with -mc-relax-all, we can eagerly relax instructions and ↵ | Daniel Dunbar | 2010-05-26 | 1 | -5/+2 |
| | | | | | | avoid creating unnecessary MCInstFragments. llvm-svn: 104736 | ||||
* | MC: Change RelaxInstruction to only take the input and output instructions. | Daniel Dunbar | 2010-05-26 | 1 | -1/+1 |
| | | | | llvm-svn: 104713 | ||||
* | MC: Simplify MayNeedRelaxation to not provide the fixups, so we can query it | Daniel Dunbar | 2010-05-26 | 1 | -1/+1 |
| | | | | | | before encoding. llvm-svn: 104707 | ||||
* | MC: Eliminate MCAsmFixup, replace with MCFixup. | Daniel Dunbar | 2010-05-26 | 1 | -12/+10 |
| | | | | llvm-svn: 104699 | ||||
* | MC: Use accessors for access to MCAsmFixup. | Daniel Dunbar | 2010-05-26 | 1 | -6/+7 |
| | | | | llvm-svn: 104697 | ||||
* | MC: Eliminate MCFragment vtable, which was unnecessary. | Daniel Dunbar | 2010-05-26 | 1 | -69/+62 |
| | | | | llvm-svn: 104689 | ||||
* | MC: Switch to completely lazy layout. | Daniel Dunbar | 2010-05-14 | 1 | -19/+35 |
| | | | | | | - The eliminates the last major algorithmic problem with MC. llvm-svn: 103754 | ||||
* | MC: Extend MCAsmLayout to explicitly track which fragments have been layed ↵ | Daniel Dunbar | 2010-05-14 | 1 | -10/+44 |
| | | | | | | out, and enforce several invariants to LayoutFragment to ensure we only do layout in a sensible order. llvm-svn: 103753 | ||||
* | MC: Implicitly assign section addresses when the previous fragment is layed out. | Daniel Dunbar | 2010-05-14 | 1 | -1/+11 |
| | | | | llvm-svn: 103752 | ||||
* | MC: Switch MCFragment to storing the layout order index, not its index in ↵ | Daniel Dunbar | 2010-05-14 | 1 | -13/+14 |
| | | | | | | the file. llvm-svn: 103751 | ||||
* | MC: Change LayoutSection() to only do the section initializiation. | Daniel Dunbar | 2010-05-14 | 1 | -25/+13 |
| | | | | | | Also, elimminate MCAsmLayout::set*, which are no longer needed. llvm-svn: 103750 | ||||
* | MC: Move Layout{Fragment,Section} into MCAsmLayout, and add LayoutFile(). | Daniel Dunbar | 2010-05-13 | 1 | -26/+27 |
| | | | | llvm-svn: 103738 | ||||
* | MC: Factor out MCAssembler::ComputeFragmentSize. | Daniel Dunbar | 2010-05-13 | 1 | -36/+44 |
| | | | | llvm-svn: 103724 | ||||
* | MC: Add section layout order indices to MCSectionData. | Daniel Dunbar | 2010-05-13 | 1 | -0/+4 |
| | | | | llvm-svn: 103715 | ||||
* | MC: Move ordinal calculation, to make sure fragments synthesized for layout ↵ | Daniel Dunbar | 2010-05-13 | 1 | -21/+21 |
| | | | | | | get assigned ordinals properly. llvm-svn: 103711 | ||||
* | MC: Create dummy fragments to avoid ever having empty sections, which ↵ | Daniel Dunbar | 2010-05-13 | 1 | -8/+9 |
| | | | | | | simplifies layout. llvm-svn: 103710 | ||||
* | MC: Add MCAsmLayout::FragmentReplaced() helper function. | Daniel Dunbar | 2010-05-13 | 1 | -4/+6 |
| | | | | llvm-svn: 103709 | ||||
* | Fix -Asserts warning. | Daniel Dunbar | 2010-05-13 | 1 | -4/+2 |
| | | | | llvm-svn: 103697 | ||||
* | MC: Eliminate MCSectionData::{,Address,File}Size, which can now be computed by | Daniel Dunbar | 2010-05-13 | 1 | -42/+28 |
| | | | | | | utility functions. llvm-svn: 103695 | ||||
* | MC: Switch to using explicit MCAlignFragments with OnlyAlignAddress bit instead | Daniel Dunbar | 2010-05-13 | 1 | -22/+31 |
| | | | | | | | | of manually doing padding/editing layout in LayoutSection(). - This probably seems like six-of-one and half-dozen of another, but there is a method to my madness. llvm-svn: 103693 | ||||
* | MC: Add MCAlignFragment::OnlyAlignAddress bit. This is a bit of magic that ↵ | Daniel Dunbar | 2010-05-13 | 1 | -1/+17 |
| | | | | | | says the align fragment shouldn't contribute to the logical section size, it is will be used for cleaning up the code to handle section alignment. llvm-svn: 103690 | ||||
* | MC: Add MCSectionData::AddressSize, which is the size of the address space ↵ | Daniel Dunbar | 2010-05-13 | 1 | -6/+15 |
| | | | | | | consumed by the section. This can differ from both the section logical size, and the section size on disk (although the current code handles this without making an explicit distinction). llvm-svn: 103689 | ||||
* | MC: Move MCAlignFragment::EmitNops value out of the constructor. | Daniel Dunbar | 2010-05-12 | 1 | -1/+1 |
| | | | | llvm-svn: 103665 | ||||
* | MC: Eliminate MCZeroFillFragment, it is no longer needed. | Daniel Dunbar | 2010-05-12 | 1 | -23/+1 |
| | | | | llvm-svn: 103664 | ||||
* | MC: Explicitly check that only virtual fragments appear in virtual sections. | Daniel Dunbar | 2010-05-12 | 1 | -0/+23 |
| | | | | llvm-svn: 103663 | ||||
* | MC: Switch MCFillFragment to storing total fill size instead of a count. ↵ | Daniel Dunbar | 2010-05-12 | 1 | -3/+3 |
| | | | | | | This allows using ValueSize==0 to represent a virtual fill. llvm-svn: 103662 | ||||
* | MC: Drop support for alignment in ZeroFill fragment, we can just use | Daniel Dunbar | 2010-05-12 | 1 | -11/+4 |
| | | | | | | MCAlignFragments for this. llvm-svn: 103661 | ||||
* | Simplify. | Daniel Dunbar | 2010-05-12 | 1 | -5/+3 |
| | | | | llvm-svn: 103651 | ||||
* | MC: Factor out MCAssembler::LayoutFragment | Daniel Dunbar | 2010-05-12 | 1 | -74/+78 |
| | | | | llvm-svn: 103649 | ||||
* | MC: Tweak section layout to not relying on accumulating address value. | Daniel Dunbar | 2010-05-12 | 1 | -7/+13 |
| | | | | llvm-svn: 103648 | ||||
* | MC: Simplify LayoutSection to just take the index of the section to layout. | Daniel Dunbar | 2010-05-12 | 1 | -18/+16 |
| | | | | llvm-svn: 103627 | ||||
* | MC: Track section layout order explicitly, and use to simplify. | Daniel Dunbar | 2010-05-12 | 1 | -31/+15 |
| | | | | llvm-svn: 103616 | ||||
* | MC/Mach-O/x86_64: Add a new hook for checking whether a particular section can | Daniel Dunbar | 2010-05-12 | 1 | -0/+6 |
| | | | | | | | | be diced into atoms, and adjust getAtom() to take this into account. - This fixes relocations to symbols in fixed size literal sections, for example. llvm-svn: 103532 | ||||
* | MC/Mach-O x86_64: Switch to using fragment atom symbol. | Daniel Dunbar | 2010-05-11 | 1 | -37/+6 |
| | | | | | | | | | - This eliminates getAtomForAddress() (which was a linear search) and simplifies getAtom(). - This also fixes some correctness problems where local labels at the same address as non-local labels could be assigned to the wrong atom. llvm-svn: 103480 |