History log of /external/llvm/lib/MC/ELFObjectWriter.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/MC/ELFObjectWriter.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/MC/ELFObjectWriter.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/MC/ELFObjectWriter.cpp
72580780a98cb8b0019b7ec4ed88e3f3328b9969 29-Oct-2013 Joerg Sonnenberger <joerg@bec.de> Move the STT_FILE symbols out of the normal symbol table processing for
ELF. They can overlap with the other symbols, e.g. if a source file
"foo.c" contains a function "foo" with a static variable "c".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2b3ea3cdad927cb0e346dd24e9bf84f8eb83babf 23-Oct-2013 David Blaikie <dblaikie@gmail.com> MC: Support multiple sections with the same name in the same comdat group

Code review by Eric Christopher and Rafael Espindola.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
dd620a9ff5c8340617f22decedcbecbd2f0a1582 22-Oct-2013 David Blaikie <dblaikie@gmail.com> Whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
0d293e45b66c742fdbc3998209bb20ed6c5806bf 22-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> Provide basic type safety for array_pod_sort comparators.

This makes using array_pod_sort significantly safer. The implementation relies
on function pointer casting but that should be safe as we're dealing with void*
here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f5b1c5043de4d485ff17d8b2aad709c63a5a9ff3 10-Jul-2013 Tim Northover <tnorthover@apple.com> Put ELF COMDAT relocations into the relevant COMDAT group.

Patch from Игорь Пашев (I do hope we support utf-8 commit messages; I
also hope he'll forgive me for transliterating it as Igor Pashev in
case things go horribly wrong).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
db3cc56e7018f6a553ba6bea8aeb6ee32aa121d8 15-May-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com> Remove MCELFObjectTargetWriter::adjustFixupOffset hack

Now that PowerPC no longer uses adjustFixupOffset, and no other
back-end (ever?) did, we can remove the infrastructure itself
(incidentally addressing a FIXME to that effect).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7394c5a37ce5c0fb153cfc8ec5f32822d5bf8668 09-Mar-2013 Nick Lewycky <nicholas@mxc.ca> Commit the right files for r176762. Sigh.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
77afbdce53aa740777486b0cc4e9df151ae65468 19-Feb-2013 Jack Carter <jcarter@mips.com> ELF symbol table field st_other support,
excluding visibility bits.

Generic STO handling at the Target level.

The st_other field of the ELF symbol table is one
byte in size. The first 2 bytes are used for generic
visibility and are currently handled by llvm.

The other six bits are processor specific and need
to be set at the target level.

A couple of notes:

The new static methods for accessing and setting the "other"
flags in include/llvm/MC/MCELF.h match the style guide
and not the other methods in the file. I don't like the
inconsistency, but feel I should follow the prescribed
lowerUpper() convention.

STO_ value definitions are not specified in gnu land as
consistently as the STT_ and STB_ fields. Probably because
the latter were defined in a standards doc and the former
defined partially in code. I have stuck with the full byte
definition of the flags.

Contributer: Zoran Jovanovic




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
dc08bfbd565ba6540be698bba551b2039661299d 12-Feb-2013 Jack Carter <jcarter@mips.com> This patch just fixes up various llvm formatting
violations such as tabs, blanks at eol and long
lines.





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b0c899666a6c5397cf35fffd0f8d93749cb2cb38 05-Feb-2013 Logan Chien <tzuhsiang.chien@gmail.com> Link .ARM.exidx with corresponding text section.

The sh_link in the ELF section header of .ARM.exidx should
be filled with the section index of the corresponding text
section.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
9a7bf438b50fed2c77f0e2bc835defa5b4728f82 30-Jan-2013 Jack Carter <jcarter@mips.com> This patch reworks how llvm targets set
and update ELF header e_flags.

Currently gathering information such as symbol,
section and data is done by collecting it in an
MCAssembler object. From MCAssembler and MCAsmLayout
objects ELFObjectWriter::WriteObject() forms and
streams out the ELF object file.

This patch just adds a few members to the MCAssember
class to store and access the e_flag settings. It
allows for runtime additions to the e_flag by
assembler directives. The standalone assembler can
get to MCAssembler from getParser().getStreamer().getAssembler().

This patch is the generic infrastructure and will be
followed by patches for ARM and Mips for their target
specific use.

Contributer: Jack Carter



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c91cbb9b0c90a480299cc7deaef166d47a61d9df 18-Jan-2013 Jack Carter <jcarter@mips.com> This is a resubmittal. For some reason it broke the bots yesterday
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.
Support for Mips register information sections.

Mips ELF object files have a section that is dedicated
to register use info. Some of this information such as
the assumed Global Pointer value is used by the linker
in relocation resolution.

The register info file is .reginfo in o32 and .MIPS.options
in 64 and n32 abi files.

This patch contains the changes needed to create the sections,
but leaves the actual register accounting for a future patch.


Contributer: Jack Carter



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
96f498bd9f140a98321c478f517877c4767b94fa 13-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Remove redundant 'llvm::' qualifications


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
550f0ade457c3b042fa099ecff2c022c7ab58b1e 07-Dec-2012 Eli Bendersky <eliben@google.com> Make the contents of encoded sections SmallVector<char, N> instead of
SmallString. This makes it possible to use the length-erased SmallVectorImpl
in the interface without imposing buffer size. Thus, the size of MCInstFragment
is back down since a preallocated 8-byte contents buffer is enough.

It would be generally a good idea to rid all the fragments of SmallString as
contents, because a vector just makes more sense.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
6eb3e87df04f8b035562d9865292c23f5b79f1a2 07-Dec-2012 Tim Northover <Tim.Northover@arm.com> Added Mapping Symbols for ARM ELF

Before this patch, when you objdump an LLVM-compiled file, objdump tried to
decode data-in-code sections as if they were code. This patch adds the missing
Mapping Symbols, as defined by "ELF for the ARM Architecture" (ARM IHI 0044D).

Patch based on work by Greg Fitzgerald.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
aa71428378c1cb491ca60041d8ba7aa110bc963d 25-Oct-2012 Adhemerval Zanella <azanella@linux.vnet.ibm.com> Initial TOC support for PowerPC64 object creation

This patch adds initial PPC64 TOC MC object creation using the small mcmodel
(a single 64K TOC) adding the some TOC relocations (R_PPC64_TOC,
R_PPC64_TOC16, and R_PPC64_TOC16DS).

The addition of 'undefinedExplicitRelSym' hook on 'MCELFObjectTargetWriter'
is meant to avoid the creation of an unreferenced ".TOC." symbol (used in
the .odp creation) as well to set the R_PPC64_TOC relocation target as the
temporary ".TOC." symbol. On PPC64 ABI, the R_PPC64_TOC relocation should
not point to any symbol.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b21d9aebba7e45ddcbce61dd501000049cefb335 16-Oct-2012 Michael Liao <michael.liao@intel.com> Check .rela instead of ELF64 for the compensation vaue resetting



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
828ea3849a8c799651a6c33cdc5d92a6923bf95a 27-Aug-2012 Rafael Espindola <rafael.espindola@gmail.com> Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
93ee286e8d949147f8df7f093c9bd8529a99102d 28-Jun-2012 Jack Carter <jcarter@mips.com> The ELF relocation record format is different for N64
which many Mips 64 ABIs use than for O64 which many
if not all other target ABIs use.

Most architectures have the following 64 bit relocation record format:

typedef struct
{
Elf64_Addr r_offset; /* Address of reference */
Elf64_Xword r_info; /* Symbol index and type of relocation */
} Elf64_Rel;

typedef struct
{
Elf64_Addr r_offset;
Elf64_Xword r_info;
Elf64_Sxword r_addend;
} Elf64_Rela;

Whereas N64 has the following format:

typedef struct
{
Elf64_Addr r_offset;/* Address of reference */
Elf64_Word r_sym; /* Symbol index */
Elf64_Byte r_ssym; /* Special symbol */
Elf64_Byte r_type3; /* Relocation type */
Elf64_Byte r_type2; /* Relocation type */
Elf64_Byte r_type; /* Relocation type */
} Elf64_Rel;

typedef struct
{
Elf64_Addr r_offset;/* Address of reference */
Elf64_Word r_sym; /* Symbol index */
Elf64_Byte r_ssym; /* Special symbol */
Elf64_Byte r_type3; /* Relocation type */
Elf64_Byte r_type2; /* Relocation type */
Elf64_Byte r_type; /* Relocation type */
Elf64_Sxword r_addend;
} Elf64_Rela;

The structure is the same size, but the r_info data element
is now 5 separate elements. Besides the content aspects,
endian byte reordering will be different for the area with
each element being endianized separately.

I treat this as generic and continue to pass r_type as
an integer masking and unmasking the byte sized N64
values for N64 mode. I've implemented this and it causes no
affect on other current targets.

This passes make check.

Jack


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2684d9e3c702b2ef9fd430155d94671d12fa994f 11-May-2012 Jim Grosbach <grosbach@apple.com> Tidy up. Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f1d0f7781e766df878bec4e7977fa3204374f394 26-Mar-2012 Craig Topper <craig.topper@gmail.com> Prune some includes and forward declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
00ca888cccd130dd3ebcfc02cf2b9187b54d116e 24-Mar-2012 Akira Hatanaka <ahatanaka@mips.com> Add a hook in MCELFObjectTargetWriter to allow targets to sort relocation
entries in the relocation table before they are written out to the file.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
263109d822314305822796a2cc05e98304793051 20-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove a bunch of unused variable assignments.

Found by the clang static analyzer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3963d617b3709c510003ac816fb42f28539fc62b 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Kill the monstrosity that was ELFObjectWriter.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7bd278019d745d8b339f6b896926ce32ce118db7 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Misc cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
090445967f0b5988446faffefd1d0722f982bc7a 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move the Mips only bits of the ELF writer to lib/Target/Mips.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4982159b885f1db4cc29b1695841121db85a64a1 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move the MBlaze ELF writer bits to lib/Target/MBlaze.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f3a86fb03d196994dc7923351f15d8ed9343013e 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move PPC bits to lib/Target/PowerPC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bc24985c5ff01fc25336896c388bd8e4e02ffd95 22-Dec-2011 Akira Hatanaka <ahatanaka@mips.com> Local dynamic TLS model for direct object output. Create the correct TLS MIPS
ELF relocations.

Patch by Jack Carter.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
69bbda03918a18bd4477bb254d51346ee3033567 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move the ARM specific parts of the ELF writer to Target/ARM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e99183d2ace21eb25325304c164b21bf2910fc63 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> getEFlags is const.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e8526d030f2cf8cc79f2d923274944cb0fa9c4eb 21-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Switch from WriteEFlags to getEFlags in preparation for moving it
to Target/.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
edae8e1e4d5bd9b59f18ecef04a248be95d8ca46 21-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move the X86 specific bits of the ELF writer to the Target/X86 directory.

Other targets will follow shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
dc9a8a378daf432d8dcfc178507afe149706f9a6 21-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Reduce the exposure of Triple::OSType in the ELF object writer. This will
avoid including ADT/Triple.h in many places when the target specific bits are
moved.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c677e790e5e8ff986ca84229f37751d26bf87f45 21-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Small refactoring so that RelocNeedsGOT can stay in the target independent
side when the target specific bits are moved to the Target directory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f3315cf65f9574cd1e4e784d2860c943cfa65ce9 13-Dec-2011 Akira Hatanaka <ahatanaka@mips.com> Relocation against a symbol, instead of against section. We had some extreme
test cases where there were a lot of relocations applied relative to a large
rodata section. Gas would create a symbol for each of these whereas we would
be relative to the beginning of the rodata section. This change mimics what
gas does.

Patch by Jack Carter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3c68acd202d061c38e9b7744012094b4009d932a 09-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Handle reloc_signed_4byte in here. Not doing so was a regression from my
previous commit. It is strange that we see it in 32 bits. We already
have a fixme about it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1d5969d839ddc4d0af93fd035aa13131e5c6fa82 09-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Handle the case of the magical _GLOBAL_OFFSET_TABLE_ showing up in a
symbol difference. This matches gas behavior and fixes PR11513.

We still don't handle _GLOBAL_OFFSET_TABLE_ in data sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e3d3572e282733bd7aa5ac14115ed0804174e426 07-Dec-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add a few moreLocal/Global R_MIPS_GOT related fixups and
make the addend fixup code a bit more generic

Patch by Jack Carter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a00a62acd02a94aabecc94ac551d8bb305ed7265 06-Dec-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Explicit symbols for gnu mimicing relocations. Patch by Jack Carter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f68a26b5d8e06a85edba97702884a74673b60807 06-Dec-2011 Jim Grosbach <grosbach@apple.com> Tidy up. Hard tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f77d5b14af6b92403b93f7ed249f9023e99028cc 06-Dec-2011 Jim Grosbach <grosbach@apple.com> Switch MCAssembler to method names starting w/ lower-case.

per http://llvm.org/docs/CodingStandards.html#ll_naming

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
84bfc2f090639f933df06cc675c4385511516bef 23-Nov-2011 Akira Hatanaka <ahatanaka@mips.com> This patch addresses gp relative fixups/relocations for jump tables.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
946227d64afcc8cb3f4db94b6ee0cdb1aa55fa31 15-Nov-2011 Jim Grosbach <grosbach@apple.com> Tidy up. 80 columns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a0dd4cbc8739ab24535542b58c4c25e15146b44d 04-Nov-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add mips ELF relocation types. Patch by Jack Carter!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7aabcb1fc0a94becb437134747a63ff686c0661f 11-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Also create a shndx even if there are no symbols. This lets us test
.symtab_shndx reading and writing together, and finally we have a testcase for
r141440.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d2fdb4a28560688be5cbc5b2b0c305ec7207cbd0 08-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Don't emit the symbol table entry for the .symtab_shndx section either.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4a8d43e9a793324eee49758dc160a4e5d8eaa9a4 08-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Remove extraneous curlies. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b3429d34b641d2b5aaa3e7df70d268904d2c039c 07-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Don't emit a shstrtabindex in the reserved range. Spotted by inspection and
patch by Cary Coutant!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
aaae3f6bc1b7ab3475d7399915a887b42f6365bc 07-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Clarify/fix typo. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
291512f96fe807da7c1a3a6e001feb1017b56e26 30-Sep-2011 Akira Hatanaka <ahatanaka@mips.com> Add definition of MipsELFObjectWriter.

Patch by Reed Kotler at Mips Technologies.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2a66cea1b82b82c7bf19e232aed741331377ad30 04-Aug-2011 Roman Divacky <rdivacky@freebsd.org> Introduce adjustFixupOffset that adjusts the fixup offset of a relocation.
This is meant to be overriden by backends. Implement an override on PowerPC
which adjusts the offset by 2 for ha16/lo16 relocation kinds. This removes
a commented out hack and enables hello world to be compiled on PowerPC.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bbf9c4a14edbdbc384a452377d60bad8f6d8a78e 04-Aug-2011 Rafael Espindola <rafael.espindola@gmail.com> Add an assert to check that the Addend fits the file format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e651983e71a0fbe624a1441dfc8b747ca1a038f1 04-Aug-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Fix http://llvm.org/bugs/show_bug.cgi?id=10568
Move the reloc size assert into AsmBackend - where it is more apropos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c9c0cc1e4655e3abe6ddc0329a31decfa5b3fc4b 02-Aug-2011 Roman Divacky <rdivacky@freebsd.org> Comment out the PPC relocation offset adjustment. It must be done differently.

This unbreaks some tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2c0d69fad0e658117922f3d96d9b732bedf9fd47 02-Aug-2011 Roman Divacky <rdivacky@freebsd.org> Sketch out PowerPC ELF writer. This is enough to get clang -integrated-as
to compile a working hello world on FreeBSD/PPC32.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
78c10eeaa57d1c6c4b7781d3c0bcb0cfbbc43b5c 26-Jul-2011 Evan Cheng <evan.cheng@apple.com> Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
8c3fee59038d8fd98db2a01b6a309a8941a16a3f 25-Jul-2011 Evan Cheng <evan.cheng@apple.com> Refactor X86 target to separate MC code from Target code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a7cfc08ebe737062917b442830eb5321b0f79e89 23-Jul-2011 Evan Cheng <evan.cheng@apple.com> Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
be74029f44c32efc09274a16cbff588ad10dc5ea 23-Jul-2011 Evan Cheng <evan.cheng@apple.com> Sink ARM mc routines into MCTargetDesc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bebd44a95a94189e79b02cd15edc2d41bc2628fe 09-Jun-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Remove an uneeded switch - Turns out reloc results are identical w/o the switch. (face+palm)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
378e0ecf24cd980a4551299f0bd90725b479b401 05-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Produce an undefined reference to _GLOBAL_OFFSET_TABLE_ if we have a
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e0b87032f5ac8134b7585bdc4a0f2c77158b962d 04-Jun-2011 Nick Lewycky <nicholas@mxc.ca> Add support for @GOTPTOFF in i386 mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
298c8e12ea063f7522c59d2a297b47a879b6ed55 20-May-2011 Rafael Espindola <rafael.espindola@gmail.com> fixes target address tBL and tBLX and sets relocation type
of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6)

Patch by koan-sin tan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
97c07dac7ff8f64406e1547aa62c69da7275f401 16-May-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Add a FIXME reminder to remove ForceARMElfPIC switch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
6469540adf63d94a876c2b623cb4ca70479647f7 16-May-2011 Rafael Espindola <rafael.espindola@gmail.com> sets bit 0 of the function address of thumb function in .symtab
("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!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
6dcd413fbb488222200c6b42c4f5d55ce39db557 12-May-2011 Matt Beaumont-Gay <matthewbg@google.com> Remove an unused variable and move a couple others inside DEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e964d1192a82cf8c1371a7440667de67595d6d35 12-May-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Address the last bit of relocation flag related divergence betweeen
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
debd7e4e8bc5cfe61bfb71835ce2b1a3fbccc2be 01-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Simplify the handling of pcrel relocations on ELF. Now we do the right thing
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d5321da8d22d60f528397a05dc10db4185fcb680 08-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Micro optimization and improved similarity with gas' output:
When two section names share a suffix, reuse the entry in shstrtab.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9 20-Mar-2011 Rafael Espindola <rafael.espindola@gmail.com> Write the section table and the section data in the same order that
gun as does. This makes it a lot easier to compare the output of both
as the addresses are now a lot closer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
24b17c673076af1bb77dd24096c8d17c734c94bc 03-Mar-2011 Jan Sjödin <jan_sjodin@yahoo.com> Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that other components can use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
78c1e1781cf36dd19988047eac8f664873d35237 03-Mar-2011 Eli Friedman <eli.friedman@gmail.com> PR9352: Always emit a relocation for weak symbols. Not emitting relocations
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2ddfd95d40e07f5fdf179a16e15a5d7c131837d8 28-Feb-2011 Jan Sjödin <jan_sjodin@yahoo.com> Make all static functions become static class methods. Move shared (duplicated) functions to new MCELF class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
21451e533f4c46cdb38d338cfed26cece1d7be54 23-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Put in the symbol table symbols only used in a .globl statement.
Fixes PR9292.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d45e8bf93b2024213e423b7b40272da6636e78f7 22-Feb-2011 Joerg Sonnenberger <joerg@bec.de> Handle FK_PCRel_1 and add a test case for this and FK_PCRel_4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
908159b46ae118d36fccbc1d5145dcedfc3d4185 16-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Gas is very inconsistent about when a relaxation/relocation is needed. Do
the right thing and stop trying to copy it. Fixes PR8944.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
953a2a3dee46bebd70b129fd62709710f5f2b033 07-Feb-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Teach ARM/MC/ELF about gcc compatible reloc output to get past odd linkage
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2d7a53aec2c6426eba9e5dd6462cc9e86432b410 04-Feb-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Teach ARM/MC/ELF about EF_ARM_EABI_VERSION. The magic number is set to
5 to match the current doc.
Added FIXME reminder Make it really configurable later.





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
685c350ae76b588e1f00c01a511fe8bd57f18394 04-Feb-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Teach ARM/MC/ELF to handle R_ARM_JUMP24 relocation type for conditional jumps.
(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




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
96aa78c8c5ef1a5f268539c9edc86569b436d573 23-Jan-2011 Rafael Espindola <rafael.espindola@gmail.com> Add support for the --noexecstack option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
0cf5e3d51dd455a174a8f00cfa6b63c11e535434 23-Jan-2011 Rafael Espindola <rafael.espindola@gmail.com> Delay the creation of eh_frame so that the user can change the defaults.
Add support for SHT_X86_64_UNWIND.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1c13026e8f94bd332c0979baa9c777da99d48736 23-Jan-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove more duplicated code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f3eb3bba1614a7935b44fc963a805088d71267f3 14-Jan-2011 Evan Cheng <evan.cheng@apple.com> Completed :lower16: / :upper16: support for movw / movt pairs on Darwin.
- 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1d8661744b3ad300ee483cf83be179e93cbd1245 13-Jan-2011 Jason W Kim <jason.w.kim.2009@gmail.com> Style clean up - break up the breaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
86a97f2e4d0cde5e992f52ac287da0de687e0110 12-Jan-2011 Jason W Kim <jason.w.kim.2009@gmail.com> 1. Support ELF pcrel relocations for movw/movt:
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)




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7a54997d670d92f7f0ece87911800aa68fcb8c6d 01-Jan-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix PR8878.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c3a561cb8ed6f04e3cf7b1ff38c9f51a695d196d 27-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Handle reloc_riprel_4byte_movq_load. Should make the bots happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3a83c40ab61d5ca624f2bbadd70237c6adbdb304 27-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for the same encodings of the personality function that gnu as
supports.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
98976610d2c8067efe04042f17486a4b6c746b31 26-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for @note. Patch by Jörg Sonnenberger.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
fea753b397823c340608925eb7f3256a64a30017 24-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We now
have a single point where targets test if a relocation is needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f01212489be07e261a0302744f878a54a39f05a5 22-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Simplify the handling of .size expressions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d149186e156fdd44e3cca988949cf3e5e6940863 20-Dec-2010 Roman Divacky <rdivacky@freebsd.org> Set the value of absolute symbols.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3132780a2ed58945b0ec5033002be44bedb6b785 18-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Merge isAbsolute into IsSymbolRefDifferenceFullyResolved.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1ec5bd31fe491e610839ea448bd99fd171785837 18-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove the MCObjectFormat class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bff66a86e6e44dc7424cd2d7719ac80630b3a5f8 18-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Move some data to the TargetWriter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
31f3578b00a2ea85fb730b690f0478529103c748 17-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Store and free the TargetObjectWriter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
6024c97ffa15766bc0f200ffd309d9e017ae0d4b 17-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Stub out explicit MCELFObjectTargetWriter interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
285b3e5b61af15f11e59a7700375aefa2a326bd8 17-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Move createELFObjectWriter to its own header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
127a6a47bd779f0e1e5274422537cdaac3ab2ca7 17-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Use getFixupKindInfo to implement isFixupKindPCRel, ELF version.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1f3662abba2abdf5a0ab77095834271fcf846579 17-Dec-2010 Daniel Dunbar <daniel@zuster.org> MC/ObjectWriter: Add a new IsSymbolRefDifferenceFullyResolved target format specific hook.
- Currently just has stub implementations for Mach-O, ELF, and COFF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
5d2477cecf53bef911f57423a5cecb743d4286fa 17-Dec-2010 Daniel Dunbar <daniel@zuster.org> MC/Assembler: Strip out object writer arguments, now that it is always available
-- and remove FIXME asking for the same!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f13743bb3c3fb37a59b59f26056bc391bf0adcdc 16-Dec-2010 Jason W Kim <jason.w.kim.2009@gmail.com> 1. ARM/MC/ELF: A few more ELF relocs for .o
2. Fixed EmitLocalCommonSymbol for ELF (Yes, they exist. :)
Test added.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3fa4c1dc95098105e73aa7055c27bebbf9112966 14-Dec-2010 Jason W Kim <jason.w.kim.2009@gmail.com> First cut of ARM/MC/ELF PIC relocations.
Test has fixme, to move to .s -> .o test when AsmParser works better.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e246717c3a36a913fd4200776ed621649bb2b624 10-Dec-2010 Jim Grosbach <grosbach@apple.com> Thumb unconditional branch binary encoding. rdar://8754994

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b492a7c2134d3886f545f1b5ea55115d71529a10 09-Dec-2010 Jim Grosbach <grosbach@apple.com> Rename CB/CBZ specific fixup accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a0871e79270b2a05f93c9df73bbe24c587faa94e 09-Dec-2010 Jason W Kim <jason.w.kim.2009@gmail.com> ARM/MC/ELF TPsoft is now a proper pseudo inst.
Added test to check bl __aeabi_read_tp gets emitted properly for ELF/ASM
as well as ELF/OBJ (including fixup)

Also added support for ELF::R_ARM_TLS_IE32



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
dff2f7151f695b86db8c4b0c6604463bdb8a63ea 09-Dec-2010 Bill Wendling <isanbard@gmail.com> Support the "target" encodings for the CB[N]Z instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b8958b031ec5163261f490f131780c5dc3d823d6 08-Dec-2010 Bill Wendling <isanbard@gmail.com> Add support for loading from a constant pool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
85f2ecc697a8ca6c8cf08093054cbbb9d2060ccf 07-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Sorry for such a large commit. The summary is that only MachO cares about the
actuall addresses in a .o file, so it is better to let the MachO writer compute
it.

This is good for two reasons. First, areas that shouldn't care about
addresses now don't have access to it. Second, the layout of each section
is independent. I should use this in a subsequent commit to speed it up.

Most of the patch is just removing the section address computation. The two
interesting parts are the change on how we handle padding in the end
of sections and how MachO can get the address of a-b when a and b are in
different sections.

Since now the expression evaluation normally doesn't know the section address,
it will think that a-b needs relocation and let the MachO writer know. Once
it has computed the section addresses, it calls back the expression evaluation
with the section addresses to resolve these expressions.

The remaining problem is the handling of padding. Currently it will create
a special alignment fragment at the end. Since that fragment doesn't update
the alignment of the section, it needs the real address to be computed.

Since now the layout will not compute a-b with a and b in different sections,
the only effect that the special alignment fragment has is update the
address size of the section. This can also be done by the MachO writer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
662a816e89a9d77bf75e1328b09cf9235b4682aa 07-Dec-2010 Jim Grosbach <grosbach@apple.com> Add fixup for Thumb1 BL/BLX instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
56a399023aba6cf1348533df04732950c43eaca7 06-Dec-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Refactor ELFObjectWriter.
+ ARM/X86/MBlaze now share a common RecordRelocation
+ ARM/X86/MBlaze arch specific routines are limited to GetRelocType()



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f8803fe4177739f9a6900198f601808eb27934d9 06-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove the getAddress getter, initialize Ordinal in the constructor and use
that on the ELF writer to detect a section we created.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
ffd902bfb743f0564c8f7689c49403074b6f694d 06-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add a getSymbolOffset method and use it in the ELF writer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
6db8a9f3fabefeb00163295f0611d09134651f3f 02-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> The sections that the ELF object writer has to create are very simple and
contain only data. Handle them specially instead of using AddSectionToTheEnd.
This moves a hack from the generic assembler to the elf writer. It is also
a bit faster and should make other improvements easier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
dff84b03258514463ede477af38f1246b95b0cd0 02-Dec-2010 Jim Grosbach <grosbach@apple.com> Add support for binary encoding of ARM 'adr' instructions referencing constant
pool entries (LEApcrel pseudo). Ongoing saga of rdar://8542291.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
9d63d90de5e57ad96f467b270544443a9284eb2b 01-Dec-2010 Owen Anderson <resistor@mac.com> Add correct encodings for STRD and LDRD, including fixup support. Additionally, update these to unified syntax.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
fdbdaaca2c0ad84009c173b95d49aa9b30ae806e 01-Dec-2010 Jim Grosbach <grosbach@apple.com> Fix a mised reloc rename spot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
85fed5e0c5bc010f967948a4af6b425a5a2f2bd0 01-Dec-2010 Jason W Kim <jason.w.kim.2009@gmail.com> ARM/MC/ELF relocation "hello world" for movw/movt.
Lifted adjustFixupValue() from Darwin for sharing w ELF.
Test added
TODO:
refactor ELFObjectWriter::RecordRelocation more.
Possibly share more code with Darwin?
Lots more relocations...



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e04ed7e45f194f14a7b28bbf3f55694d8e2bcf80 28-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Define generic 1, 2 and 4 byte pc relative relocations. They are common
and at least the 4 byte one will be needed to implement the .cfi_* directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
25958730dffe0a16f9c251a1fa317799b8419a1f 24-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Behave a bit more like gnu as and use the symbol (instead of the section)
for any relocation to a symbol defined in a tls section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1683fcc82397681a64a35884edc9c62c49f2f179 24-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Relocate with the symbol if the relocation is of kind NTPOFF.
Patch by David Meyer, I added the test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
10907426893019c6b7e59c886e41815d4fe50b19 22-Nov-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Fixed some style issues (no _, no spc after !)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
28ef0a5719c41ed9654156aa9db7a656d020d7b5 22-Nov-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Make the <ARCH>ELFObjectWriter statics private



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
ccbe000e093e53979056ba091291f4427c54bd99 22-Nov-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Fix misplaced statics.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
858e7506e1fabe563eb4222c80ad0fad01641bec 22-Nov-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Kill trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4a511f0be22542a39ed4f24a36cbbd81d293d7dd 22-Nov-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Refactor the ELFRelocationEntry (pull up) and move the arch-specific statics to inside the class where it belongs.

Next step is to rationally break apart the RecordRelocation()

Probably the step will be to have 1 member function for ech slot of the ELFRelocationEntry()





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4b04713423c6da988db75c7546baa3db7ddfa119 21-Nov-2010 Wesley Peck <peckw@wesleypeck.com> Implement ELF object file writing support for the MBlaze backend. Its not perfect yet, but it works for many tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
12203cc7c3f7392d62556946a10b2f10205ea63d 21-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Handle PCRel relocations with absolute values. Fixes PR8656.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2c920850343810535c0cd8720a81eddf7997663a 16-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> A bit more of gnu as compatibility when handling relocations with aliases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3285877131ed40d7fe75babf4ee3f4e0d287e4a4 15-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> Fix compiler warnigns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
94ed5fca3f5ab5acb74e70b8393b837131e7110c 15-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Change MCExpr::EvaluateAsRelocatableImpl of variables to return the original
variable if recursing fails to simplify it.

Factor AliasedSymbol to be a method of MCSymbol.

Update MCAssembler::EvaluateFixup to match the change in
EvaluateAsRelocatableImpl.

Remove the WeakRefExpr hack, as the object writer now sees the weakref with
no extra effort needed.

Nothing else is using MCTargetExpr, but keep it for now.

Now that the ELF writer sees relocations with aliases, handle

.weak foo2
foo2:
.weak bar2
.set bar2,foo2
.quad bar2

the same way gas does and produce a relocation with bar2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d3443e99e43945fdb0742177da06a32fa225740d 15-Nov-2010 Jason W Kim <jason.w.kim.2009@gmail.com> Dovetail with Dan Dunbar's rework of ELFObjectWriter.
Added 2 new subclasses - X86ELFObjectWriter and ARMELFObectWriter.
ARM and X86 require different code for RecordRelocation(), possibly others.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1f52dfe69ee7d0a49a6bfe6dfec6aeb8e416e313 15-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Move the logic to decide with which symbol we produce a relocation (if any) to
a central location. This also makes us a bit more compatible with gas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1f4f9e3d35a2264d86f97dfb6d1e4ccb434f449b 14-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Handle a peculiar comdat case: Creating a section with an undefined
signature symbol causes a local symbol to be created unless there is
some other use of the symbol.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
ab4a7afe98fcd86418bd1672f880b7d3672f4543 14-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Simplify getSymbolIndexInSymbolTable by setting the actual index of
the symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
115a3dd066c277c5417f4d9b9f642b732b76f4e7 13-Nov-2010 Daniel Dunbar <daniel@zuster.org> MC: Simplify Mach-O and ELF object writer implementations.
- What was I thinking?????

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1261a2ff99299946952013f284615a06afa3dc50 12-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Copy the symbol name only if we're going to modify it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2ff9e83a826c1c2ee0f1c6072d3d97d5b10678ee 11-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Initial comdat implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
9302bd664d930e7e6b61e208b0cca06fe71e8eb3 11-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Make AliasedSymbol able to handle MCTargetExpr. They can get here if
a weakref is used with a VariantKind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
03f1b74aed795110f040b7588c8921c5de4bf1ea 11-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix the symbol index of weak references. Also make RecordRelocation a bit
easier to read by having const references to the symbol, aliased symbol and
renamed symbol.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3f2d13c98eb04962bf6fcfdcc6f62789bc820d79 11-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove some explicit arguments to getELFSection. This is
a leftover from the removal of isExplicit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c87a94a94254f45220255938f14321b6ec35fcfe 11-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Factor some code into WriteSection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1d739a010d49914eae7b6c415dd6de76ca142030 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Update the section index map after we add the medatada sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4beee3d06bfebe3f3382893fcebc71d1aa3f290e 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Use SectionIndexMap in WriteSymbolTable to make it a little less brittle.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bab2a80525956b03b5f9126e1496785493326c37 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Factor some code into ComputeIndexMap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
af3d38f70ebba9fec0048c2540dbdf0168d280d2 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Change the String<size> methods to take a fragment instead of a buffer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4283f4b81e8c1cbf5c7a7b51e949e109ae25ff8c 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Use MCSectionELF in places we know we have an ELF section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
34be396a12b00a95a1353c356d64868798ea3098 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Fixed version of 118639 with an extra assert to catch similar problems
earlier. Implicit bool -> int conversions are evil!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
037b5be15a421b99066bb284027750a16ddd0fae 09-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert previous patch. Missed a case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e61a1ac595deddd291912930efac3616f7c61d08 09-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove IsExplicit. It was always false.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
484291c27319668ad99cb87def000254357736fb 01-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement .weakref.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7be2c33193aeada8c0ff3555ea54b930f204132a 31-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for files with more than 65280 sections. No testcase since
it would be a bit too big :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d179886f0595eb3564a9edfdfff79def130d89cc 30-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Be more strict on when we produce an undefined reference. In gas a file with
just

.type foo,@object

will produce an undefined reference to foo. On the other hand, a file with
just

.weakref bar, foo

will not. It is somewhat hard to support both in MC since both statements
should create the symbols. It should be possible if we really need to by
adding to the flags, but hopefully that is not necessary.

With this patch we do not produce a undefined reference in any of those cases.
The assembly file needs an actual use for the undefined reference to be
present.

This is in preparation for a patch implementing .weakref.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1973d4379250a88938a9358c12d96e96bdc8dede 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Defined weak symbols should have non-zero value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
29129728f1d4febe44792d1481077cc47fe83a08 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix relocations with renamed symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f571f9a8fe764d5010970e45203415cb00eab739 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Aliases defined with .symver should copy the binding of the symbols they alias.
Move the existing patching for undefined symbols so that all the patching
is done in the same function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
aa8f1f01352bdaaabf712369f8a8a615c776b508 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement R_X86_64_DTPOFF32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b4d1721eff7b43577e5f2e53f885973fb6c43683 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement TLSLD.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
0cf15d61b7e3bf53f5a99f58ada37b93bc039559 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement DTPOFF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a264f72d3fb9dec1427480fcf17ef3c746ea723a 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement TLSLDM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a0a2f8734cdfc19d44201b791a969bcdda96bb70 28-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement VK_GOTNTPOFF and switch RelocNeedsGOT to use VariantKind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3cede2d0b2b6cc0a06f55da7c2f8e4263ec0091e 27-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for R_386_TLS_GD, R_386_TLS_LE_32, R_386_TLS_IE and R_386_TLS_LE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bc82d8b84f6ae15985d1b01e720ed5c37d714012 27-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement R_X86_64_GOTTPOFF, R_X86_64_TLSGD and R_X86_64_TPOFF32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
07ee63283cc2b9a4d6c98ecd30d1b721fe3cb29a 27-Oct-2010 Benjamin Kramer <benny.kra@googlemail.com> Replace pointer arithmetic with StringRef::substr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
83ff4d2b0d6133d48055a27fe25c5d241bca7e9b 27-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce an error for an invalid use of .symver.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bf052ac5d1c8f21075bc675f629709c20791c5f7 27-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Symbols defined as the difference of other two end up in the ABS section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
88182132470527e27231f09b25a885893e528c66 27-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for the .symver directive. This is really ugly, but most of it is
contained in the ELF object writer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a6866969ba3b12901b412bb53ba8c61a9991b8ad 27-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Move more logic to isInSymtab and simplify.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
cecbc3d28277ff4916326311cbf87335ed05d106 25-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for emitting ARM file attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
24ba4f7f5f27c8d64be7ad653863b33594e5f019 24-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Add X86::reloc_global_offset_table and use it to have a single place where
we check for _GLOBAL_OFFSET_TABLE_.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
eecb858ca86fa949c06f819d6127e2ac68d165c8 22-Oct-2010 Wesley Peck <peckw@wesleypeck.com> Making the e_machine configurable by the target backend in ELFObjectWriter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bd70118f163f94a4d77eb036e6f83dd0bfcb6268 19-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
eada30479399014c22c7b7edb008177c312eefee 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement R_386_GOT32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
ce2d3c57758619e99a99104e1168a9558658fab0 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Relocate with .bss instead of using the symbol. Matches gas behavior.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
24dc9ecdc55d732ac93fc782d6232413fe2c1160 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Reenable assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
aa85c216334a6adac7e0a154d357b370629dc1bc 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce ELF::R_386_GOTPC relocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
9baee3b3a3924bc45d007e54c71333739d135f8e 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Make the bots happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
9edab3a9e15c40c1c9bf70df81c6afdab1cd02c2 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce a R_386_PLT32 when needed. Moved the default cases of switches to the
start for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c97f80efc80030c7544a9903c79d2dccd197a0ff 18-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Handle GOTOFF correctly on i386.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
24f1206c7de0f21d309d27737071ad742d5ddf27 17-Oct-2010 Benjamin Kramer <benny.kra@googlemail.com> Fix a typo and silence unused variable warnings in -Asserts build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f230df9af4012f9510de664b6d62b128e26a5861 16-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Add a MCObjectFormat class so that code common to all targets that use a
single object format can be shared.

This also adds support for

mov zed+(bar-foo), %eax

on ELF and COFF targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
de89b010b0b347cdbd1bc9553a970880a3e721bf 15-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Refactor alias handling to AliasedSymbol.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
5df0b65e8f5ef55f0b515a0b24879f5d117d6042 15-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Refactor code a bit and avoid creating unnecessary entries in the string
map.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a0949b50dcea35c08b50542091f97275f401529d 14-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove some code duplication.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
d8e0bfe07a7d101eeed7204d1dfcaae17ad51908 07-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Another case of 256 sections not being enough :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
152c1061e0b4ad379eec5fa38ee0091fc11ff936 06-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Get binding and visibility info from the the alias, but Type from the symbol
being aliased.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
153666c0384c724c1a935be44a1afe0319649e3e 06-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> If a symbol is global, reloc against it even if it is in a mergeable section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3223f19ff0920ffee686faba3bf74babf580e8a5 06-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Make sure weak symbols are listed after the local ones.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
8cecf253e45f144b9a7fd0ace85eeeeb0bebfc83 06-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly handle GOTPCREL relocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3729d0052bda365d04fee900c6f3d09460f1e108 06-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Use a relocation against the symbol if it is a PLT and the symbol is in another
section. Common because of linkonce sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
01f9ea35a71b4efb00de8e4c9e9136c9c88f6273 06-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement more alias cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f5c347dfc25e133e357c7086ad1b24edad4d2bc8 05-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> 256 sections should be enough for anyone...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
62fed8bd380b67f47bde3ff2a437db0951c7d186 05-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Don't crash in a strange .size directive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
737cd213e359c2862253c3a1ee443419566e90b9 05-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement a simple alias case and refactor the code a bit so that the
isInSymtab and isLocal logic in the two loops don't get easily out of sync.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
5c77c16f311d702a315547c0eb32b7a34a9d55c8 05-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce a undefined reference to _GLOBAL_OFFSET_TABLE_ when needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
8f413fa9c00dbaea000ddfe265ab5edd285ea3ab 05-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> On ELF we need to know which symbols are used in relocations to decide if
they should be in the symbol table or not. Instead of "guessing", just compute
the symbol table after the relocations are known.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
607d1f6d3216b647c07965bafae8d1aba6312136 04-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement ELF::R_X86_64_GOTPCREL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
cebdc01d66c55a4e8c260ad182d6816f2bcd0c44 04-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Move isFixupKindX86PCRel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
92bf6684f62e1df48ecc0a9b3cc3a99ce7c00747 04-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce a R_X86_64_PLT32 when needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
28f9ac81012e1e278128a4148e93f6ab873f15d8 04-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce a R_X86_64_GOT32 when needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
55fb102130925ada2bbc78abbbb70394d96d945e 04-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Include the section address in the computation of the relocation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
01263d35d4c037a882dbfa6364eb0f6c4e0d87a8 04-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly compute the relocation when it is not in the first fragment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
9d8b7555cde8b9722dd6f8dc77c627bae0718c67 03-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement a very basic PIC case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7eae36b38b874f417fa191fc1cfec22c100f164d 30-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Factor some logic into ShouldRelocOnSymbol. This simplifies the code and
fixes some cases where we were producing relocations with at symbol that
should use a section instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a8c02c3bdd68e65d14fb6b0d56989663754059b0 30-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly produce R_X86_64_32 or R_X86_64_32S.

With this patch in

movq $foo, foo(%rip)
foo:
.long foo

We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the
second one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7070387f08f7dc797b554ed8013cba9f8b74121a 30-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Make it possible for the MCObjectWriter to decide if a given fixup is fully
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
53725bc57a992e812d08f6ec62d824dfd21425bf 28-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> On elf, undefined symbols can start with .L.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c3c413f63117896f186fc4385bdaac0578d3613f 28-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Write relocations in the end of the file. This matches what gas does and
makes files easier to diff.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2c6ec31df6c6c45ad735892eedab78612ac2847b 27-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Factor symbol value computation into a function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
73ffea47d20bc9f559b4ce0c60166ee504073832 25-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Move ELF to HasReliableSymbolDifference=true. Also take the opportunity to put
symbols defined in merge sections in independent atoms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a648918eb772d46cd8e14a2ab3489a80500260af 24-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Reapply 114678 and 114667. Reverting them did not fix the bot:

http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost/builds/69

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
cd4b20a25b6251fb4a2ca50813c10184accab24b 24-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert 114678 and 114667 to see if

http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost

gets happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e15eb4e14cd543b925a837026cbdde9f94393e1c 23-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly handle weak undefined symbols. Before we would get a invalid binding
(2 == STB_WEAK | STB_GLOBAL).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a5c6b78bf8a009609258ed6c11ac4580ad6426f5 23-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly compute the offset of the symbol. Forgot these bits from the
last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b142bef30b2e2ef0c978f5f3041f1d4a429eb9b2 23-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Represent relocations against local symbols as relocations against the section
they are in. Both ways should be equivalent, but gas produces relocations
against the section.

Roman wrote the patch, I added the test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
51efe7a253190b672519e8388ce5d45f1dcf1a24 23-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix the FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
38738bf1a847292003a5495f17e42a75d1274bf7 22-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix typo and add a FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
aa359bddbfe498a3c7445bc2b8afa2bed61a131c 21-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert unrelated change that was accidentally included in the previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f7c10a3cff61c70efe8e405d9bdc5386e8e3fc0a 21-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement support for .local and its "interesting" interactions with .comm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
43779dcfef7f4e921c6fc12bb5394a1b2efcd81d 20-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Produce a R_X86_64_32 when the value is >=0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
ad49cf586624c400302d17ecc2c2e41ea4346f1a 18-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Make sure the STT_FILE symbol is the first one in the symbol table.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
0007489312ecb1b51ae275f1e452786480151a4c 18-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Avoid relocations in a common case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
71859c640f6a36251aca223fd503c58dc314e296 16-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Print the address of sections as 0 and create the metadata sections in the
same order as gnu as.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
5e492e8d42fa1f2940165a937d3d613c61b57708 09-Sep-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Write relocation fragments in the right endian.

- This code is gross, but does the job for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
5baf79edc067a4b17d024cc10324ac88c17e3e43 09-Sep-2010 Roman Divacky <rdivacky@freebsd.org> Make ELF OS ABI dependent on the OS from target triple.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b629dcca72a45ac0ab0095c3dc52cd0a378b1431 08-Sep-2010 Roman Divacky <rdivacky@freebsd.org> ELF_STB_Local is 0 so setting and checking it must be done specially



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
563b38a89a695869fc05e504ed0554a5b21f541e 08-Sep-2010 Roman Divacky <rdivacky@freebsd.org> Unresolved weak symbols have value equal zero.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a9eadca2fdf48e3228521f25b415b68219bcee31 06-Sep-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Align symtab, relocation sections and section headers properly. Patch by Krister Wombell.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
19dc7faf25e3a8cc37a656b74ebeef3ab976aa8e 31-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Allow creation of SHT_NULL sections, from Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
6cc53be24c894532b33a92069b092112ced7ad99 30-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: The value of all common symbols is the offset from the start of the section. Patch by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
51799ddc7c51efef8ffab1d1cc9731ee7a5db6a5 30-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> The value is offset from the start of the section for non-common symbols, submitted by Jordan Gordeev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
679d236117f9d04c304b39c1076259295cf7eb5e 30-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Index external symbols by symbol table instead of parent section, by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
b188a3789e2fc64ec7088a220c4c428c41d86faa 28-Aug-2010 Chris Lattner <sabre@nondot.org> squish dead code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
95c602ade3aa30de17abd53b85968a3feb8fdfbc 27-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Always overwrite FixedValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
4ba1b3074b96bfa21dbfa1a019573c45a4f5bf84 26-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Fix a thinko of mine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
63d37b932278724d51e7f8bd1f2574c7b45f85f0 26-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Compensate for the addend on i386. Patch by Roman Divacky, with some cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
7b83c26051b0474fb5f8b73ba6e74bd4f40324ba 25-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Use precomputed symbol indices, patch by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
2f6e0e68a455aa6bd6da74c3256470bd94c0b6f2 24-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Relocate against parent if the symbol is not in section or it's a common symbol, from Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
c522f6e70b02d161e4bf37023edb20643ee34acf 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Fix thinko. Having no tests is great ...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
36c6dc22bcaed92f03f7019a0d1cd47ea69e12da 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Reduce code duplication.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
0b6cbfe04cb36872255aff11a41a2b976ceba462 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> ELFObjectWriter: Run ComputeSymbolTable before recording relocations. This way we can use the information it has computed and don't have to recompute the same stuff over and over again.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
bcf2db60dd3c37fe76dc1b5c5fa3e95b43b3776a 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Add the symbol offset to the relocation value when we relocate against section. By Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
30dc1ee78ae99e4d9e92cdb02f1cbd64827c0630 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Use the proper relocation section + cleanup, from Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
44cbde85badb60c7078e37e14575c15e671521b1 19-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> MCELF: Count the section orders properly. Patch by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
81cfb8529b7fd1e98fefb79fb46b10301b93ab75 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Remove dead code. Fixes a GCC warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
e5b57347e9485b59dd8d70f8f90d7794f473147a 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Sketch i386 relocations handling, from Roman Divacky.

Hello world builds & runs now on i386/ELF with -integrated-as.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
299fbe3a5aad8f08c52c488a9b28df70c7595e0d 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Use the correct entry size for relocation entries, from Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
377a572d9b92304a0fde4371d726721586c1a5bd 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Differentiate between RELA and REL relocations, from Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
eb97677764beb115c658ac559d3649c6c4068eb9 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> One baby step towards i386 ELF, from Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
172d7d6a12b313dd5a8c1588b8f6bd49b1ce16b6 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Try to silence a overeager GCC warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
368ae7e4ec0cc0dfc404fa1d07cdf94a7f2a15be 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> A round of minor cleanups for ELFObjectWriter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
1f8aa7bf08783a438ee2afd3747477923d87b365 17-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Silence warnings and simplify code. Eliminate a 32/64 bit portability issue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
a44fa2473a5f2a13730d44e0aea8897b5656b555 16-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Fixes for generation of ELF relocations. Patch by Roman Divacky.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
f8020a3978b9a56074a3a5f9821c63165e37bff7 16-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp
3565a06ebf44a193a8b333cbeff2ee154298d450 16-Aug-2010 Matt Fleming <matt@console-pimps.org> Add ELF ObjectWriter and Streamer support.

I forgot to add these files in commit 111172.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/ELFObjectWriter.cpp