This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PR16688 patch applied test case fails BE.
- From: Marcus Shawcroft <marcus dot shawcroft at arm dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>, "nickc at redhat dot com" <nickc at redhat dot com>
- Date: Thu, 13 Mar 2014 10:40:13 +0000
- Subject: PR16688 patch applied test case fails BE.
- Authentication-results: sourceware.org; auth=none
Hi Nick,
This patch applied to GAS, which appears not to have been posted on the
list:
The value of a bignum expression is held in a single global array.
This means
that if multiple bignum values are encountered only the most recent
is valid.
If such expressions are cached, eg to be emitted into a literal
pool later on
in the assembly, then only one expression - the last - will be
correct. This
patch fixes the problem for the AArch64 target by caching each
bignum value
locally.
PR gas/16688
* config/tc-aarch64.c (literal_expression): New structure.
(literal_pool): Replace exp array with literal_expression array.
(add_to_lit_pool): When adding a bignum cache the big value.
(s_ltorg): When emitting a bignum initialise the global bignum
array from the cached value.
* gas/aarch64/litpool.s: New test case.
* gas/aarch64/litpool.d: Expected disassembly.
introduces a test case that fails on aarch64_be-* targets.
Cheers
/Marcus