diff options
-rw-r--r-- | opcodes/ChangeLog | 9 | ||||
-rw-r--r-- | opcodes/hppa-dis.c | 64 |
2 files changed, 48 insertions, 25 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 841509793d4..42c5afeea35 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,12 @@ +Sun Oct 10 01:48:01 1999 Jerry Quinn <jerry.quinn.adv91@alum.dartmouth.org> + + * hppa-dis.c (print_insn_hppa): Add new codes 'cc', 'cd', 'cC', + 'co', '@'. + + * hppa-dis.c (print_insn_hppa): Removed unused args. Fix '?W'. + + * hppa-dis.c (print_insn_hppa): Implement codes "?N", "?Q". + Thu Oct 7 00:12:43 MDT 1999 Diego Novillo <dnovillo@cygnus.com> * d10v-opc.c (d10v_operands): Add RESTRICTED_NUM3 flag for diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c index c8f1e9a3a3f..bcada704f78 100644 --- a/opcodes/hppa-dis.c +++ b/opcodes/hppa-dis.c @@ -512,8 +512,36 @@ print_insn_hppa (memaddr, info) (*info->fprintf_func) (info->stream, "%s ", short_bytes_compl_names[GET_COMPL (insn)]); break; + case 'c': + case 'C': + switch (GET_FIELD (insn, 20, 21)) + { + case 1: + (*info->fprintf_func) (info->stream, ",bc "); + break; + case 2: + (*info->fprintf_func) (info->stream, ",sl "); + break; + default: + (*info->fprintf_func) (info->stream, " "); + } + break; + case 'd': + switch (GET_FIELD (insn, 20, 21)) + { + case 1: + (*info->fprintf_func) (info->stream, ",co "); + break; + default: + (*info->fprintf_func) (info->stream, " "); + } + break; + case 'o': + (*info->fprintf_func) (info->stream, ",o"); + break; case 'g': (*info->fprintf_func) (info->stream, ",gate"); + break; case 'p': (*info->fprintf_func) (info->stream, ",l,push"); break; @@ -647,7 +675,7 @@ print_insn_hppa (memaddr, info) break; } - case 'c': + case 'e': { int opcode = GET_FIELD (insn, 0, 5); @@ -693,26 +721,18 @@ print_insn_hppa (memaddr, info) fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, 18)], info); break; - case 'T': + case 'n': fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, 18) - + 8], info); - break; - case 'r': - fputs_filtered (compare_cond_64_names[GET_FIELD (insn, 16, 18)], - info); + + GET_FIELD (insn, 4, 4) * 8], info); break; - case 'R': + case 'N': fputs_filtered (compare_cond_64_names[GET_FIELD (insn, 16, 18) - + 8], info); + + GET_FIELD (insn, 2, 2) * 8], info); break; case 'Q': fputs_filtered (cmpib_cond_64_names[GET_FIELD (insn, 16, 18)], info); break; - case 'n': - fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, 18) - + GET_FIELD (insn, 4, 4) * 8], info); - break; case '@': fputs_filtered (add_cond_names[GET_FIELD (insn, 16, 18) + GET_FIELD (insn, 4, 4) * 8], info); @@ -738,21 +758,11 @@ print_insn_hppa (memaddr, info) add_cond_names[GET_FIELD (insn, 16, 18)]); break; - case 'D': - (*info->fprintf_func) (info->stream, "%s", - add_cond_names[GET_FIELD (insn, 16, 18) - + 8]); - break; - case 'w': - (*info->fprintf_func) - (info->stream, "%s", - wide_add_cond_names[GET_FIELD (insn, 16, 18)]); - break; - case 'W': (*info->fprintf_func) (info->stream, "%s", - wide_add_cond_names[GET_FIELD (insn, 16, 18) + 8]); + wide_add_cond_names[GET_FIELD (insn, 16, 18) + + GET_FIELD (insn, 4, 4) * 8]); break; case 'l': @@ -866,6 +876,10 @@ print_insn_hppa (memaddr, info) (*info->fprintf_func) (info->stream, "%%sr0,%%r31"); break; + case '@': + (*info->fprintf_func) (info->stream, "0"); + break; + case '.': (*info->fprintf_func) (info->stream, "%d", GET_FIELD (insn, 24, 25)); |