This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [ARM] register label conflict with blx instruction
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Christian Bruel <christian dot bruel at st dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>
- Date: Wed, 05 Nov 2014 10:40:20 +0000
- Subject: Re: [ARM] register label conflict with blx instruction
- Authentication-results: sourceware.org; auth=none
- References: <5459FAA5 dot 7000208 at st dot com>
On 05/11/14 10:23, Christian Bruel wrote:
> Hello,
>
> I'm wondering what would be the best way to deal with labels conflicting
> with a register name in ARM gas.
>
> e.g with
>
> .thumb
> .thumb_func
> .type r0, %function
> r0:
> ...
>
> .arm
> .type f, %function
> f:
> blx r0
>
Write
bl r0
then let the linker fix it up. Compilers shouldn't need to emit blx
<label>.
R.
> the assembler will see r0 as a reg and of course produce wrong code.
>
> Prefixing labels in the assembler fixes the issue. But this is compiler
> generated code (from the attribute target work), Changing
> USER_LABEL_PREFIX would modify all visible symbols which is not
> desirable. I only wish to generate this for static function to bypass a
> current limitation with the assembler.
>
> Any idea about an arm assembly syntax to avoid naming conflict between
> regs and symbols for instruction that support boths ?
>
> Thanks,
>
> Christian
>
>
>
>