aboutsummaryrefslogtreecommitdiff
path: root/gas/ChangeLog
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2014-03-12 15:44:09 +0000
committerNick Clifton <nickc@redhat.com>2014-03-12 15:50:49 +0000
commit55d9b4c146716a683d9fea769e5f4106eadb30fc (patch)
tree31d561ee0aa081ccd638955342aece052073d99f /gas/ChangeLog
parent646f4417760ab12c0d955dabf821d8737d94335a (diff)
downloadgdb-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/ChangeLog9
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.