diff options
author | Jeff Law <law@redhat.com> | 1999-09-19 18:50:17 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1999-09-19 18:50:17 +0000 |
commit | 15e6affe01c541eb46877928cc49b8643c49b93a (patch) | |
tree | 3b419a2a6400e07cb8e5dc794c4d51a1e32dd40d /opcodes/hppa-dis.c | |
parent | ea3937799f25e81b5c2b11c65fa5375b7fb9a669 (diff) | |
download | binutils-redhat-15e6affe01c541eb46877928cc49b8643c49b93a.tar.gz |
* hppa-dis.c (print_insn_hppa): Handle 'm', 'h', '='.
Diffstat (limited to 'opcodes/hppa-dis.c')
-rw-r--r-- | opcodes/hppa-dis.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c index 249002bb9d..099186a234 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)), |