Added -V option to print version number.
[binutils-gdb.git] / binutils / sparc-pinsn.c
index 003d4b62bf3ad7d86b0e9bc02c7803e401029fef..2430b5d4f6165748bb7d5729cbf88c514c762d79 100644 (file)
@@ -18,8 +18,6 @@ You should have received a copy of the GNU General Public License
 along with the binutils; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-/* $Id$ */
-
 #include "bfd.h"
 #include "sysdep.h"
 #include <stdio.h>
@@ -242,14 +240,30 @@ memcpy(&insn,buffer, sizeof (insn));
 
 #define        freg(n) fprintf (stream, "%%%s", freg_names[n])
                  case 'e':
+                 case 'v':     /* double/even */
+                 case 'V':     /* quad/multiple of 4 */
                    freg (insn.rs1);
                    break;
 
                  case 'f':
+                 case 'B':     /* double/even */
+                 case 'R':     /* quad/multiple of 4 */
                    freg (insn.rs2);
                    break;
 
+#ifndef NO_V9
+/* Somebody who know needs to define rs3.
+                 case 'j':
+                 case 'u':     * double/even *
+                 case 'U':     * quad/multiple of 4 *
+                   freg (insn.rs3);
+                   break;
+*/
+#endif                         /* NO_V9 */
+
                  case 'g':
+                 case 'H':     /* double/even */
+                 case 'J':     /* quad/multiple of 4 */
                    freg (insn.rd);
                    break;
 #undef freg
@@ -304,10 +318,11 @@ memcpy(&insn,buffer, sizeof (insn));
                                   stream);
                    break;
 
-                 case 'K':
+                 case 'G':
                    print_address ((bfd_vma)
                                   (memaddr
-                                   + (((int) insn.disp21 << 11) >> 11) * 4),
+                                   /* We use only 19 of the 21 bits.  */
+                                   + (((int) insn.disp21 << 13) >> 13) * 4),
                                   stream);
                    break;
 
@@ -315,6 +330,20 @@ memcpy(&insn,buffer, sizeof (insn));
                    fputs ("%amr", stream);
                    break;
 
+                 case '6':
+                 case '7':
+                 case '8':
+                 case '9':
+                   fprintf (stream, "fcc%c", *s - '6' + '0');
+                   break;
+
+                 case 'z':
+                   fputs ("icc", stream);
+                   break;
+
+                 case 'Z':
+                   fputs ("xcc", stream);
+                   break;
 #endif                         /* NO_V9 */
 
                  case 'M':