From 838c65f04017f87c5e84fbd2d630dbc07f188075 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sun, 19 Sep 1999 18:50:17 +0000 Subject: [PATCH] * hppa-dis.c (print_insn_hppa): Handle 'm', 'h', '='. --- opcodes/ChangeLog | 2 ++ opcodes/hppa-dis.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 15ab5fce6f0..c5aed2a4dc1 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,7 @@ Sun Sep 19 10:41:27 1999 Jeffrey A Law (law@cygnus.com) + * hppa-dis.c (print_insn_hppa): Handle 'm', 'h', '='. + * hppa-dis.c (print_insn_hppa): Handle 'X' operand. * hppa-dis.c (print_insn_hppa): Handle 'B' operand. diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c index 249002bb9d0..099186a2349 100644 --- a/opcodes/hppa-dis.c +++ b/opcodes/hppa-dis.c @@ -902,6 +902,55 @@ print_insn_hppa (memaddr, info) float_format_names[GET_FIELD (insn, 20, 20)]); break; + /* ?!? FIXME */ + case '_': + case '{': + fputs_filtered ("Disassembler botch.\n", info); + break; + + case 'm': + { + int y = GET_FIELD (insn, 16, 18); + + if (y != 1) + fput_const ((y ^ 1) - 1, info); + } + break; + + case 'h': + { + int cbit; + + cbit = GET_FIELD (insn, 16, 18); + + if (cbit > 0) + (*info->fprintf_func) (info->stream, ",%d", cbit - 1); + break; + } + + case '=': + { + int cond = GET_FIELD (insn, 27, 31); + + if (cond == 0) + fputs_filtered (" ", info); + else if (cond == 1) + fputs_filtered ("acc ", info); + else if (cond == 2) + fputs_filtered ("rej ", info); + else if (cond == 5) + fputs_filtered ("acc8 ", info); + else if (cond == 6) + fputs_filtered ("rej8 ", info); + else if (cond == 9) + fputs_filtered ("acc6 ", info); + else if (cond == 13) + fputs_filtered ("acc4 ", info); + else if (cond == 17) + fputs_filtered ("acc2 ", info); + break; + } + case 'X': (*info->print_address_func) ((memaddr + 8 + extract_22 (insn)), -- 2.30.2