aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/ELFObjectWriter.cpp
AgeCommit message (Collapse)AuthorFilesLines
2011-07-25Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to ↵Evan Cheng1-1/+1
createMCAsmBackend. llvm-svn: 136010
2011-07-25Refactor X86 target to separate MC code from Target code.Evan Cheng1-1/+1
llvm-svn: 135930
2011-07-23Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where ↵Evan Cheng1-2/+2
they belong. llvm-svn: 135833
2011-07-23Sink ARM mc routines into MCTargetDesc.Evan Cheng1-1/+1
llvm-svn: 135825
2011-06-09Remove an uneeded switch - Turns out reloc results are identical w/o the ↵Jason W Kim1-12/+1
switch. (face+palm) llvm-svn: 132790
2011-06-05Produce an undefined reference to _GLOBAL_OFFSET_TABLE_ if we have aRafael Espindola1-0/+2
VK_GOTOFF reloc. This matches as' behavior, but it is not clear why the linker might need this, so I added a FIXME. I could test this by duplicating test/MC/ELF/got.s, but it doesn't look worthwhile. llvm-svn: 132655
2011-06-04Add support for @GOTPTOFF in i386 mode.Nick Lewycky1-0/+3
llvm-svn: 132643
2011-05-20fixes target address tBL and tBLX and sets relocation typeRafael Espindola1-0/+11
of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6) Patch by koan-sin tan. llvm-svn: 131748
2011-05-16Add a FIXME reminder to remove ForceARMElfPIC switch.Jason W Kim1-0/+4
llvm-svn: 131411
2011-05-16sets bit 0 of the function address of thumb function in .symtabRafael Espindola1-2/+7
("T is 1 if the target symbol S has type STT_FUNC and the symbol addresses a Thumb instruction ;it is 0 otherwise." from "ELF for the ARM Architecture" 4.7.1.2) Patch by Koan-Sin Tan! llvm-svn: 131406
2011-05-11Remove an unused variable and move a couple others inside DEBUG.Matt Beaumont-Gay1-6/+6
llvm-svn: 131208
2011-05-11Address the last bit of relocation flag related divergence betweeenJason W Kim1-20/+107
LLVM and binutils. With this patch, there are no functional differences between the .o produced directly from LLVM versus the .s to .o via GNU as, for relocation tags at least, for both PIC and non-PIC modes. Because some non-PIC reloc tags are used (legally) on PIC, so IsPCRel flag is necessary but not sufficient to determine whether the overall codegen mode is PIC or not. Why is this necessary? There is an incompatibility of how relocs are emitted in the .rodata section. Binutils PIC likes to emit certain relocs as section relative offsets. Non-PIC does not do this. So I added a hidden switch on the ELFObjectwriter "-arm-elf-force-pic" which forces the objectwriter to pretend that all relocs are for PIC mode. Todo: Activate ForceARMElfPIC to true if -relocation-model=pic is selected on llc. Todo: There are probably more issues for PIC mode on ARM/MC/ELF... Todo: Existing tests in MC/ARM/elf-reloc*.ll need to be converted over to .s tests as well as expanded to cover the gamut. llvm-svn: 131205
2011-05-01Simplify the handling of pcrel relocations on ELF. Now we do the right thingRafael Espindola1-1/+5
for all symbol differences and can drop the old EmitPCRelSymbolValue method. This also make getExprForFDESymbol on ELF equal to the one on MachO, and it can be made non-virtual. llvm-svn: 130634
2011-04-07Micro optimization and improved similarity with gas' output:Rafael Espindola1-10/+38
When two section names share a suffix, reuse the entry in shstrtab. llvm-svn: 129115
2011-03-20Write the section table and the section data in the same order thatRafael Espindola1-93/+196
gun as does. This makes it a lot easier to compare the output of both as the addresses are now a lot closer. llvm-svn: 127972
2011-03-03Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that ↵Jan Sjödin1-363/+1
other components can use them. llvm-svn: 126942
2011-03-03PR9352: Always emit a relocation for weak symbols. Not emitting relocationsEli Friedman1-0/+19
for calls to weak symbols with a definition has the appearance of working with LLVM-generated code because weak symbol definitions are put in their own sections. llvm-svn: 126933
2011-02-28Make all static functions become static class methods. Move shared ↵Jan Sjödin1-89/+77
(duplicated) functions to new MCELF class. llvm-svn: 126686
2011-02-23Put in the symbol table symbols only used in a .globl statement.Rafael Espindola1-1/+5
Fixes PR9292. llvm-svn: 126330
2011-02-21Handle FK_PCRel_1 and add a test case for this and FK_PCRel_4.Joerg Sonnenberger1-0/+4
llvm-svn: 126157
2011-02-16Gas is very inconsistent about when a relaxation/relocation is needed. DoRafael Espindola1-25/+0
the right thing and stop trying to copy it. Fixes PR8944. llvm-svn: 125648
2011-02-07Teach ARM/MC/ELF about gcc compatible reloc output to get past odd linkageJason W Kim1-3/+45
failures with relocations. The code committed is a first cut at compatibility for emitted relocations in ELF .o. Why do this? because existing ARM tools like emitting relocs symbols as explicit relocations, not as section-offset relocs. Result is that with these changes, 1) relocs are now substantially identical what to gcc outputs. 2) larger apps (including many spec2k tests) compile, cross-link, and pass Added reminder fixme to tests for future conversion to .s form. llvm-svn: 124996
2011-02-04Teach ARM/MC/ELF about EF_ARM_EABI_VERSION. The magic number is set toJason W Kim1-2/+15
5 to match the current doc. Added FIXME reminder Make it really configurable later. llvm-svn: 124899
2011-02-04Teach ARM/MC/ELF to handle R_ARM_JUMP24 relocation type for conditional jumps.Jason W Kim1-4/+8
(yes, this is different from R_ARM_CALL) - Adds a new method getARMBranchTargetOpValue() which handles the necessary distinction between the conditional and unconditional br/bl needed for ARM/ELF At least for ARM mode, the needed fixup for conditional versus unconditional br/bl is identical, but the ARM docs and existing ARM tools expect this reloc type... Added a few FIXME's for future naming fixups in ARMInstrInfo.td llvm-svn: 124895
2011-01-23Add support for the --noexecstack option.Rafael Espindola1-9/+21
llvm-svn: 124077
2011-01-23Delay the creation of eh_frame so that the user can change the defaults.Rafael Espindola1-0/+1
Add support for SHT_X86_64_UNWIND. llvm-svn: 124059
2011-01-23Remove more duplicated code.Rafael Espindola1-3/+3
llvm-svn: 124056
2011-01-14Completed :lower16: / :upper16: support for movw / movt pairs on Darwin.Evan Cheng1-0/+14
- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first. - Added support for Thumb2 :lower16: and :upper16: fix up. - Added :upper16: and :lower16: relocation support to mach-o object writer. llvm-svn: 123424
2011-01-13Style clean up - break up the breaks.Jason W Kim1-21/+40
llvm-svn: 123347
2011-01-121. Support ELF pcrel relocations for movw/movt:Jason W Kim1-0/+10
R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC. 2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum. 3. Add support for 3 new elf section types (no-ops) llvm-svn: 123294
2011-01-01Fix PR8878.Rafael Espindola1-0/+1
llvm-svn: 122658
2010-12-27Handle reloc_riprel_4byte_movq_load. Should make the bots happy.Rafael Espindola1-0/+1
llvm-svn: 122579
2010-12-27Add support for the same encodings of the personality function that gnu asRafael Espindola1-18/+32
supports. llvm-svn: 122577
2010-12-26Add support for @note. Patch by Jörg Sonnenberger.Rafael Espindola1-0/+1
llvm-svn: 122568
2010-12-24Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We nowRafael Espindola1-42/+16
have a single point where targets test if a relocation is needed. llvm-svn: 122549
2010-12-22Simplify the handling of .size expressions.Rafael Espindola1-17/+6
llvm-svn: 122404
2010-12-20Set the value of absolute symbols.Roman Divacky1-0/+9
llvm-svn: 122268
2010-12-18Merge isAbsolute into IsSymbolRefDifferenceFullyResolved.Rafael Espindola1-14/+0
llvm-svn: 122148
2010-12-18Remove the MCObjectFormat class.Rafael Espindola1-0/+6
llvm-svn: 122147
2010-12-18Move some data to the TargetWriter.Rafael Espindola1-79/+53
llvm-svn: 122134
2010-12-17Store and free the TargetObjectWriter.Rafael Espindola1-13/+26
llvm-svn: 122070
2010-12-17Stub out explicit MCELFObjectTargetWriter interface.Rafael Espindola1-1/+2
llvm-svn: 122067
2010-12-17Move createELFObjectWriter to its own header.Rafael Espindola1-0/+1
llvm-svn: 122064
2010-12-17Use getFixupKindInfo to implement isFixupKindPCRel, ELF version.Rafael Espindola1-40/+8
llvm-svn: 122050
2010-12-17MC/ObjectWriter: Add a new IsSymbolRefDifferenceFullyResolved target format ↵Daniel Dunbar1-2/+11
specific hook. - Currently just has stub implementations for Mach-O, ELF, and COFF. llvm-svn: 122037
2010-12-17MC/Assembler: Strip out object writer arguments, now that it is always availableDaniel Dunbar1-1/+1
-- and remove FIXME asking for the same! llvm-svn: 122032
2010-12-161. ARM/MC/ELF: A few more ELF relocs for .oJason W Kim1-0/+6
2. Fixed EmitLocalCommonSymbol for ELF (Yes, they exist. :) Test added. llvm-svn: 121951
2010-12-13First cut of ARM/MC/ELF PIC relocations.Jason W Kim1-7/+25
Test has fixme, to move to .s -> .o test when AsmParser works better. llvm-svn: 121732
2010-12-10Thumb unconditional branch binary encoding. rdar://8754994Jim Grosbach1-0/+1
llvm-svn: 121496
2010-12-09Rename CB/CBZ specific fixup accordingly.Jim Grosbach1-1/+1
llvm-svn: 121404