** potential patch for 2.10 ** DEC Alpha bug related to AT register

David O'Brien obrien@NUXI.com
Tue Jun 6 09:26:00 GMT 2000


The FreeBSD kernel has found a bug in 2.10 CVS from 20000512.  This is
not fixed in 2.10 RC 2.  The bug is a very annoying and misleading
warning that the use of floating point register 28 needs ".set noat" set.
Note that $r28 is $at, not $f28.  The misleading warning may cause
programmers to wrap access to $f28 when they shouldn't.


May I check the following patch into both the 2.10 branch and HEAD?

Index: contrib/binutils/gas/config/tc-alpha.c
===================================================================
RCS file: /home/ncvs/src/contrib/binutils/gas/config/tc-alpha.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 tc-alpha.c
--- contrib/binutils/gas/config/tc-alpha.c	2000/05/12 23:14:56	1.1.1.3
+++ contrib/binutils/gas/config/tc-alpha.c	2000/06/06 15:54:49
@@ -1372,7 +1372,7 @@
 	  else
 	    break;
 
-	  if (!alpha_noat_on && num == AXP_REG_AT)
+	  if (!alpha_noat_on && (num + is_float) == AXP_REG_AT)
 	    as_warn(_("Used $at without \".set noat\""));
 	  return alpha_register_table[num + is_float];
 

Alternate fix is "if (!alpha_noat_on && num == AXP_REG_AT && !is_float)".



More information about the Binutils mailing list