diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-10-11 08:37:20 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-10-11 08:37:20 +0000 |
commit | 65646555b2f618d48420b5a786a1e7c86f8ad36f (patch) | |
tree | 9fae9042782b6669559626a7c962fa512396135b /gas/ChangeLog | |
parent | 5664043466b5a1a79232f5a3ee6339e638384720 (diff) | |
download | gdb-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/ChangeLog | 6 |
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. |