* arm-dis.c (print_insn_{big,little}_arm): info->symbol changed
authorDoug Evans <dje@google.com>
Tue, 24 Feb 1998 20:57:58 +0000 (20:57 +0000)
committerDoug Evans <dje@google.com>
Tue, 24 Feb 1998 20:57:58 +0000 (20:57 +0000)
to *info->symbols.
* mips-dis.c (print_insn_{big,little}_mips): Likewise.
* tic30-dis.c (print_branch): Likewise.
start-sanitize-sky
* mips-dis.c (print_insn_little_mips): Call dvp_info_mach_type.
* dvp-dis.c (dvp_info_mach_type): New function.
(print_insn_dvp): Call it.
(print_vif): Return length of 4 if mpg or direct insn so following
insns get properly disabled.
* dvp-opc.c (vif_insn_len): New argument `pcpu'.  All callers updated.
end-sanitize-sky

opcodes/ChangeLog
opcodes/arm-dis.c
opcodes/mips-dis.c

index 5944127..c570bb7 100644 (file)
@@ -1,3 +1,18 @@
+Tue Feb 24 10:46:44 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+       * arm-dis.c (print_insn_{big,little}_arm): info->symbol changed
+       to *info->symbols.
+       * mips-dis.c (print_insn_{big,little}_mips): Likewise.
+       * tic30-dis.c (print_branch): Likewise.
+start-sanitize-sky
+       * mips-dis.c (print_insn_little_mips): Call dvp_info_mach_type.
+       * dvp-dis.c (dvp_info_mach_type): New function.
+       (print_insn_dvp): Call it.
+       (print_vif): Return length of 4 if mpg or direct insn so following
+       insns get properly disabled.
+       * dvp-opc.c (vif_insn_len): New argument `pcpu'.  All callers updated.
+end-sanitize-sky
+
 Tue Feb 24 11:06:18 1998  Nick Clifton  <nickc@cygnus.com>
 
        * arm-dis.c (print_insn_big_arm, print_insn_little_arm): Remove
index d9d890e..32112c1 100644 (file)
@@ -712,7 +712,7 @@ print_insn_big_arm (pc, info)
   coff_symbol_type * cs;
   int                is_thumb;
   
-  cs = coffsymbol (info->symbol);
+  cs = coffsymbol (*info->symbols);
   is_thumb = (cs != NULL) &&
      (   cs->native->u.syment.n_sclass == C_THUMBEXT
       || cs->native->u.syment.n_sclass == C_THUMBSTAT
@@ -780,7 +780,7 @@ print_insn_little_arm (pc, info)
   coff_symbol_type * cs;
   int                is_thumb;
   
-  cs = coffsymbol (info->symbol);
+  cs = coffsymbol (*info->symbols);
   is_thumb = (cs != NULL) && 
      (   cs->native->u.syment.n_sclass == C_THUMBEXT
       || cs->native->u.syment.n_sclass == C_THUMBSTAT
index d1d80a5..673dbfe 100644 (file)
@@ -443,8 +443,8 @@ print_insn_big_mips (memaddr, info)
 
   if (info->mach == 16
       || (info->flavour == bfd_target_elf_flavour
-         && info->symbol != NULL
-         && (((elf_symbol_type *) info->symbol)->internal_elf_sym.st_other
+         && info->symbols != NULL
+         && ((*(elf_symbol_type **) info->symbols)->internal_elf_sym.st_other
              == STO_MIPS16)))
     return print_insn_mips16 (memaddr, info);
 
@@ -469,18 +469,23 @@ print_insn_little_mips (memaddr, info)
 
   /* start-sanitize-sky */
 #ifdef ARCH_dvp
-  if (bfd_mach_dvp_p (info->mach)
-      || (info->flavour == bfd_target_elf_flavour
-         && info->symbol != NULL
-         && STO_DVP_P (((elf_symbol_type *) info->symbol)->internal_elf_sym.st_other)))
-    return print_insn_dvp (memaddr, info);
+  {
+    /* bfd_mach_dvp_p is a macro which may evaluate its arguments more than
+       once.  Since dvp_mach_type is a function, ensure it's only called
+       once.  */
+    int mach = dvp_info_mach_type (info);
+
+    if (bfd_mach_dvp_p (info->mach)
+       || bfd_mach_dvp_p (mach))
+      return print_insn_dvp (memaddr, info);
+  }
 #endif
   /* end-sanitize-sky */
 
   if (info->mach == 16
       || (info->flavour == bfd_target_elf_flavour
-         && info->symbol != NULL
-         && (((elf_symbol_type *) info->symbol)->internal_elf_sym.st_other
+         && info->symbols != NULL
+         && ((*(elf_symbol_type **) info->symbols)->internal_elf_sym.st_other
              == STO_MIPS16)))
     return print_insn_mips16 (memaddr, info);