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.