[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


Hi,

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?

Thanks,
Yufeng


gas/

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.

gas/testsuite/

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