[ARM] register label conflict with blx instruction

Richard Earnshaw rearnsha@arm.com
Wed Nov 5 10:40:00 GMT 2014


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
> 
> 
> 
> 




More information about the Binutils mailing list