| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
switch. (face+palm)
llvm-svn: 132790
|
|
|
|
|
|
|
|
|
|
| |
VK_GOTOFF reloc. This matches as' behavior, but it is not clear why the linker
might need this, so I added a FIXME.
I could test this by duplicating test/MC/ELF/got.s, but it doesn't look
worthwhile.
llvm-svn: 132655
|
|
|
|
| |
llvm-svn: 132643
|
|
|
|
|
|
|
|
| |
of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6)
Patch by koan-sin tan.
llvm-svn: 131748
|
|
|
|
| |
llvm-svn: 131411
|
|
|
|
|
|
|
|
|
|
| |
("T is 1 if the target symbol S has type STT_FUNC and the
symbol addresses a Thumb instruction ;it is 0 otherwise."
from "ELF for the ARM Architecture" 4.7.1.2)
Patch by Koan-Sin Tan!
llvm-svn: 131406
|
|
|
|
| |
llvm-svn: 131208
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LLVM and binutils.
With this patch, there are no functional differences between the .o
produced directly from LLVM versus the .s to .o via GNU as, for relocation tags
at least, for both PIC and non-PIC modes.
Because some non-PIC reloc tags are used (legally) on PIC, so IsPCRel flag is
necessary but not sufficient to determine whether the overall codegen mode is
PIC or not. Why is this necessary? There is an incompatibility of how relocs
are emitted in the .rodata section. Binutils PIC likes to emit certain relocs
as section relative offsets. Non-PIC does not do this.
So I added a hidden switch on the ELFObjectwriter "-arm-elf-force-pic" which
forces the objectwriter to pretend that all relocs are for PIC mode.
Todo: Activate ForceARMElfPIC to true if -relocation-model=pic is selected
on llc.
Todo: There are probably more issues for PIC mode on ARM/MC/ELF...
Todo: Existing tests in MC/ARM/elf-reloc*.ll need to be converted over to .s
tests as well as expanded to cover the gamut.
llvm-svn: 131205
|
|
|
|
|
|
|
|
|
|
| |
for all symbol differences and can drop the old EmitPCRelSymbolValue
method.
This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.
llvm-svn: 130634
|
|
|
|
|
|
| |
When two section names share a suffix, reuse the entry in shstrtab.
llvm-svn: 129115
|
|
|
|
|
|
|
| |
gun as does. This makes it a lot easier to compare the output of both
as the addresses are now a lot closer.
llvm-svn: 127972
|
|
|
|
|
|
| |
other components can use them.
llvm-svn: 126942
|
|
|
|
|
|
|
|
| |
for calls to weak symbols with a definition has the appearance of working
with LLVM-generated code because weak symbol definitions are put in their
own sections.
llvm-svn: 126933
|
|
|
|
|
|
| |
(duplicated) functions to new MCELF class.
llvm-svn: 126686
|
|
|
|
|
|
| |
Fixes PR9292.
llvm-svn: 126330
|
|
|
|
| |
llvm-svn: 126157
|
|
|
|
|
|
| |
the right thing and stop trying to copy it. Fixes PR8944.
llvm-svn: 125648
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
failures with relocations.
The code committed is a first cut at compatibility for emitted relocations in
ELF .o.
Why do this? because existing ARM tools like emitting relocs symbols as
explicit relocations, not as section-offset relocs.
Result is that with these changes,
1) relocs are now substantially identical what to gcc outputs.
2) larger apps (including many spec2k tests) compile, cross-link, and pass
Added reminder fixme to tests for future conversion to .s form.
llvm-svn: 124996
|
|
|
|
|
|
|
| |
5 to match the current doc.
Added FIXME reminder Make it really configurable later.
llvm-svn: 124899
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(yes, this is different from R_ARM_CALL)
- Adds a new method getARMBranchTargetOpValue() which handles the
necessary distinction between the conditional and unconditional br/bl
needed for ARM/ELF
At least for ARM mode, the needed fixup for conditional versus unconditional
br/bl is identical, but the ARM docs and existing ARM tools expect this
reloc type...
Added a few FIXME's for future naming fixups in ARMInstrInfo.td
llvm-svn: 124895
|
|
|
|
| |
llvm-svn: 124077
|
|
|
|
|
|
| |
Add support for SHT_X86_64_UNWIND.
llvm-svn: 124059
|
|
|
|
| |
llvm-svn: 124056
|
|
|
|
|
|
|
|
| |
- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first.
- Added support for Thumb2 :lower16: and :upper16: fix up.
- Added :upper16: and :lower16: relocation support to mach-o object writer.
llvm-svn: 123424
|
|
|
|
| |
llvm-svn: 123347
|
|
|
|
|
|
|
|
| |
R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC.
2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum.
3. Add support for 3 new elf section types (no-ops)
llvm-svn: 123294
|
|
|
|
| |
llvm-svn: 122658
|
|
|
|
| |
llvm-svn: 122579
|
|
|
|
|
|
| |
supports.
llvm-svn: 122577
|
|
|
|
| |
llvm-svn: 122568
|
|
|
|
|
|
| |
have a single point where targets test if a relocation is needed.
llvm-svn: 122549
|
|
|
|
| |
llvm-svn: 122404
|
|
|
|
| |
llvm-svn: 122268
|
|
|
|
| |
llvm-svn: 122148
|
|
|
|
| |
llvm-svn: 122147
|
|
|
|
| |
llvm-svn: 122134
|
|
|
|
| |
llvm-svn: 122070
|
|
|
|
| |
llvm-svn: 122067
|
|
|
|
| |
llvm-svn: 122064
|
|
|
|
| |
llvm-svn: 122050
|
|
|
|
|
|
|
|
| |
specific hook.
- Currently just has stub implementations for Mach-O, ELF, and COFF.
llvm-svn: 122037
|
|
|
|
|
|
| |
-- and remove FIXME asking for the same!
llvm-svn: 122032
|
|
|
|
|
|
|
| |
2. Fixed EmitLocalCommonSymbol for ELF (Yes, they exist. :)
Test added.
llvm-svn: 121951
|
|
|
|
|
|
| |
Test has fixme, to move to .s -> .o test when AsmParser works better.
llvm-svn: 121732
|
|
|
|
| |
llvm-svn: 121496
|
|
|
|
| |
llvm-svn: 121404
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 121312
|
|
|
|
| |
llvm-svn: 121308
|
|
|
|
| |
llvm-svn: 121226
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 121076
|