static int print_insn_nios2 (bfd_vma address, disassemble_info *info, enum bfd_endian endianness) { bfd_byte buffer[INSNLEN]; int status; status = (*info->read_memory_func) (address, buffer, INSNLEN, info); if (status == 0) { unsigned long insn; if (endianness == BFD_ENDIAN_BIG) insn = (unsigned long) bfd_getb32 (buffer); else insn = (unsigned long) bfd_getl32 (buffer); return nios2_disassemble (address, insn, info); } /* We might have a 16-bit R2 instruction at the end of memory. Try that. */ if (info->mach == bfd_mach_nios2r2) { status = (*info->read_memory_func) (address, buffer, 2, info); if (status == 0) { unsigned long insn; if (endianness == BFD_ENDIAN_BIG) insn = (unsigned long) bfd_getb16 (buffer); else insn = (unsigned long) bfd_getl16 (buffer); return nios2_disassemble (address, insn, info); } } /* If we got here, we couldn't read anything. */ (*info->memory_error_func) (status, address, info); return -1; }
int print_insn_nios2(bfd_vma address, disassemble_info *info) { /* buffer into which the instruction bytes are written */ bfd_byte buffer[INSNLEN]; /* used to indicate return status from function calls */ int status; assert(info != NULL); status = (*info->read_memory_func) (address, buffer, INSNLEN, info); if (status == 0) { unsigned long insn; insn = (unsigned long) bfd_getl32(buffer); status = nios2_disassemble(address, insn, info); } else { (*info->memory_error_func) (status, address, info); status = -1; } return status; }
static int print_insn_nios2 (bfd_vma address, disassemble_info *info, enum bfd_endian endianness) { bfd_byte buffer[INSNLEN]; int status; status = (*info->read_memory_func) (address, buffer, INSNLEN, info); if (status == 0) { unsigned long insn; if (endianness == BFD_ENDIAN_BIG) insn = (unsigned long) bfd_getb32 (buffer); else insn = (unsigned long) bfd_getl32 (buffer); status = nios2_disassemble (address, insn, info); } else { (*info->memory_error_func) (status, address, info); status = -1; } return status; }