[Patch AArch64] Turn lr, fp, ip0 and ip1 into proper aliases
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Tue, 15 Aug 2017 12:58:01 +0000 (13:58 +0100)
committerRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Tue, 15 Aug 2017 12:58:01 +0000 (13:58 +0100)
commit8975f864092f0a1ba561622ba137b305da4a362f
treec45001e5cfe5917de025e4433410b779cd891689
parentbf0ec4c2769236d9c471685409605f50b01479e5
[Patch AArch64] Turn lr, fp, ip0 and ip1 into proper aliases

We got a report from the linux-arm-kernel folks about getting spurious
warnings when building the kernel with binutils 2.29. See
https://www.spinics.net/lists/arm-kernel/msg599929.html

which boils down to this testcase.

$> cat /tmp/tst.s
    lr .req x30
    /tmp/tst.s: Assembler messages:
    /tmp/tst.s:1: Warning: ignoring attempt to redefine built-in register 'lr'

Instead let's treat this as a proper alias at startup time thus
avoiding the problem and treating these as proper aliases
rather than new registers. This means that attempts to redefine
the alias with the same "name" will provoke no warning and attempts
to redefine the alias to something else will provoke the above mentioned
warning.

Tested make check-gas and no regressions.

Ok to apply to trunk (and backport to 2.29 branch)?

Regards
Ramana
gas/ChangeLog
gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
gas/testsuite/gas/aarch64/diagnostic.l
gas/testsuite/gas/aarch64/diagnostic.s
gas/testsuite/gas/aarch64/register_aliases.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/register_aliases.s [new file with mode: 0644]