* dis-asm.h (disassemble_info): New members arch, mach, endian.

(INIT_DISASSEMBLE_INFO): Initialize them.
	(DISASM_RAW_INSN{,FLAG}): Define.
This commit is contained in:
David Edelsohn 1996-01-23 00:39:54 +00:00
parent 4207b304c9
commit 3e496fff5a
2 changed files with 36 additions and 33 deletions

View File

@ -1,3 +1,9 @@
Mon Jan 22 16:37:59 1996 Doug Evans <dje@charmed.cygnus.com>
* dis-asm.h (disassemble_info): New members arch, mach, endian.
(INIT_DISASSEMBLE_INFO): Initialize them.
(DISASM_RAW_INSN{,FLAG}): Define.
Thu Jan 18 11:32:38 1996 Ian Lance Taylor <ian@cygnus.com>
* demangle.h (cplus_demangle_opname): Change opname parameter to

View File

@ -40,10 +40,29 @@ typedef struct disassemble_info {
FILE *stream;
PTR application_data;
/* For use by the disassembler. */
int flags;
/* Target description. We could replace this with a pointer to the bfd,
but that would require one. There currently isn't any such requirement
so to avoid introducing one we record these explicitly. */
/* The bfd_arch value. */
enum bfd_architecture arch;
/* The bfd_mach value. */
unsigned long mach;
/* Endianness (for bi-endian cpus). Mono-endian cpus can ignore this. */
enum bfd_endian endian;
/* For use by the disassembler.
The top 16 bits are reserved for public use (and are documented here).
The bottom 16 bits are for the internal use of the disassembler. */
unsigned long flags;
PTR private_data;
/* Non-zero if an instruction is to be displayed in raw form (eg: hex)
(along with the symbolic form which is always printed).
??? Not all targets support this yet and not all have the same default
(which they should). */
#define DISASM_RAW_INSN_FLAG 0x10000
#define DISASM_RAW_INSN(INFO) ((INFO)->flags & DISASM_RAW_INSN_FLAG)
/* Function used to get bytes to disassemble. MEMADDR is the
address of the stuff to be disassembled, MYADDR is the address to
put the bytes in, and LENGTH is the number of bytes to read.
@ -104,10 +123,12 @@ extern int print_insn_h8300h PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_h8500 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_alpha PARAMS ((bfd_vma, disassemble_info*));
/* start-sanitize-arc */
extern int print_insn_arc PARAMS ((bfd_vma, disassemble_info*));
extern disassembler_ftype arc_get_disassembler PARAMS ((int, int));
/* end-sanitize-arc */
extern int print_insn_arm PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_big_arm PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_little_arm PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_sparc PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_sparc64 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_big_a29k PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_little_a29k PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_i960 PARAMS ((bfd_vma, disassemble_info*));
@ -138,7 +159,7 @@ extern int buffer_read_memory
extern void perror_memory PARAMS ((int, bfd_vma, struct disassemble_info *));
/* Just print the address is hex. This is included for completeness even
/* Just print the address in hex. This is included for completeness even
though both GDB and objdump provide their own (to print symbolic
addresses). */
extern void generic_print_address
@ -153,34 +174,10 @@ extern void generic_print_address
(INFO).read_memory_func = buffer_read_memory, \
(INFO).memory_error_func = perror_memory, \
(INFO).print_address_func = generic_print_address, \
(INFO).insn_info_valid = 0
/* This block of definitions is for calling the instruction decoders
from GDB. */
/* GDB--Like target_read_memory, but slightly different parameters. */
extern int
dis_asm_read_memory PARAMS ((bfd_vma memaddr, bfd_byte *myaddr, int len,
disassemble_info *info));
/* GDB--Like memory_error with slightly different parameters. */
extern void
dis_asm_memory_error
PARAMS ((int status, bfd_vma memaddr, disassemble_info *info));
/* GDB--Like print_address with slightly different parameters. */
extern void
dis_asm_print_address PARAMS ((bfd_vma addr, disassemble_info *info));
#define GDB_INIT_DISASSEMBLE_INFO(INFO, STREAM) \
(INFO).fprintf_func = (fprintf_ftype)fprintf_filtered, \
(INFO).stream = (STREAM), \
(INFO).read_memory_func = dis_asm_read_memory, \
(INFO).memory_error_func = dis_asm_memory_error, \
(INFO).print_address_func = dis_asm_print_address, \
(INFO).arch = bfd_arch_unknown, \
(INFO).mach = 0, \
(INFO).endian = BFD_ENDIAN_BIG, \
(INFO).flags = 0, \
(INFO).insn_info_valid = 0
#endif /* ! defined (DIS_ASM_H) */