Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | MC: Route access to SectionData offset and file size through MCAsmLayout. | Daniel Dunbar | 2010-03-25 | 1 | -10/+31 | |
| | | | | llvm-svn: 99474 | |||||
* | MC: Route access to Fragment offset and effective size through MCAsmLayout. | Daniel Dunbar | 2010-03-25 | 1 | -30/+54 | |
| | | | | llvm-svn: 99473 | |||||
* | MC: Eliminate MC{Fragment,{Section,Symbol}Data}::getAddress. | Daniel Dunbar | 2010-03-25 | 1 | -9/+7 | |
| | | | | llvm-svn: 99467 | |||||
* | MC: Direct all {fragment,section,symbol} address access through the ↵ | Daniel Dunbar | 2010-03-24 | 1 | -21/+49 | |
| | | | | | | MCAsmLayout object. llvm-svn: 99380 | |||||
* | MC: Sprinkle in some more interesting statistics. | Daniel Dunbar | 2010-03-23 | 1 | -1/+18 | |
| | | | | llvm-svn: 99350 | |||||
* | MC: Switch to using MCInst fragments to do relaxation. | Daniel Dunbar | 2010-03-23 | 1 | -78/+50 | |
| | | | | | | Also, both MCMachOStreamer and MCAssembler are now target independent! llvm-svn: 99256 | |||||
* | MC: Add TargetAsmBackend::MayNeedRelaxation, for checking whether a ↵ | Daniel Dunbar | 2010-03-23 | 1 | -1/+1 | |
| | | | | | | particular instruction + fixups might need relaxation. llvm-svn: 99249 | |||||
* | MC: Add TargetAsmBackend::WriteNopData and use to eliminate some target ↵ | Daniel Dunbar | 2010-03-23 | 1 | -62/+9 | |
| | | | | | | dependencies in MCMachOStreamer and MCAssembler. llvm-svn: 99248 | |||||
* | MC: Tweak MCInstFragment to include the encoded data and fixups, so that we ↵ | Daniel Dunbar | 2010-03-23 | 1 | -13/+5 | |
| | | | | | | don't need to recompute them during relaxation. I will revisit this once all the other pieces of fast relaxation are in place. llvm-svn: 99244 | |||||
* | MC: Add MCInstFragment, not used yet. | Daniel Dunbar | 2010-03-22 | 1 | -4/+80 | |
| | | | | llvm-svn: 99229 | |||||
* | MC: Fix a few more cases we were passing an MCDataFragment when a MCFragment ↵ | Daniel Dunbar | 2010-03-22 | 1 | -3/+4 | |
| | | | | | | would do, and sprinkle in some const. llvm-svn: 99218 | |||||
* | Simplify. | Daniel Dunbar | 2010-03-22 | 1 | -4/+2 | |
| | | | | llvm-svn: 99217 | |||||
* | MC: Change MCObjectWriter::RecordRelocation to take an MCFragment (instead ↵ | Daniel Dunbar | 2010-03-22 | 1 | -1/+1 | |
| | | | | | | of a MCDataFragment). Object files should only need the generic MCFragment features. llvm-svn: 99205 | |||||
* | MC: Eliminate MCFragment::getMaxFileSize. | Daniel Dunbar | 2010-03-22 | 1 | -2/+7 | |
| | | | | llvm-svn: 99203 | |||||
* | MC: Share the MCAsmLayout object, although its still not used for anything ↵ | Daniel Dunbar | 2010-03-22 | 1 | -15/+10 | |
| | | | | | | important. llvm-svn: 99202 | |||||
* | MC: Add TargetAsmBackend::createObjectWriter. | Daniel Dunbar | 2010-03-19 | 1 | -7/+7 | |
| | | | | | | - MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF. llvm-svn: 98955 | |||||
* | MCCodeEmitter: Add target independent fixup flag for is-pc-relative. | Daniel Dunbar | 2010-03-19 | 1 | -12/+4 | |
| | | | | llvm-svn: 98954 | |||||
* | MC: Sink code emitter into MCAssembler. | Daniel Dunbar | 2010-03-19 | 1 | -2/+3 | |
| | | | | llvm-svn: 98953 | |||||
* | MC/Mach-O: Move to MachObjectWriter.{h,cpp}. | Daniel Dunbar | 2010-03-19 | 1 | -820/+1 | |
| | | | | llvm-svn: 98952 | |||||
* | MC: Add TargetAsmBackend::isVirtualSection hook. | Daniel Dunbar | 2010-03-19 | 1 | -15/+7 | |
| | | | | llvm-svn: 98950 | |||||
* | MC: Split MCObjectWriter out of MCAssembler.cpp. | Daniel Dunbar | 2010-03-19 | 1 | -131/+30 | |
| | | | | llvm-svn: 98949 | |||||
* | MCAssembler: Pull out MCObjectWriter class. | Daniel Dunbar | 2010-03-19 | 1 | -82/+126 | |
| | | | | llvm-svn: 98948 | |||||
* | MCAssembler: Move ApplyFixup to the TargetAsmBackend, this is a target ↵ | Daniel Dunbar | 2010-03-19 | 1 | -12/+1 | |
| | | | | | | specific not object writer specific task. llvm-svn: 98947 | |||||
* | MC/Mach-O: Lift the fixup evaluation and application up (to the same place), ↵ | Daniel Dunbar | 2010-03-19 | 1 | -35/+31 | |
| | | | | | | and eliminate MCAsmFixup::FixedValue. llvm-svn: 98944 | |||||
* | MC/Mach-O: Factor out ExecutePostLayoutBinding, to separate the post-layout ↵ | Daniel Dunbar | 2010-03-19 | 1 | -31/+33 | |
| | | | | | | changes the object writer may need to make to the assembler from the actual .o writing. llvm-svn: 98943 | |||||
* | MC/Mach-O: Lift relocation emission logic a bit higher to separate ↵ | Daniel Dunbar | 2010-03-19 | 1 | -56/+77 | |
| | | | | | | evaluation / relocation handling from the actual .o writing. llvm-svn: 98942 | |||||
* | MC/Mach-O: Add isScatteredFixupFullyResolved, which implements the correct ↵ | Daniel Dunbar | 2010-03-19 | 1 | -1/+59 | |
| | | | | | | | | algorithm (used on x86_64) for determining whether an evaluated fixup is fully resolved (doesn't need relocation). - Test cases will follow, once we have x86_64 relocation support. llvm-svn: 98926 | |||||
* | MC/Mach-O/x86_64: Add getAtom[ForAddress]. | Daniel Dunbar | 2010-03-19 | 1 | -0/+36 | |
| | | | | | | - These find the defining symbol which identifies the containing atom for a symbol or address. They are currently very slow, but will be eliminated eventually. llvm-svn: 98925 | |||||
* | MC/Mach-O: Factor out isScatteredFixupFullyResolvedSimple predicate, and fix ↵ | Daniel Dunbar | 2010-03-19 | 1 | -15/+52 | |
| | | | | | | some corner cases. llvm-svn: 98924 | |||||
* | MC/Mach-O: Factor out isSymbolLinkerVisible method; "linker visible" is a ↵ | Daniel Dunbar | 2010-03-19 | 1 | -10/+18 | |
| | | | | | | made up term to refer to non-temporary labels + temporary labels in sections-which-require symbols. For Darwin, it corresponds to symbols which effectively define an atom. llvm-svn: 98923 | |||||
* | MCValue: Change to holding MCSymbolRefExprs instead of MCSymbols, we will ↵ | Daniel Dunbar | 2010-03-18 | 1 | -14/+14 | |
| | | | | | | need this for accessing to symbol modifiers. llvm-svn: 98791 | |||||
* | MC/Mach-O/x86_64: Temporary labels in cstring sections require symbols (and ↵ | Daniel Dunbar | 2010-03-15 | 1 | -2/+8 | |
| | | | | | | external relocations, but we don't have x86_64 relocations yet). llvm-svn: 98583 | |||||
* | MC/Mach-O: Add MCSectionMachO::getType() | Daniel Dunbar | 2010-03-15 | 1 | -12/+5 | |
| | | | | llvm-svn: 98582 | |||||
* | MC/X86_64: Symbol support. | Daniel Dunbar | 2010-03-13 | 1 | -6/+10 | |
| | | | | llvm-svn: 98456 | |||||
* | MC/Mach-O: Initial x86_64 support. | Daniel Dunbar | 2010-03-13 | 1 | -45/+80 | |
| | | | | llvm-svn: 98454 | |||||
* | MC/Mach-O: PCrel relocations weren't using the right base address, they are | Daniel Dunbar | 2010-03-13 | 1 | -1/+1 | |
| | | | | | | | relative to the fragment address, not its offset. This was masked by the text section normally being at address 0. llvm-svn: 98420 | |||||
* | MC/Mach-O: Implement initial support for relaxation. | Daniel Dunbar | 2010-03-12 | 1 | -9/+117 | |
| | | | | | | | | | | | | - The implementation is currently very brain dead and inefficient, but I have a clear plan on how to fix it. - The good news is, it works and correctly assembles 403.gcc (when built with Clang, at '-Os', '-Os -g', and '-O3'). Even better, at '-Os' and '-Os -g', the resulting binary is exactly equivalent to that when built with the system assembler. So it probably works! :) llvm-svn: 98396 | |||||
* | MC: Factor out MCAssembler::EvaluateFixup, and simplify. | Daniel Dunbar | 2010-03-12 | 1 | -33/+52 | |
| | | | | llvm-svn: 98381 | |||||
* | MC/Mach-O: Add MCSymbolData::getAddress() utility. | Daniel Dunbar | 2010-03-11 | 1 | -4/+4 | |
| | | | | llvm-svn: 98266 | |||||
* | MC/Mach-O: Implement "absolutizing" semantics of .set, by evaluating the ↵ | Daniel Dunbar | 2010-03-11 | 1 | -2/+8 | |
| | | | | | | assembly time value of variables. llvm-svn: 98241 | |||||
* | MC/Mach-O: Start passing in the basic MCAsmLayout object. | Daniel Dunbar | 2010-03-11 | 1 | -13/+14 | |
| | | | | | | - Also, drop the current location part of AsmLayout, I think I prefer to implement this via explicit symbols. llvm-svn: 98240 | |||||
* | MC: Provide MCAssembler with a TargetAsmBackend. | Daniel Dunbar | 2010-03-11 | 1 | -2/+3 | |
| | | | | llvm-svn: 98222 | |||||
* | MC/Mach-O: Use the MCAssembler symbol map instead of reconstructing. | Daniel Dunbar | 2010-03-10 | 1 | -32/+17 | |
| | | | | llvm-svn: 98187 | |||||
* | MC/Mach-O: Resolve a FIXME; these relocation types are no longer semanticaly ↵ | Daniel Dunbar | 2010-03-10 | 1 | -3/+5 | |
| | | | | | | different. llvm-svn: 98120 | |||||
* | MC/Mach-O: Use the SECTDIFF relocation type for (A - B + constant) where A ↵ | Daniel Dunbar | 2010-03-10 | 1 | -8/+11 | |
| | | | | | | | | is external. - I'm not sure why, but this is what 'as' does. llvm-svn: 98115 | |||||
* | MC/Mach-O: For PCrel relocations, we need to compensate for the PCrel ↵ | Daniel Dunbar | 2010-03-09 | 1 | -5/+9 | |
| | | | | | | adjustment when determining if we need a scattered relocation. llvm-svn: 98082 | |||||
* | MC/Mach-O: Also set the PCrel bit in the second half of paired relocation ↵ | Daniel Dunbar | 2010-03-09 | 1 | -4/+2 | |
| | | | | | | entries. llvm-svn: 98081 | |||||
* | MC/Mach-O: Don't generate relocations for PCrel fixups to local labels. | Daniel Dunbar | 2010-03-09 | 1 | -9/+19 | |
| | | | | llvm-svn: 98080 | |||||
* | MC/Mach-O: Tweak .dump() formatting. | Daniel Dunbar | 2010-03-09 | 1 | -4/+4 | |
| | | | | llvm-svn: 98028 | |||||
* | MC/Mach-O: Don't adjust section sizes when aligning zero fill sections, just ↵ | Daniel Dunbar | 2010-03-09 | 1 | -5/+1 | |
| | | | | | | pad the address. llvm-svn: 98027 |