PR16688 patch applied test case fails BE.

Marcus Shawcroft
Thu Mar 13 10:40:00 GMT 2014

Hi Nick,

This patch applied to GAS, which appears not to have been posted on the 

     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

         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.


More information about the Binutils mailing list