Rafael Espindola
cecbc3d282
Add support for emitting ARM file attributes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117275 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-25 17:50:35 +00:00
Rafael Espindola
24ba4f7f5f
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
2010-10-24 17:35:42 +00:00
Benjamin Kramer
a3ac427507
Make some symbols static, move classes into anonymous namespaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-22 17:35:07 +00:00
Wesley Peck
eecb858ca8
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
2010-10-22 15:52:49 +00:00
Jim Grosbach
fe40f9551c
Trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117073 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 22:04:05 +00:00
Michael J. Spencer
ef0401ad66
Fix Warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117062 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 20:49:38 +00:00
Rafael Espindola
8c8bc05a38
Do not recurse into symbol refs that have a variant kind. This prevents us
...
from losing the variant when producing a relocation on an alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117037 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 18:00:20 +00:00
Chandler Carruth
1cd9708f5c
Remove remaining uses of ATTRIBUTE_UNUSED on variables, and delete three
...
#includes in the process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116919 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 08:27:02 +00:00
Rafael Espindola
bd70118f16
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
2010-10-19 19:31:37 +00:00
Bill Wendling
cf2561d111
Fix spelling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116804 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 10:18:23 +00:00
Chandler Carruth
b5a2d3f8e3
Move the definition of this to the source file to anchor the vtable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116779 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 00:37:30 +00:00
Rafael Espindola
eada304793
Implement R_386_GOT32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116744 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18 20:47:21 +00:00
Rafael Espindola
ce2d3c5775
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
2010-10-18 20:25:33 +00:00
Rafael Espindola
24dc9ecdc5
Reenable assert.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116738 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18 19:33:01 +00:00
Rafael Espindola
aa85c21633
Produce ELF::R_386_GOTPC relocations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116728 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18 18:36:12 +00:00
Rafael Espindola
9baee3b3a3
Make the bots happy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116719 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18 18:03:28 +00:00
Rafael Espindola
9edab3a9e1
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
2010-10-18 16:58:03 +00:00
Rafael Espindola
c97f80efc8
Handle GOTOFF correctly on i386.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116711 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18 16:38:04 +00:00
Benjamin Kramer
24f1206c7d
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
2010-10-17 07:38:40 +00:00
Rafael Espindola
f230df9af4
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
2010-10-16 18:23:53 +00:00
Michael J. Spencer
4cee2890a6
MC-COFF: Add support for default-null weak externals.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116666 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-16 08:25:57 +00:00
Daniel Dunbar
138abae2a2
MC/AsmParser: Report .stabs directive as unsupported.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116659 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-16 04:56:42 +00:00
Rafael Espindola
de89b010b0
Refactor alias handling to AliasedSymbol.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116600 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-15 18:25:33 +00:00
Rafael Espindola
5df0b65e8f
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
2010-10-15 15:39:06 +00:00
Rafael Espindola
a0949b50dc
Remove some code duplication.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116484 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14 16:34:44 +00:00
Michael J. Spencer
28ca86aa19
MC-COFF: Fix .bss section size. Fixes PR8335. Patch by NAKAMUTA Takumi!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116155 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-09 16:04:45 +00:00
Michael J. Spencer
192d136750
MC-COFF: Implement InitSections. Fixes PR8335.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-09 15:44:27 +00:00
Michael J. Spencer
7d4900416a
MC-COFF: Add COFFAsmParser. Completes PR8343.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116150 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-09 11:01:07 +00:00
Michael J. Spencer
c0c8df3cea
Fix Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116149 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-09 11:00:50 +00:00
Michael J. Spencer
d47f4a9c98
MC-COFF: Assert on non-coff sections.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116148 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-09 11:00:37 +00:00
Michael J. Spencer
e90ea139f4
MC: Move ParseDirectiveELFType into ELFAsmParser. COFF uses .type for something else.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116142 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-09 03:47:55 +00:00
Michael J. Spencer
b225adee29
MC-COFF: Handle relaxation in COFF better. Fixes PR8321.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116013 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-07 23:55:40 +00:00
NAKAMURA Takumi
86c3647ddf
Minor cosmetic change: fix DOSish \r\n.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115910 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-07 07:21:04 +00:00
Michael J. Spencer
b5814a3c15
MC-COFF: Fix symbol aliases. Fixes PR8251.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-07 06:29:33 +00:00
Rafael Espindola
d8e0bfe07a
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
2010-10-06 22:28:19 +00:00
Rafael Espindola
152c1061e0
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
2010-10-06 21:02:29 +00:00
Michael J. Spencer
345ed9806a
MC: Add missing forward in MCLoggingStreamer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115830 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-06 20:36:47 +00:00
Rafael Espindola
153666c038
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
2010-10-06 19:27:21 +00:00
Rafael Espindola
3223f19ff0
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
2010-10-06 16:47:31 +00:00
Rafael Espindola
8cecf253e4
Correctly handle GOTPCREL relocations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115793 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-06 16:23:36 +00:00
Rafael Espindola
3729d0052b
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
2010-10-05 23:57:26 +00:00
Rafael Espindola
01f9ea35a7
Implement more alias cases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115699 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 22:26:43 +00:00
Rafael Espindola
f5c347dfc2
256 sections should be enough for anyone...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115687 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 21:20:07 +00:00
Rafael Espindola
62fed8bd38
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
2010-10-05 21:02:45 +00:00
Michael J. Spencer
ea1104a4c3
Fix Punctuation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115657 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 19:48:12 +00:00
Michael J. Spencer
eb6e77f8cc
MC-COFF: Fix (PR8278) temporary symbol relocations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115656 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 19:48:03 +00:00
Rafael Espindola
e452b17130
Add support for a fill value in the .zero directive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115655 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 19:42:57 +00:00
Rafael Espindola
737cd213e3
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
2010-10-05 18:01:23 +00:00
Rafael Espindola
5c77c16f31
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
2010-10-05 15:48:37 +00:00
Rafael Espindola
8f413fa9c0
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
2010-10-05 15:11:03 +00:00