From 2b9ed0a4216444d4aa2a600789544031fc78fd9d Mon Sep 17 00:00:00 2001 From: Chao-ying Fu Date: Mon, 14 Oct 2013 18:45:46 +0000 Subject: 2013-10-14 Chao-ying Fu * readelf.c (display_mips_gnu_attribute): Support Tag_GNU_MIPS_ABI_MSA. * doc/binutils.texi: Document -Mmsa disassembler option. --- binutils/ChangeLog | 5 +++++ binutils/doc/binutils.texi | 3 +++ binutils/readelf.c | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+) 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 + + * 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 * 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); } -- cgit v1.2.1