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.