Module Name:    src
Committed By:   matt
Date:           Fri May 29 22:18:51 UTC 2015

Modified Files:
        src/external/gpl3/binutils/dist/gas/config: tc-mips.c

Log Message:
Fix a bug where the octeon+ saa/saad instructions think they are using the AT
register when they actually aren't.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
    src/external/gpl3/binutils/dist/gas/config/tc-mips.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/binutils/dist/gas/config/tc-mips.c
diff -u src/external/gpl3/binutils/dist/gas/config/tc-mips.c:1.14 src/external/gpl3/binutils/dist/gas/config/tc-mips.c:1.15
--- src/external/gpl3/binutils/dist/gas/config/tc-mips.c:1.14	Tue Dec 10 18:15:43 2013
+++ src/external/gpl3/binutils/dist/gas/config/tc-mips.c	Fri May 29 22:18:51 2015
@@ -9235,18 +9235,28 @@ macro (struct mips_cl_insn *ip)
 
 	
     case M_SAA_AB:
-      ab = 1;
+      ab = (offset_expr.X_op != O_constant || offset_expr.X_add_number != 0);
     case M_SAA_OB:
       s = "saa";
       off0 = 1;
       fmt = "t,(b)";
+      if (!ab)
+	{
+	  tempreg = AT;
+	  goto ld_noat;
+	}
       goto ld_st;
     case M_SAAD_AB:
-      ab = 1;
+      ab = (offset_expr.X_op != O_constant || offset_expr.X_add_number != 0);
     case M_SAAD_OB:
       s = "saad";
       off0 = 1;
       fmt = "t,(b)";
+      if (!ab)
+	{
+	  tempreg = AT;
+	  goto ld_noat;
+	}
       goto ld_st;
 
    /* New code added to support COPZ instructions.

Reply via email to