PR16688 patch applied test case fails BE.
Marcus Shawcroft
marcus.shawcroft@arm.com
Thu Mar 13 10:40:00 GMT 2014
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
More information about the Binutils
mailing list