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 | 838c65f04017f87c5e84fbd2d630dbc07f188075 (patch) | |
tree | 5384fe12b1b10cd4c40cab8a5d4b2a22337c5309 /opcodes/hppa-dis.c | |
parent | 1cf6ae6758119485f79861344aa495ce3480b066 (diff) | |
download | gdb-838c65f04017f87c5e84fbd2d630dbc07f188075.zip gdb-838c65f04017f87c5e84fbd2d630dbc07f188075.tar.gz gdb-838c65f04017f87c5e84fbd2d630dbc07f188075.tar.bz2 |
* 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 249002b..099186a 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)), |