* config/tc-mips.c (hilo_interlocks): The r5900 has HILO interlocks.
authorJeff Law <law@redhat.com>
Mon, 1 Jun 1998 23:07:21 +0000 (23:07 +0000)
committerJeff Law <law@redhat.com>
Mon, 1 Jun 1998 23:07:21 +0000 (23:07 +0000)
gas/ChangeLog
gas/config/tc-mips.c

index c92cfff..edc31ef 100644 (file)
@@ -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
index 0263960..8dcd4b0 100644 (file)
@@ -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;