aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-mips.c19
2 files changed, 25 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c92cfff..edc31ef 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+start-sanitize-r5900
+Mon Jun 1 17:04:56 1998 Jeffrey A Law (law@cygnus.com)
+
+ * config/tc-mips.c (hilo_interlocks): The r5900 has HILO interlocks.
+
+end-sanitize-r5900
Mon Jun 1 12:47:30 1998 Doug Evans <devans@canuck.cygnus.com>
* config/tc-m32r.c (m32r_do_align): Only fill code sections with
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 0263960..8dcd4b0 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -242,6 +242,9 @@ static int mips_4900 = -1;
/* start-sanitize-vr4320 */ \
|| mips_cpu == 4320 \
/* end-sanitize-vr4320 */ \
+ /* start-sanitize-r5900 */ \
+ || mips_cpu == 5900 \
+ /* end-sanitize-r5900 */ \
)
/* Whether the processor uses hardware interlocks to protect reads
@@ -7008,6 +7011,7 @@ validate_mips_insn (opc)
case 'J': break;
case 'O': USE_BITS (OP_MASK_VUCALLMS, OP_SH_VUCALLMS);break;
case '&': USE_BITS (OP_MASK_VUDEST, OP_SH_VUDEST); break;
+ case ';': break;
case '#':
p++;
break;
@@ -7317,6 +7321,7 @@ mips_ip (str, ip)
case 'K': /* DEST operand completer (optional), must
match previous dest if specified. */
case '&': /* DEST instruction completer */
+ case ';': /* DEST instruction completer, must be xyz */
{
int w,x,y,z;
static int last_h;
@@ -7366,6 +7371,20 @@ mips_ip (str, ip)
| (y << 23) | (z << 22));
last_h = (w << 3) | (x << 0) | (y << 1) | (z << 2);
}
+ else if (*args == ';')
+ {
+ /* This implicitly has the .xyz completer. */
+ if (w == 0 && x == 0 && y == 0 && z == 0)
+ x = y = z = 1;
+
+ if (w != 0 || x != 1 || y != 1 || z != 1)
+ {
+ insn_error = "Invalid dest specification";
+ continue;
+ }
+
+ last_h = (w << 3) | (x << 0) | (y << 1) | (z << 2);
+ }
else
{
int temp;