From be294de6b3eb195d69e1e4533dd85f133bff52dd Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Mon, 1 Jun 1998 23:07:21 +0000 Subject: [PATCH] * config/tc-mips.c (hilo_interlocks): The r5900 has HILO interlocks. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index c92cfff9b9b..edc31ef62c6 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 * 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 02639609bbf..8dcd4b05e5a 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; -- 2.30.2