diff options
author | Jeff Law <law@redhat.com> | 1999-09-19 20:17:48 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1999-09-19 20:17:48 +0000 |
commit | 9c1faa822937bd4bc031d0dc9e5404c8f6b23c8f (patch) | |
tree | 0c495bf39c7064825e1331fc952c3891b0133526 /opcodes/hppa-dis.c | |
parent | * hppa-dis.c (extract_22): New function. (diff) | |
download | binutils-gdb-9c1faa822937bd4bc031d0dc9e5404c8f6b23c8f.tar.gz binutils-gdb-9c1faa822937bd4bc031d0dc9e5404c8f6b23c8f.tar.bz2 binutils-gdb-9c1faa822937bd4bc031d0dc9e5404c8f6b23c8f.zip |
* hppa-dis.c: (print_insn_hppa): Correct 'cJ', 'cc'.
Diffstat (limited to 'opcodes/hppa-dis.c')
-rw-r--r-- | opcodes/hppa-dis.c | 68 |
1 files changed, 56 insertions, 12 deletions
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c index e21815e298b..35f32ecd7fd 100644 --- a/opcodes/hppa-dis.c +++ b/opcodes/hppa-dis.c @@ -508,18 +508,6 @@ print_insn_hppa (memaddr, info) (*info->fprintf_func) (info->stream, "%s ", short_ldst_compl_names[GET_COMPL (insn)]); break; - case 'q': - (*info->fprintf_func) - (info->stream, "%s ", - short_ldst_compl_names[(GET_FIELD (insn, 28, 28) - | GET_FIELD (insn, 29, 29))]); - break; - case 'J': - if (insn & 0x4) - (*info->fprintf_func) (info->stream, ",mb "); - else - (*info->fprintf_func) (info->stream, ",ma "); - break; case 's': (*info->fprintf_func) (info->stream, "%s ", short_bytes_compl_names[GET_COMPL (insn)]); @@ -617,6 +605,62 @@ print_insn_hppa (memaddr, info) GET_FIELD (insn, 17, 18), GET_FIELD (insn, 20, 21), GET_FIELD (insn, 22, 23), GET_FIELD (insn, 24, 25)); break; + + case 'q': + { + int m, a; + + m = GET_FIELD (insn, 28, 28); + a = GET_FIELD (insn, 29, 29); + + if (m && !a) + fputs_filtered (",ma ", info); + else if (m && a) + fputs_filtered (",mb ", info); + else + fputs_filtered (" ", info); + break; + } + + case 'J': + { + int opcode = GET_FIELD (insn, 0, 5); + + if (opcode == 0x16 || opcode == 0x1e) + { + if (GET_FIELD (insn, 29, 29) == 0) + fputs_filtered (",ma ", info); + else + fputs_filtered (",mb ", info); + } + else + fputs_filtered (" ", info); + break; + } + + case 'c': + { + int opcode = GET_FIELD (insn, 0, 5); + + if (opcode == 0x13 || opcode == 0x1b) + { + if (GET_FIELD (insn, 18, 18) == 1) + fputs_filtered (",mb ", info); + else + fputs_filtered (",ma ", info); + } + else if (opcode == 0x17 || opcode == 0x1f) + { + if (GET_FIELD (insn, 31, 31) == 1) + fputs_filtered (",ma ", info); + else + fputs_filtered (",mb ", info); + } + else + fputs_filtered (" ", info); + + break; + } } break; |