aboutsummaryrefslogtreecommitdiff
path: root/gas/ChangeLog
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-10-11 08:37:20 +0000
committerMike Frysinger <vapier@gentoo.org>2010-10-11 08:37:20 +0000
commit65646555b2f618d48420b5a786a1e7c86f8ad36f (patch)
tree9fae9042782b6669559626a7c962fa512396135b /gas/ChangeLog
parent5664043466b5a1a79232f5a3ee6339e638384720 (diff)
downloadgdb-65646555b2f618d48420b5a786a1e7c86f8ad36f.zip
gdb-65646555b2f618d48420b5a786a1e7c86f8ad36f.tar.gz
gdb-65646555b2f618d48420b5a786a1e7c86f8ad36f.tar.bz2
gas: blackfin: reign in overeager insn flag handling
Currently, trying to declare single letter variables in Blackfin assembly can sometimes lead to parser errors if that letter is used for insn flags. For example, X, Z, S, M, and T are used to change the behavior of insns: R0 = 1; R0 = 1 (X); R0 = 1 (Z); But the current parser just looks for single letter tokens rather than ones that show up in the (FLAGS) field. So only match these letters as flags when they're in parentheses. Not a complete fix, but it at least lets gcc tests pass now (the test gcc/testsuite/gcc.c-torture/compile/mangle-1.c to be exact). A complete fix would require a significant parser rewrite in order to handle: R0 = (x) (x); /* zero extend the address of the symbol "x" */ R0 = W; R0 = W[P0]; Signed-off-by: Steve Kilbane <steve.kilbane@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'gas/ChangeLog')
-rw-r--r--gas/ChangeLog6
1 files changed, 6 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ef21345..9d1de5c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2010-09-11 Steve Kilbane <steve.kilbane@analog.com>
+
+ * config/bfin-lex.l (FLAGS): New state.
+ (X, Z, S, M, T): Require FLAGS state.
+ ("(", ")"): Start/stop FLAGS state.
+
2010-09-11 David Gibson <david.gibson@analog.com>
* config/bfin-aux.h (bfin_loop_attempt_create_label): New prototype.