From 88b38f0c3c59ccfcf2dab95f780360f6e7714a4a Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Tue, 24 Feb 1998 20:57:58 +0000 Subject: * 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 --- opcodes/ChangeLog | 15 +++++++++++++++ opcodes/arm-dis.c | 4 ++-- opcodes/mips-dis.c | 23 ++++++++++++++--------- 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 + + * 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 * 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); -- cgit v1.1