[Patch, AArch64] Bug fix in pc-relative literal load instruction handling

Yufeng Zhang Yufeng.Zhang@arm.com
Mon Nov 12 09:49:00 GMT 2012


This patch fixes a bug in the AArch64 GAS in handling pc-relative 
literal load instructions where 16-byte literal is involved, e.g.

LDR Q0, =0xdeadbeef

The literal pool generator silently rejected the generation of 16-byte 
literals, and then the generic part of GAS got confused and issued error 
message of "redefined symbol cannot be used on reloc".

Is it OK to commit?



2012-10-18  Yufeng Zhang  <yufeng.zhang@arm.com>

         * config/tc-aarch64.c (exp_has_bignum_p): Remove.
         (my_get_expression): Not get rid bignums.
         (s_ltorg): Increase the range of 'align'.
         (programmer_friendly_fixup): Allow bignum expression.


2012-10-18  Yufeng Zhang  <yufeng.zhang@arm.com>

         * gas/aarch64/illegal.s: Add test for unaccepted LDR literal.
         * gas/aarch64/illegal.l: Update.
         * gas/aarch64/programmer-friendly.s: Add tests for LDR literal with
         the auto-generation of lteral in pool.
         * gas/aarch64/programmer-friendly.d: Update.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: load-literal.patch
Type: text/x-patch
Size: 4875 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20121112/bebbeb93/attachment.bin>

More information about the Newlib mailing list