x86: refine TPAUSE and UMWAIT
[deliverable/binutils-gdb.git] / opcodes / ia64-dis.c
index 44926c7a18438c461a535007be38ff416cc0d355..f2f0f3c98914686024c2bb7062339479bb76a14f 100644 (file)
@@ -1,5 +1,5 @@
 /* ia64-dis.c -- Disassemble ia64 instructions
-   Copyright 1998, 1999, 2000, 2002, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1998-2020 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of the GNU opcodes library.
    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
    02110-1301, USA.  */
 
+#include "sysdep.h"
 #include <assert.h>
-#include <string.h>
 
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/ia64.h"
 
 #define NELEMS(a)      ((int) (sizeof (a) / sizeof (a[0])))
@@ -68,7 +68,7 @@ unit_to_type (ia64_insn opcode, enum ia64_unit unit)
 int
 print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
 {
-  ia64_insn t0, t1, slot[3], template, s_bit, insn;
+  ia64_insn t0, t1, slot[3], template_val, s_bit, insn;
   int slotnum, j, status, need_comma, retval, slot_multiplier;
   const struct ia64_operand *odesc;
   const struct ia64_opcode *idesc;
@@ -100,20 +100,20 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
   t0 = bfd_getl64 (bundle);
   t1 = bfd_getl64 (bundle + 8);
   s_bit = t0 & 1;
-  template = (t0 >> 1) & 0xf;
+  template_val = (t0 >> 1) & 0xf;
   slot[0] = (t0 >>  5) & 0x1ffffffffffLL;
   slot[1] = ((t0 >> 46) & 0x3ffff) | ((t1 & 0x7fffff) << 18);
   slot[2] = (t1 >> 23) & 0x1ffffffffffLL;
 
-  tname = ia64_templ_desc[template].name;
+  tname = ia64_templ_desc[template_val].name;
   if (slotnum == 0)
     (*info->fprintf_func) (info->stream, "[%s] ", tname);
   else
     (*info->fprintf_func) (info->stream, "      ");
 
-  unit = ia64_templ_desc[template].exec_unit[slotnum];
+  unit = ia64_templ_desc[template_val].exec_unit[slotnum];
 
-  if (template == 2 && slotnum == 1)
+  if (template_val == 2 && slotnum == 1)
     {
       /* skip L slot in MLI template: */
       slotnum = 2;
@@ -182,7 +182,7 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
            }
        }
 
-       switch (odesc->class)
+       switch (odesc->op_class)
          {
          case IA64_OPND_CLASS_CST:
            (*info->fprintf_func) (info->stream, "%s", odesc->str);
@@ -240,6 +240,8 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
                  case 23:      strcpy (regname, "cr.ifs"); break;
                  case 24:      strcpy (regname, "cr.iim"); break;
                  case 25:      strcpy (regname, "cr.iha"); break;
+                 case 26:      strcpy (regname, "cr.iib0"); break;
+                 case 27:      strcpy (regname, "cr.iib1"); break;
                  case 64:      strcpy (regname, "cr.lid"); break;
                  case 65:      strcpy (regname, "cr.ivr"); break;
                  case 66:      strcpy (regname, "cr.tpr"); break;
@@ -301,7 +303,7 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
          need_comma = 0;
        }
     }
-  if (slotnum + 1 == ia64_templ_desc[template].group_boundary 
+  if (slotnum + 1 == ia64_templ_desc[template_val].group_boundary
       || ((slotnum == 2) && s_bit))
     (*info->fprintf_func) (info->stream, ";;");
 
This page took 0.024862 seconds and 4 git commands to generate.