summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChao-ying Fu <fu@mips.com>2013-10-14 18:45:46 +0000
committerChao-ying Fu <fu@mips.com>2013-10-14 18:45:46 +0000
commit2b9ed0a4216444d4aa2a600789544031fc78fd9d (patch)
tree092a8e53c71ba6eceea19ab06e3457dfa587835a
parent1046a148f553b1930827620d61331b18c3522e22 (diff)
downloadbinutils-redhat-2b9ed0a4216444d4aa2a600789544031fc78fd9d.tar.gz
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.
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/doc/binutils.texi3
-rw-r--r--binutils/readelf.c24
3 files changed, 32 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a75641c044..e2d53e0c98 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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'.
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 9176d9b5a1..6abcae29db 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -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.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 2156b78258..7920100630 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -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);
}