diff options
author | Nick Clifton <nickc@redhat.com> | 2014-03-12 15:44:09 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-03-12 15:50:49 +0000 |
commit | 55d9b4c146716a683d9fea769e5f4106eadb30fc (patch) | |
tree | 31d561ee0aa081ccd638955342aece052073d99f /gas/ChangeLog | |
parent | 646f4417760ab12c0d955dabf821d8737d94335a (diff) | |
download | gdb-55d9b4c146716a683d9fea769e5f4106eadb30fc.zip gdb-55d9b4c146716a683d9fea769e5f4106eadb30fc.tar.gz gdb-55d9b4c146716a683d9fea769e5f4106eadb30fc.tar.bz2 |
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.
Diffstat (limited to 'gas/ChangeLog')
-rw-r--r-- | gas/ChangeLog | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 7bff8d3..6851b8c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,12 @@ +2014-03-12 Nick Clifton <nickc@redhat.com> + + 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. + 2014-03-12 Alan Modra <amodra@gmail.com> * Makefile.in: Regenerate. |