2013-10-14 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
authorChao-ying Fu <fu@mips.com>
Mon, 14 Oct 2013 18:45:46 +0000 (18:45 +0000)
committerChao-ying Fu <fu@mips.com>
Mon, 14 Oct 2013 18:45:46 +0000 (18:45 +0000)
* readelf.c (display_mips_gnu_attribute): Support Tag_GNU_MIPS_ABI_MSA.
* doc/binutils.texi: Document -Mmsa disassembler option.

binutils/ChangeLog
binutils/doc/binutils.texi
binutils/readelf.c

index a75641c..e2d53e0 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-14  Chao-ying Fu  <Chao-ying.Fu@imgtec.com>
+
+       * readelf.c (display_mips_gnu_attribute): Support Tag_GNU_MIPS_ABI_MSA.
+       * doc/binutils.texi: Document -Mmsa disassembler option.
+
 2013-10-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
 
        * readelf.c (decode_arm_unwind): Don't initialize `addr'.
index 9176d9b..6abcae2 100644 (file)
@@ -2114,6 +2114,9 @@ Print the 'raw' instruction mnemonic instead of some pseudo
 instruction mnemonic.  I.e., print 'daddu' or 'or' instead of 'move',
 'sll' instead of 'nop', etc.
 
+@item msa
+Disassemble MSA instructions.
+
 @item virt
 Disassemble the virtualization ASE instructions.
 
index 2156b78..7920100 100644 (file)
@@ -11769,6 +11769,30 @@ display_mips_gnu_attribute (unsigned char * p,
       return p;
    }
 
+  if (tag == Tag_GNU_MIPS_ABI_MSA)
+    {
+      unsigned int len;
+      int val;
+
+      val = read_uleb128 (p, &len, end);
+      p += len;
+      printf ("  Tag_GNU_MIPS_ABI_MSA: ");
+
+      switch (val)
+       {
+       case Val_GNU_MIPS_ABI_MSA_ANY:
+         printf (_("Any MSA or not\n"));
+         break;
+       case Val_GNU_MIPS_ABI_MSA_128:
+         printf (_("128-bit MSA\n"));
+         break;
+       default:
+         printf ("??? (%d)\n", val);
+         break;
+       }
+      return p;
+    }
+
   return display_tag_value (tag & 1, p, end);
 }