[Bug target/60034] "invalid expression as operand" in aarch64 inline asm

kuganv at linaro dot org gcc-bugzilla@gcc.gnu.org
Sun Feb 16 22:27:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60034

--- Comment #5 from Kugan <kuganv at linaro dot org> ---
There is a rgression with this patch in qemu aarch64-none-linux-gnu for
pr38151.c.

pr38151.c:(.text+0x10c): relocation truncated to fit:
R_AARCH64_LDST64_ABS_LO12_NC against `.rodata'
collect2: error: ld returned 1 exit status


asm diff is as shown below.

<     add    x0, x0, :lo12:.LANCHOR0
<     ldr    x0, [x0]
---
> 	ldr	x0, [x0,#:lo12:.LANCHOR0]

If I however increase the alignment of .rodata where .LANCHOR0 is
defined, this passes.  Is alignment of BITS_PER_UNIT valid for
SYMBOL_REF? If I change it as I am doing this attached patch, is there
anything else I need to do. Any tips?


More information about the Gcc-bugs mailing list