X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Fopenrisc-dis.c;h=628a86c8304949bdfedd9be661a54406880ac97e;hb=c46f0c34a6170788e741fd454d5d50ed6e049155;hp=6bbb0cbe7f2a7526562e8f4b9f9c7b357bc0497e;hpb=0e2ee3ca05685dd15a9aa629d3a7dd1a686e6351;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/openrisc-dis.c b/opcodes/openrisc-dis.c index 6bbb0cbe7f..628a86c830 100644 --- a/opcodes/openrisc-dis.c +++ b/opcodes/openrisc-dis.c @@ -75,8 +75,7 @@ void openrisc_cgen_print_operand This function could be moved into `print_insn_normal', but keeping it separate makes clear the interface between `print_insn_normal' and each of - the handlers. -*/ + the handlers. */ void openrisc_cgen_print_operand (cd, opindex, xinfo, fields, attrs, pc, length) @@ -318,9 +317,13 @@ print_insn (cd, pc, info, buf, buflen) CGEN_INSN_INT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; + int basesize; /* Extract base part of instruction, just in case CGEN_DIS_* uses it. */ - insn_value = cgen_get_insn_value (cd, buf, buflen * 8); + basesize = cd->base_insn_bitsize < buflen * 8 ? + cd->base_insn_bitsize : buflen * 8; + insn_value = cgen_get_insn_value (cd, buf, basesize); + /* Fill in ex_info fields like read_insn would. Don't actually call read_insn, since the incoming buffer is already read (and possibly