Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |||||
* | MC/Macho-O: Align the zerofill section itself to the maximum alignment. | Daniel Dunbar | 2010-03-08 | 1 | -0/+10 | |
| | | | | llvm-svn: 97991 | |||||
* | MC/Mach-O: Fix address compution for zero fill sections. | Daniel Dunbar | 2010-03-08 | 1 | -2/+2 | |
| | | | | llvm-svn: 97984 | |||||
* | MC/Mach-O: Error out instead of crashing on invalid scattered relocation ↵ | Daniel Dunbar | 2010-03-08 | 1 | -2/+11 | |
| | | | | | | expressions. llvm-svn: 97983 | |||||
* | This is the second patch to allow x86 code to be aligned with optimal nops. | Kevin Enderby | 2010-02-23 | 1 | -2/+47 | |
| | | | | | | | | | | With the compiler changed to use EmitCodeAlignment() it does change the functionality. But X86 assembly code assembled with llvm-mc does not change its output. For that we will eventually change the assembler frontend to detect a '.align x, 0x90' when used in a section that 'hasInstructions' and use EmitCodeAlignment, but will wait until we have better target hooks. llvm-svn: 96988 | |||||
* | This is the first patch to put the needed bits in place to eventually allow code | Kevin Enderby | 2010-02-23 | 1 | -0/+23 | |
| | | | | | | | | | | | to be aligned with optimal nops. This patch does not change any functionality and when the compiler is changed to use EmitCodeAlignment() it should also not change the resulting output. Once the compiler change is made and everything looks good the next patch with the table of optimal X86 nops will be added to WriteNopData() changing the output. There are many FIXMEs in this patch which will be removed when we have better target hooks (coming soon I hear). llvm-svn: 96963 |