aboutsummaryrefslogtreecommitdiff
path: root/lib/MC/MCAssembler.cpp
AgeCommit message (Collapse)Author
2010-02-17MC/Mach-O: Update fixup values for change to X86 offsets.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96532 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Pacify gcc-4.5, which warns (correctly) that these switches haveDuncan Sands
cases that are not part of the enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96477 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MCAssembler: Fix pcrel relocations. Oh and,Daniel Dunbar
-- ddunbar@ozzy:tmp$ clang -m32 -integrated-as hello.c && ./a.out hello world! -- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96096 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MC/Mach-O: Start emitting fixups/relocations for instructions.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96095 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MCAssembler: Switch MCAsmFixup to storing MCFixupKind instead of just a size.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96094 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MCAssembler: Sink fixup list into MCDataFragment.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96093 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MCAssembler: Switch MCFillFragment to only taking constant values. Symbolic ↵Daniel Dunbar
expressions can always be emitted as data + fixups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96092 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MCAssembler: Start applying fixups in the data section.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96090 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13MCAssembler: Add assorted dump() methods.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96089 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11MC: Move assembler-backend's fixup list into the fragment.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95926 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11MC: Move MCSectionData::Fixup out to MCAsmFixup.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09llvm-mc: Add --show-fixups option, for displaying the instruction fixup ↵Daniel Dunbar
information in the asm comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95710 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02MC/Mach-O: Set SOME_INSTRUCTIONS bit for sections.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95135 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Add a new top-level MachO.h file for manifest constants, fixing Chris Lattner
a layering violation from MC -> Target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95113 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19Remove this fixme, looking at the linker source, all targets pad to 4 bytes.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93835 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Pass StringRef by value.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86251 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-16Minor formatting tweaks.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84235 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-16MC: Switch assembler API to using MCExpr instead of MCValue.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84234 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01llvm-mc: Store MCSymbolData value as a pointer (to make MSVC happy).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80652 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31llvm-mc: Make MCSymbolData symbol member const.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31llvm-mc: Add MCContext to MCAssembler.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80572 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28llvm-mc: Support .comm emission.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80351 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28llvm-mc: Support .zerofill emission.Daniel Dunbar
- I'm still trying to figure out the cleanest way to implement this and match the assembler, currently there are some substantial differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28llvm-mc: Tweak section alignment and size computation to match 'as' closer.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80345 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28llvm-mc: Fix thinko in emitting values.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80340 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27Try to make MSVC just a little happier.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80187 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc/Mach-O: Don't put assembler temporary labels in the symbol table.Daniel Dunbar
- I moved section creation back into AsmParser. I think policy decisions like this should be pushed higher, not lower, when possible (in addition the assembler has flags which change this behavior, for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80162 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc/Mach-O: Set .subsections_via_symbols flag properly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80144 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc/Mach-O: Add support for relocations.Daniel Dunbar
- I haven't really tried to find the "right" way to store the fixups or apply them, yet. This works, but isn't particularly elegant or fast. - Still no evaluation support, so we don't actually ever not turn a fixup into a relocation entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80089 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc/Mach-O: Move symbol indices into the MCSymbolData structure.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80088 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc/Mach-O: Add section padding where needed (to align the next section).Daniel Dunbar
Also, simplify some of Mach-O writer code which can now use section addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc/Mach-O: Set addresses for symbols.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80065 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26llvm-mc: Improve indirect symbol support (add the indirect index table).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80059 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25llvm-mc: Add statistic for number of fragments emitted by the assembler.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24llvm-mc/Mach-O: Preliminary support for indirect symbols.Daniel Dunbar
- The indirect table itself isn't being filled in yet. - This isn't factored properly and is rather FIXMEd, but at the moment I'm more focused on figuring out what it needs to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79910 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24llvm-mc/Mach-O: Support symbol attributes.Daniel Dunbar
- This is mostly complete, the main thing missing is .indirect_symbol support (which would be straight-forward, except that the way it is implemented in 'as' makes getting an exact .o match interesting). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79899 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24llvm-mc: Tweak undefined symbol handling.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24prune the #includes in raw_ostream.h by moving a Chris Lattner
member out of line. ftostr is not particularly speedy, so that method is presumably not perf sensitive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22tweak #includesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79744 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22llvm-mc/Mach-O: Improve symbol table support:Daniel Dunbar
- Honor .globl. - Set symbol type and section correctly ('nm' now works), and order symbols appropriately. - Take care to the string table so that the .o matches 'as' exactly (for ease of testing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22llvm-mc/Mach-O: Sketch symbol table support.Daniel Dunbar
- The only .s syntax this honors right now is emitting labels, and some parts of the symbol table generation are wrong or faked. - This is enough to get nm to report such symbols... incorrectly, but still. Also, fixed byte emission to extend the previous fragment if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79739 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22llvm-mc/Mach-O: Move more logic for writing the Mach-O file into the writerDaniel Dunbar
class, and kill off MCSectionData::FileOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22llvm-mc: Rename / redefine MCFragment::FileOffset to MCFragment::Offset (theDaniel Dunbar
section offset). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79734 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21llvm-mc/Mach-O: Support .o emission for .org and .align.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79684 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21llvm-mc/Mach-O: Support byte and fill value emission.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79652 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21llvm-mc: Start MCAssembler and MCMachOStreamer.Daniel Dunbar
- Together these form the (Mach-O) back end of the assembler. - MCAssembler is the actual assembler backend, which is designed to have a reasonable API. This will eventually grow to support multiple object file implementations, but for now its Mach-O/i386 only. - MCMachOStreamer adapts the MCStreamer "actions" API to the MCAssembler API, e.g. converting the various directives into fragments, managing state like the current section, and so on. - llvm-mc will use the new backend via '-filetype=obj', which may eventually be, but is not yet, since I hear that people like assemblers which actually assemble. - The only thing that works at the moment is changing sections. For the time being I have a Python Mach-O dumping tool in test/scripts so this stuff can be easily tested, eventually I expect to replace this with a real LLVM tool. - More doxyments to come. I assume that since this stuff doesn't touch any of the things which are part of 2.6 that it is ok to put this in not so long before the freeze, but if someone objects let me know, I can pull it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79612 91177308-0d34-0410-b5e6-96231b3b80d8