This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]