aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog15
-rw-r--r--opcodes/arm-dis.c4
-rw-r--r--opcodes/mips-dis.c23
3 files changed, 31 insertions, 11 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 5944127..c570bb7 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -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
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index d9d890e..32112c1 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -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
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index d1d80a5..673dbfe 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -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);