X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Fmips-dis.c;h=4efd91c6a6f2705dea3a44fdaaca054f75b16e9b;hb=c29d7797d215507ac0b737d9bc81fc8a2cc9524c;hp=afeb65db1e6d72e559f893c5561527c74e67b004;hpb=20af0110865ebbd8f98ab5feed2fb515094da6a5;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c index afeb65db1e..4efd91c6a6 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c @@ -27,8 +27,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* FIXME: These are needed to figure out if the code is mips16 or not. The low bit of the address is often a good indicator. No symbol table is available when this code runs out in an embedded - system as when it is used for disassembler support in a monitor. -*/ + system as when it is used for disassembler support in a monitor. */ + #if !defined(EMBEDDED_ENV) #define SYMTAB_AVAILABLE 1 #include "elf-bfd.h" @@ -376,16 +376,21 @@ print_insn_arg (d, l, pc, info) } } -/* Print the mips instruction at address MEMADDR in debugged memory, - on using INFO. Returns length of the instruction, in bytes, which is - always 4. BIGENDIAN must be 1 if this is big-endian code, 0 if - this is little-endian code. */ - #if SYMTAB_AVAILABLE -static set_mips_isa_type(int mach,int * isa, int *cputype ) +/* Figure out the MIPS ISA and CPU based on the machine number. + FIXME: What does this have to do with SYMTAB_AVAILABLE? */ + +static void +set_mips_isa_type (mach, isa, cputype) + int mach; + int *isa; + int *cputype; { - switch (info->mach) + int target_processor = 0; + int mips_isa = 0; + + switch (mach) { /* start-sanitize-tx19 */ case bfd_mach_mips1900: @@ -479,11 +484,17 @@ static set_mips_isa_type(int mach,int * isa, int *cputype ) break; } - *isa = mips_isa ; - *cputype = target_processor ; - + + *isa = mips_isa; + *cputype = target_processor; } -#endif /* symbol table available */ + +#endif /* SYMTAB_AVAILABLE */ + +/* Print the mips instruction at address MEMADDR in debugged memory, + on using INFO. Returns length of the instruction, in bytes, which is + always 4. BIGENDIAN must be 1 if this is big-endian code, 0 if + this is little-endian code. */ static int _print_insn_mips (memaddr, word, info) @@ -517,12 +528,14 @@ _print_insn_mips (memaddr, word, info) init = 1; } + #if ! SYMTAB_AVAILABLE - /* This is running out on a target machine, not in a host tool */ - target_processor = mips_target_info.processor ; - mips_isa = mips_target_info.isa ; + /* This is running out on a target machine, not in a host tool. + FIXME: Where does mips_target_info come from? */ + target_processor = mips_target_info.processor; + mips_isa = mips_target_info.isa; #else - set_mips_isa_type(info->mach,&target_processor,&mips_isa) ; + set_mips_isa_type (info->mach, &target_processor, &mips_isa); #endif info->bytes_per_chunk = 4; @@ -612,13 +625,11 @@ _print_insn_mips (memaddr, word, info) } -/* In an environment where we do not know the symbol type of the instruction - we are forces to assumd the low order bit of the instructions address - may mark it as a mips16 instruction. If we are sincle stepping or the - pc is within the disassembled function, this works. Otherwise, - we need a clue. Sometimes. - */ - +/* In an environment where we do not know the symbol type of the + instruction we are forced to assume that the low order bit of the + instructions' address may mark it as a mips16 instruction. If we + are single stepping, or the pc is within the disassembled function, + this works. Otherwise, we need a clue. Sometimes. */ int print_insn_big_mips (memaddr, info) @@ -629,9 +640,10 @@ print_insn_big_mips (memaddr, info) int status; #if 1 - /* FIXME: If odd address, this is CLEARLY a mips 16 instruction */ - /* Only a few tools will work this way */ - if (memaddr & 0x01) return print_insn_mips16 (memaddr, info); + /* FIXME: If odd address, this is CLEARLY a mips 16 instruction. */ + /* Only a few tools will work this way. */ + if (memaddr & 0x01) + return print_insn_mips16 (memaddr, info); #endif #if SYMTAB_AVAILABLE @@ -678,7 +690,8 @@ print_insn_little_mips (memaddr, info) /* end-sanitize-sky */ #if 1 - if (memaddr & 0x01) return print_insn_mips16 (memaddr, info); + if (memaddr & 0x01) + return print_insn_mips16 (memaddr, info); #endif #if SYMTAB_AVAILABLE