* d30v.h: Fix declaration of reg_name_cnt.
* d10v.h: Fix declaration of d10v_reg_name_cnt.
* arc.h: Add prototypes from opcodes/arc-opc.c.
For opcodes:
* tic54x-dis.c: Add unused attributes where needed.
* z8k-dis.c (output_instr): Add unused attribute.
* h8300-dis.c: Add missing prototypes.
(bfd_h8_disassemble): Make static.
* cris-dis.c: Add missing prototype.
* h8500-dis.c: Likewise.
* m68hc11-dis.c: Likewise.
* pj-dis.c: Likewise.
* tic54x-dis.c: Likewise.
* v850-dis.c: Likewise.
* vax-dis.c: Likewise.
* w65-dis.c: Likewise.
* z8k-dis.c: Likewise.
* d10v-dis.c: Add missing prototype.
(dis_long): Remove unused variable.
(dis_2_short): Likewise.
* sh-dis.c: Add missing prototypes.
* v850-opc.c: Likewise.
Add unused attributes where needed.
* ns32k-dis.c: Add missing prototypes.
(bit_extract_simple): Remove unused variable.
+2001-08-25 Andreas Jaeger <aj@suse.de>
+
+ * d30v.h: Fix declaration of reg_name_cnt.
+
+ * d10v.h: Fix declaration of d10v_reg_name_cnt.
+
+ * arc.h: Add prototypes from opcodes/arc-opc.c.
+
2001-08-16 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* mips.h (INSN_10000): Define.
2001-05-23 John Healy <jhealy@redhat.com>
* cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48.
-
+
2001-05-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* mips.h (INSN_ISA_MASK): Define.
* i386.h (i386_optab): Replace "Imm" with "EncImm".
(i386_regtab): Add flags field.
-
+
2000-12-12 Nick Clifton <nickc@redhat.com>
* mips.h: Fix formatting.
(ISA_UNKNOWN): New constant to indicate unknown ISA.
(ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5,
ISA_MIPS32): New constants, defined to be the mask of INSN_*
- constants available at that ISA level.
+ constants available at that ISA level.
(CPU_UNKNOWN): New constant to indicate unknown CPU.
(CPU_4K, CPU_MIPS32_4K): Rename the former to the latter,
define it with a unique value.
constant meanings.
* mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New
- definitions.
+ definitions.
* mips.h (CPU_SB1): New constant.
* ia64.h (enum ia64_dependency_semantics): Add IA64_DVS_STOP.
2000-09-13 Anders Norlander <anorland@acc.umu.se>
-
+
* mips.h: Use defines instead of hard-coded processor numbers.
(CPU_R2000, CPU_R3000, CPU_R3900, CPU_R4000, CPU_R4010,
- CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650,
+ CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650,
CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K,
CPU_4KC, CPU_4KM, CPU_4KP): Define..
(OPCODE_IS_MEMBER): Use new defines.
- (OP_MASK_SEL, OP_SH_SEL): Define.
+ (OP_MASK_SEL, OP_SH_SEL): Define.
(OP_MASK_CODE20, OP_SH_CODE20): Define.
- Add 'P' to used characters.
- Use 'H' for coprocessor select field.
+ Add 'P' to used characters.
+ Use 'H' for coprocessor select field.
Use 'm' for 20 bit breakpoint code.
- Document new arg characters and add to used characters.
- (INSN_MIPS32): New define for MIPS32 extensions.
- (OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
+ Document new arg characters and add to used characters.
+ (INSN_MIPS32): New define for MIPS32 extensions.
+ (OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
2000-09-05 Alan Modra <alan@linuxcare.com.au>
* cgen.h (CGEN_INSN_MACH_HAS_P): New macro.
(CGEN_CPU_TABLE): flags: new field.
Add prototypes for new functions.
-
+
2000-02-24 Alan Modra <alan@spri.levels.unisa.edu.au>
* i386.h: Add some more UNIXWARE_COMPAT comments.
Sat Sep 18 11:41:16 1999 Jeffrey A Law (law@cygnus.com)
* hppa.h (pa_opcodes): Use 'fX' for first register operand
- in xmpyu.
+ in xmpyu.
* hppa.h (pa_opcodes): Fix mask for probe and probei.
* hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT.
- * hppa.h (pa_opcodes): Change xmpyu, fmpyfadd,
+ * hppa.h (pa_opcodes): Change xmpyu, fmpyfadd,
and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'.
1999-07-13 Alan Modra <alan@spri.levels.unisa.edu.au>
Fri May 28 15:26:11 1999 Jeffrey A Law (law@cygnus.com)
* hppa.h (pa_opcodes): Move integer arithmetic instructions after
- integer logical instructions.
+ integer logical instructions.
1999-05-28 Linus Nordberg <linus.nordberg@canit.se>
Wed May 26 16:57:44 1999 Jeffrey A Law (law@cygnus.com)
- * hppa.h (pa_opcodes): Add second entry for "comb", "comib",
+ * hppa.h (pa_opcodes): Add second entry for "comb", "comib",
"addb", and "addib" to be used by the disassembler.
1999-05-12 Alan Modra <alan@apri.levels.unisa.edu.au>
(CGEN_INSN_ATTR): New type.
Mon Feb 1 21:09:14 1999 Catherine Moore <clm@cygnus.com>
-
+
* i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf): Define.
(x_FP, d_FP, dls_FP, sldx_FP): Define.
Change *Suf definitions to include x and d suffixes.
Wed Dec 9 10:38:48 1998 David Taylor <taylor@texas.cygnus.com>
The following is part of a change made by Edith Epstein
- <eepstein@sophia.cygnus.com> as part of a project to merge in
- changes by HP; HP did not create ChangeLog entries.
+ <eepstein@sophia.cygnus.com> as part of a project to merge in
+ changes by HP; HP did not create ChangeLog entries.
* hppa.h (completer_chars): list of chars to not put a space
- after.
+ after.
Sun Dec 6 13:21:34 1998 Ian Lance Taylor <ian@cygnus.com>
* i386.h (i386_optab): Permit w suffix on processor control and
- status word instructions.
+ status word instructions.
1998-11-30 Doug Evans <devans@casey.cygnus.com>
Mon Oct 5 00:21:07 1998 Jeffrey A Law (law@cygnus.com)
* hppa.h: Add "fid".
-
+
Sun Oct 4 21:00:00 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
From Robert Andrew Dale <rob@nb.net>
* mn10300.h: Add "machine" field for instructions.
(MN103, AM30): Define machine types.
-
+
Fri Jun 19 16:09:09 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* i386.h: Use FP, not sl_Suf, for fxsave and fxrstor.
Fri Nov 1 10:31:02 1996 Richard Henderson <rth@tamu.edu>
* alpha.h: Don't include "bfd.h"; private relocation types are now
- negative to minimize problems with shared libraries. Organize
- instruction subsets by AMASK extensions and PALcode
- implementation.
+ negative to minimize problems with shared libraries. Organize
+ instruction subsets by AMASK extensions and PALcode
+ implementation.
(struct alpha_operand): Move flags slot for better packing.
Tue Oct 29 12:19:10 1996 Jeffrey A Law (law@cygnus.com)
Thu Aug 22 16:51:25 1996 J.T. Conklin <jtc@rtl.cygnus.com>
* v850.h (v850_operands): Add insert and extract fields, pointers
- to functions used to handle unusual operand encoding.
+ to functions used to handle unusual operand encoding.
(V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC,
- V850_OPERAND_SIGNED): Defined.
+ V850_OPERAND_SIGNED): Defined.
Wed Aug 21 17:45:10 1996 J.T. Conklin <jtc@rtl.cygnus.com>
Fri Aug 16 14:44:15 1996 James G. Smith <jsmith@cygnus.co.uk>
* mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM,
- OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
- OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
- OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
- OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
- Defined.
+ OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
+ OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
+ OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
+ OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
+ Defined.
Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com)
Thu Aug 15 13:11:46 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v.h: Add some additional defines to support the
- assembler in determining which operations can be done in parallel.
+ assembler in determining which operations can be done in parallel.
Tue Aug 6 11:13:22 1996 Jeffrey A Law (law@cygnus.com)
Thu Jul 25 12:06:22 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v.h: Changes for divs, parallel-only instructions, and
- signed numbers.
+ signed numbers.
Mon Jul 22 11:21:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
Wed Jul 3 14:30:12 1996 J.T. Conklin <jtc@rtl.cygnus.com>
- * m68k.h (mcf5200): New macro.
+ * m68k.h (mcf5200): New macro.
Document names of coldfire control registers.
Tue Jul 2 23:05:45 1996 Jeffrey A Law (law@cygnus.com)
Mon Oct 23 11:09:16 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk>
* mips.h: Added INSN_4100 flag to mark NEC VR4100 specific
- instructions.
+ instructions.
Mon Oct 16 10:28:15 1995 Michael Meissner <meissner@tiktok.cygnus.com>
PARAMS ((const struct arc_operand *type, int value));
int arc_opcode_supported PARAMS ((const struct arc_opcode *));
int arc_opval_supported PARAMS ((const struct arc_operand_value *));
+int arc_limm_fixup_adjust PARAMS ((arc_insn));
+int arc_insn_is_j PARAMS ((arc_insn));
+int arc_insn_not_jl PARAMS ((arc_insn));
+int arc_operand_type PARAMS ((int));
+struct arc_operand_value *get_ext_suffix PARAMS ((char *));
+int arc_get_noshortcut_flag PARAMS ((void));
};
extern const struct pd_reg d10v_predefined_registers[];
-int d10v_reg_name_cnt();
+int d10v_reg_name_cnt PARAMS ((void));
/* an expressionS only has one register type, so we fake it */
/* by setting high bits to indicate type */
};
extern const struct pd_reg pre_defined_registers[];
-int reg_name_cnt();
+int reg_name_cnt PARAMS ((void));
/* the number of control registers */
#define MAX_CONTROL_REG 64
+2001-08-25 Andreas Jaeger <aj@suse.de>
+
+ * tic54x-dis.c: Add unused attributes where needed.
+
+ * z8k-dis.c (output_instr): Add unused attribute.
+
+ * h8300-dis.c: Add missing prototypes.
+ (bfd_h8_disassemble): Make static.
+
+ * cris-dis.c: Add missing prototype.
+ * h8500-dis.c: Likewise.
+ * m68hc11-dis.c: Likewise.
+ * pj-dis.c: Likewise.
+ * tic54x-dis.c: Likewise.
+ * v850-dis.c: Likewise.
+ * vax-dis.c: Likewise.
+ * w65-dis.c: Likewise.
+ * z8k-dis.c: Likewise.
+
+ * d10v-dis.c: Add missing prototype.
+ (dis_long): Remove unused variable.
+ (dis_2_short): Likewise.
+
+ * sh-dis.c: Add missing prototypes.
+ * v850-opc.c: Likewise.
+ Add unused attributes where needed.
+
+ * ns32k-dis.c: Add missing prototypes.
+ (bit_extract_simple): Remove unused variable.
+
2001-08-23 Martin Schwidefsky <schwidefsky@de.ibm.com>
* opcodes/s390-opc.c: Add "low or high" and "not low or high"
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your option)
+Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
PARAMS ((bfd_vma, disassemble_info *));
static int print_insn_cris_without_register_prefix
PARAMS ((bfd_vma, disassemble_info *));
+static const struct cris_opcode *get_opcode_entry
+ PARAMS ((unsigned int, unsigned int));
/* Return the descriptor of a special register.
FIXME: Depend on a CPU-version specific argument when all machinery
struct disassemble_info *info, int order));
static void dis_long PARAMS ((unsigned long insn, bfd_vma memaddr,
struct disassemble_info *info));
+static void print_operand
+ PARAMS ((struct d10v_operand *, long unsigned int, struct d10v_opcode *,
+ bfd_vma, struct disassemble_info *));
int
print_insn_d10v (memaddr, info)
struct disassemble_info *info;
{
int i;
- char buf[32];
struct d10v_opcode *op = (struct d10v_opcode *) d10v_opcodes;
struct d10v_operand *oper;
int need_paren = 0;
int order;
{
int i, j;
- char astr[2][32];
unsigned int ins[2];
struct d10v_opcode *op;
- char buf[32];
int match, num_match = 0;
struct d10v_operand *oper;
int need_paren = 0;
/* Disassemble h8300 instructions.
- Copyright 1993, 1994, 1996, 1998, 2000 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "dis-asm.h"
#include "opintl.h"
+static void bfd_h8_disassemble_init PARAMS ((void));
+static unsigned int bfd_h8_disassemble
+ PARAMS ((bfd_vma, disassemble_info *, int));
+
/* Run through the opcodes and sort them into order to make them easy
to disassemble. */
static void
}
}
-unsigned int
+static unsigned int
bfd_h8_disassemble (addr, info, mode)
bfd_vma addr;
disassemble_info *info;
/* Disassemble h8500 instructions.
- Copyright 1993, 1998, 2000 Free Software Foundation, Inc.
+ Copyright 1993, 1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <setjmp.h>
+static int fetch_data PARAMS ((struct disassemble_info *, bfd_byte *));
+
struct private
{
/* Points to first byte not fetched. */
/* Print National Semiconductor 32000 instructions.
- Copyright 1986, 1988, 1991, 1992, 1994, 1998
+ Copyright 1986, 1988, 1991, 1992, 1994, 1998, 2001
Free Software Foundation, Inc.
This file is part of opcodes library.
PARAMS ((int, int, int *, char *, bfd_vma, char *, int));
static int get_displacement PARAMS ((char *, int *));
static int invalid_float PARAMS ((char *, int));
+static long int read_memory_integer PARAMS ((unsigned char *, int));
+static int fetch_data PARAMS ((struct disassemble_info *, bfd_byte *));
+struct ns32k_option;
+static void optlist PARAMS ((int, const struct ns32k_option *, char *));
+static void list_search PARAMS ((int, const struct ns32k_option *, char *));
+static int bit_extract PARAMS ((bfd_byte *, int, int));
+static int bit_extract_simple PARAMS ((bfd_byte *, int, int));
+static void bit_copy PARAMS ((char *, int, int, char *));
+static int sign_extend PARAMS ((int, int));
+static void flip_bytes PARAMS ((char *, int));
static long read_memory_integer(addr, nr)
unsigned char *addr;
int count;
{
int result;
- int mask;
int bit;
buffer += offset >> 3;
extern const pj_opc_info_t pj_opc_info[512];
+static int get_int PARAMS ((bfd_vma, int *, struct disassemble_info *));
+
+
static int
get_int (memaddr, iptr, info)
bfd_vma memaddr;
/* Disassemble SH instructions.
- Copyright 1993, 1994, 1995, 1997, 1998, 2000
+ Copyright 1993, 1994, 1995, 1997, 1998, 2000, 2001
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
#define LITTLE_BIT 2
+static void print_movxy
+ PARAMS ((sh_opcode_info *, int, int, fprintf_ftype, void *));
+static void print_insn_ddt PARAMS ((int, struct disassemble_info *));
+static void print_dsp_reg PARAMS ((int, fprintf_ftype, void *));
+static void print_insn_ppi PARAMS ((int, struct disassemble_info *));
+static int print_insn_shx PARAMS ((bfd_vma, struct disassemble_info *));
+
static void
print_movxy (op, rn, rm, fprintf_fn, stream)
sh_opcode_info *op;
/* Disassembly routines for TMS320C54X architecture
- Copyright 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Timothy Wall (twall@cygnus.com)
This program is free software; you can redistribute it and/or modify
partemplate *ptm;
} instruction;
+static int has_lkaddr PARAMS ((unsigned short, template *));
static int get_insn_size PARAMS ((unsigned short, instruction *));
-static int get_instruction PARAMS ((disassemble_info *, bfd_vma,
+static int get_instruction PARAMS ((disassemble_info *, bfd_vma,
unsigned short, instruction *));
-static int print_instruction PARAMS ((disassemble_info *, bfd_vma,
- unsigned short, char *,
+static int print_instruction PARAMS ((disassemble_info *, bfd_vma,
+ unsigned short, char *,
enum optype [], int, int));
static int print_parallel_instruction PARAMS ((disassemble_info *, bfd_vma,
unsigned short, partemplate *,
- int));
-static int sprint_dual_address (disassemble_info *,char [],
+ int));
+static int sprint_dual_address (disassemble_info *,char [],
unsigned short);
-static int sprint_indirect_address (disassemble_info *,char [],
+static int sprint_indirect_address (disassemble_info *,char [],
unsigned short);
-static int sprint_direct_address (disassemble_info *,char [],
+static int sprint_direct_address (disassemble_info *,char [],
unsigned short);
static int sprint_mmr (disassemble_info *,char [],int);
static int sprint_condition (disassemble_info *,char *,unsigned short);
bfd_vma memaddr;
disassemble_info *info;
{
- bfd_byte opbuf[2];
+ bfd_byte opbuf[2];
unsigned short opcode;
int status, size;
instruction insn;
}
else
{
- if (!print_instruction (info, memaddr, opcode,
- (char *) insn.tm->name,
+ if (!print_instruction (info, memaddr, opcode,
+ (char *) insn.tm->name,
insn.tm->operand_types,
size, (insn.tm->flags & FL_EXT)))
return -1;
/* always returns 1 (whether an insn template was found) since we provide an
"unknown instruction" template */
-static int
+static int
get_instruction (info, addr, opcode, insn)
disassemble_info *info;
bfd_vma addr;
return 1;
}
-static int
+static int
get_insn_size (opcode, insn)
unsigned short opcode;
instruction *insn;
if (mod == 15)
info->fprintf_func (info->stream, "*(");
else
- info->fprintf_func (info->stream, "*%sar%d(",
+ info->fprintf_func (info->stream, "*%sar%d(",
(mod == 13 || mod == 14 ? "+" : ""),
arf);
(*(info->print_address_func)) ((bfd_vma) addr, info);
- info->fprintf_func (info->stream, ")%s",
+ info->fprintf_func (info->stream, ")%s",
mod == 14 ? "%" : "");
}
else
break;
}
case OP_k5:
- sprintf (operand[i], "#%d",
+ sprintf (operand[i], "#%d",
(int) (((signed char) opcode & 0x1F) << 3) >> 3);
info->fprintf_func (info->stream, "%s%s", comma, operand[i]);
break;
case OP_SBIT:
{
const char *status0[] = {
- "0", "1", "2", "3", "4", "5", "6", "7", "8",
+ "0", "1", "2", "3", "4", "5", "6", "7", "8",
"ovb", "ova", "c", "tc", "13", "14", "15"
};
const char *status1[] = {
- "0", "1", "2", "3", "4",
+ "0", "1", "2", "3", "4",
"cmpt", "frct", "c16", "sxm", "ovm", "10",
"intm", "hm", "xf", "cpl", "braf"
};
- sprintf (operand[i], "%s",
+ sprintf (operand[i], "%s",
n ? status1[SBIT (opcode)] : status0[SBIT (opcode)]);
info->fprintf_func (info->stream, "%s%s", comma, operand[i]);
break;
partemplate *ptm;
int size;
{
- print_instruction (info, memaddr, opcode,
+ print_instruction (info, memaddr, opcode,
ptm->name, ptm->operand_types, size, 0);
info->fprintf_func (info->stream, " || ");
- return print_instruction (info, memaddr, opcode,
+ return print_instruction (info, memaddr, opcode,
ptm->parname, ptm->paroperand_types, size, 0);
}
static int
sprint_dual_address (info, buf, code)
- disassemble_info *info;
+ disassemble_info *info ATTRIBUTE_UNUSED;
char buf[];
unsigned short code;
{
static int
sprint_indirect_address (info, buf, opcode)
- disassemble_info *info;
+ disassemble_info *info ATTRIBUTE_UNUSED;
char buf[];
unsigned short opcode;
{
static int
sprint_direct_address (info, buf, opcode)
- disassemble_info *info;
+ disassemble_info *info ATTRIBUTE_UNUSED;
char buf[];
unsigned short opcode;
{
static int
sprint_mmr (info, buf, mmr)
- disassemble_info *info;
+ disassemble_info *info ATTRIBUTE_UNUSED;
char buf[];
int mmr;
{
static int
sprint_cc2 (info, buf, opcode)
- disassemble_info *info;
+ disassemble_info *info ATTRIBUTE_UNUSED;
char *buf;
unsigned short opcode;
{
static int
sprint_condition (info, buf, opcode)
- disassemble_info *info;
+ disassemble_info *info ATTRIBUTE_UNUSED;
char *buf;
unsigned short opcode;
{
else if (opcode & 0x3F)
{
if (opcode & 0x30)
- buf += sprintf (buf, "%s%s",
+ buf += sprintf (buf, "%s%s",
((opcode & 0x30) == 0x30) ? "tc" : "ntc",
(opcode & 0x0F) ? ", " : "");
if (opcode & 0x0C)
- buf += sprintf (buf, "%s%s",
+ buf += sprintf (buf, "%s%s",
((opcode & 0x0C) == 0x0C) ? "c" : "nc",
(opcode & 0x03) ? ", " : "");
if (opcode & 0x03)
- buf += sprintf (buf, "%s",
+ buf += sprintf (buf, "%s",
((opcode & 0x03) == 0x03) ? "bio" : "nbio");
}
else
/* Disassemble V850 instructions.
- Copyright 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
{ "v", "c/l", "z", "nh", "s/n", "t", "lt", "le",
"nv", "nc/nl", "nz", "h", "ns/p", "sa", "ge", "gt" };
+static int disassemble
+ PARAMS ((bfd_vma, struct disassemble_info *, unsigned long));
+
static int
disassemble (memaddr, info, insn)
bfd_vma memaddr;
/* Assemble V850 instructions.
- Copyright 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* two-word opcodes */
#define two(x,y) ((unsigned int) (x) | ((unsigned int) (y) << 16))
+static long unsigned int insert_d9
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d9
+ PARAMS ((long unsigned int, int *));
+static long unsigned int insert_d22
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d22
+ PARAMS ((long unsigned int, int *));
+static long unsigned int insert_d16_15
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d16_15
+ PARAMS ((long unsigned int, int *));
+static long unsigned int insert_d8_7
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d8_7 PARAMS ((long unsigned int, int *));
+static long unsigned int insert_d8_6
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d8_6 PARAMS ((long unsigned int, int *));
+static long unsigned int insert_d5_4
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d5_4 PARAMS ((long unsigned int, int *));
+static long unsigned int insert_d16_16
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_d16_16 PARAMS ((long unsigned int, int *));
+static long unsigned int insert_i9
+ PARAMS ((long unsigned int, long int, const char **));
+static long unsigned int extract_i9 PARAMS ((long unsigned int, int *));
+static long unsigned int insert_u9
+ PARAMS ((long unsigned int, long unsigned int, const char **));
+static long unsigned int extract_u9 PARAMS ((long unsigned int, int *));
+static long unsigned int insert_spe
+ PARAMS ((long unsigned int, long unsigned int, const char **));
+static long unsigned int extract_spe PARAMS ((long unsigned int, int *));
+static long unsigned int insert_i5div
+ PARAMS ((long unsigned int, long unsigned int, const char **));
+static long unsigned int extract_i5div PARAMS ((long unsigned int, int *));
\f
/* The functions used to insert and extract complicated operands. */
static unsigned long
extract_d9 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
unsigned long ret = ((insn & 0xf800) >> 7) | ((insn & 0x0070) >> 3);
static unsigned long
extract_d22 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
signed long ret = ((insn & 0xfffe0000) >> 16) | ((insn & 0x3f) << 16);
static unsigned long
extract_d16_15 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
signed long ret = (insn & 0xfffe0000);
static unsigned long
extract_d8_7 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
unsigned long ret = (insn & 0x7f);
static unsigned long
extract_d8_6 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
unsigned long ret = (insn & 0x7e);
static unsigned long
extract_d5_4 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
unsigned long ret = (insn & 0x0f);
static unsigned long
extract_d16_16 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
signed long ret = insn & 0xfffe0000;
static unsigned long
extract_i9 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
signed long ret = insn & 0x003c0000;
static unsigned long
extract_u9 (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
unsigned long ret = insn & 0x003c0000;
static unsigned long
extract_spe (insn, invalid)
- unsigned long insn;
- int * invalid;
+ unsigned long insn ATTRIBUTE_UNUSED;
+ int * invalid ATTRIBUTE_UNUSED;
{
return 3;
}
static unsigned long
extract_i5div (insn, invalid)
unsigned long insn;
- int * invalid;
+ int * invalid ATTRIBUTE_UNUSED;
{
unsigned long ret = insn & 0x3c0000;
#include "dis-asm.h"
/* Local function prototypes */
-static int
-print_insn_arg PARAMS ((const char *, unsigned char *, bfd_vma,
- disassemble_info *));
+static int fetch_data PARAMS ((struct disassemble_info *, bfd_byte *));
+static int print_insn_arg
+ PARAMS ((const char *, unsigned char *, bfd_vma, disassemble_info *));
+static int print_insn_mode
+ PARAMS ((int, unsigned char *, bfd_vma, disassemble_info *));
-static int
-print_insn_mode PARAMS ((int, unsigned char *, bfd_vma, disassemble_info *));
static char *reg_names[] =
{
/* Disassemble WDC 65816 instructions.
- Copyright 1995, 1998, 2000 Free Software Foundation, Inc.
+ Copyright 1995, 1998, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
static fprintf_ftype fpr;
static void *stream;
static struct disassemble_info *local_info;
+
+static void print_operand PARAMS ((int, char *, unsigned int *));
+
#if 0
static char *lname[] = { "r0","r1","r2","r3","r4","r5","r6","r7","s0" };
unsigned long interrupts;
} instr_data_s;
+static int fetch_data PARAMS ((struct disassemble_info *, int));
+
+
/* Make sure that bytes from INFO->PRIVATE_DATA->BUFFER (inclusive)
to ADDR (exclusive) are valid. Returns 1 for success, longjmps
on error. */
};
static int seg_length;
+static int print_insn_z8k PARAMS ((bfd_vma, disassemble_info *, int));
int z8k_lookup_instr PARAMS ((unsigned char *, disassemble_info *));
static void output_instr
PARAMS ((instr_data_s *, unsigned long, disassemble_info *));
static void
output_instr (instr_data, addr, info)
instr_data_s *instr_data;
- unsigned long addr;
+ unsigned long addr ATTRIBUTE_UNUSED;
disassemble_info *info;
{
int loop, loop_limit;