llvm-project/llvm/test/MC
Rafael Espindola d9c3e308f5 Add r224985 back with two fixes.
One is that AArch64 has additional restrictions on when local relocations can
be used. We have to take those into consideration when deciding to put a L
symbol in the symbol table or not.

The other is that ld64 requires the relocations to cstring to use linker
visible symbols on AArch64.

Thanks to Michael Zolotukhin for testing this!

Remove doesSectionRequireSymbols.

In an assembly expression like

bar:
.long L0 + 1

the intended semantics is that bar will contain a pointer one byte past L0.

In sections that are merged by content (strings, 4 byte constants, etc), a
single position in the section doesn't give the linker enough information.
For example, it would not be able to tell a relocation must point to the
end of a string, since that would look just like the start of the next.

The solution used in ELF to use relocation with symbols if there is a non-zero
addend.

In MachO before this patch we would just keep all symbols in some sections.

This would miss some cases (only cstrings on x86_64 were implemented) and was
inefficient since most relocations have an addend of 0 and can be represented
without the symbol.

This patch implements the non-zero addend logic for MachO too.

llvm-svn: 225644
2015-01-12 18:13:07 +00:00
..
AArch64 Update AArch64 ELF relocations to ABI 1.0 2014-11-26 10:49:18 +00:00
ARM ARM: add support for segment base relocations (SBREL) 2015-01-11 04:39:18 +00:00
AsmParser MC: Don't emit .no_dead_strip on targets which don't support it 2014-12-24 04:11:42 +00:00
COFF [COFF] Don't try to add quotes to already quoted linker directives 2014-12-30 19:23:48 +00:00
Disassembler [mips][microMIPS] Implement BEQZ16 and BNEZ16 instructions 2015-01-12 12:03:34 +00:00
ELF MC: Label definitions are permitted after .set directives 2014-12-24 10:27:50 +00:00
Hexagon [Hexagon] Updating predicate register transfers and adding tstbit to allow select selection. Updating ll tests with predicate transfers that previously had nop encodings. 2014-12-09 18:16:49 +00:00
MachO Add r224985 back with two fixes. 2015-01-12 18:13:07 +00:00
Markup MC: Simple example parser for MC assembly markup. 2012-10-31 23:24:13 +00:00
Mips [mips][microMIPS] Implement BEQZ16 and BNEZ16 instructions 2015-01-12 12:03:34 +00:00
PowerPC [PowerPC] Add support for the CMPB instruction 2015-01-03 01:16:37 +00:00
R600 R600/SI: Add a stub GCNTargetMachine 2015-01-06 18:00:21 +00:00
Sparc Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
SystemZ Exclude known and bugzilled failures from UBSan bootstrap 2014-09-17 20:17:52 +00:00
X86 AVX-512: BLENDM - fixed encoding of the broadcast version 2014-12-23 09:36:28 +00:00