From 440cc0bc1a3338bfbd5e098cb65483bc50c0bd57 Mon Sep 17 00:00:00 2001 From: Chris Demetriou Date: Thu, 2 Jan 2003 22:04:55 +0000 Subject: [PATCH] 2003-01-02 Chris Demetriou * mips-dis.c (print_insn_args): Use position extracted by "+A" to calculate size for "+B". Redo code for "+C" so it shares the same style as "+A" and "+B" now do. --- opcodes/ChangeLog | 6 ++++++ opcodes/mips-dis.c | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 342eb91e43..18a16d36fc 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2003-01-02 Chris Demetriou + + * mips-dis.c (print_insn_args): Use position extracted by "+A" + to calculate size for "+B". Redo code for "+C" so it shares + the same style as "+A" and "+B" now do. + 2003-01-02 Chris Demetriou * mips-dis.c: Update copyright years. diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c index cbf87ce8cc..176ffeb469 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c @@ -672,6 +672,9 @@ print_insn_args (d, l, pc, info) struct disassemble_info *info; { int op, delta; + unsigned int lsb, msb, msbd; + + lsb = 0; for (; *d != '\0'; d++) { @@ -697,21 +700,18 @@ print_insn_args (d, l, pc, info) return; case 'A': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_SHAMT) & OP_MASK_SHAMT); + lsb = (l >> OP_SH_SHAMT) & OP_MASK_SHAMT; + (*info->fprintf_func) (info->stream, "0x%x", lsb); break; case 'B': - (*info->fprintf_func) (info->stream, "0x%x", - (((l >> OP_SH_INSMSB) & OP_MASK_INSMSB) - - ((l >> OP_SH_SHAMT) & OP_MASK_SHAMT) - + 1)); + msb = (l >> OP_SH_INSMSB) & OP_MASK_INSMSB; + (*info->fprintf_func) (info->stream, "0x%x", msb - lsb + 1); break; case 'C': - (*info->fprintf_func) (info->stream, "0x%x", - (((l >> OP_SH_EXTMSBD) & OP_MASK_EXTMSBD) - + 1)); + msbd = (l >> OP_SH_EXTMSBD) & OP_MASK_EXTMSBD; + (*info->fprintf_func) (info->stream, "0x%x", msbd + 1); break; case 'D': -- 2.34.1