This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
src/gas ChangeLog config/bfin-lex.l
- From: vapier at sourceware dot org
- To: binutils-cvs at sourceware dot org
- Date: 11 Oct 2010 08:37:20 -0000
- Subject: src/gas ChangeLog config/bfin-lex.l
CVSROOT: /cvs/src
Module name: src
Changes by: vapier@sourceware.org 2010-10-11 08:37:20
Modified files:
gas : ChangeLog
gas/config : bfin-lex.l
Log message:
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>
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/ChangeLog.diff?cvsroot=src&r1=1.4289&r2=1.4290
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/bfin-lex.l.diff?cvsroot=src&r1=1.15&r2=1.16