summaryrefslogtreecommitdiff
path: root/opcodes/hppa-dis.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1999-10-10 07:58:37 +0000
committerJeff Law <law@redhat.com>1999-10-10 07:58:37 +0000
commitad85739dd1557a2714913e53e2cbbf9dfd7361d4 (patch)
treee11cb8e87975b88558c65fc897d2e47e196bfc65 /opcodes/hppa-dis.c
parentc4bcec2aa85fe724d02edca8cfbefaa9574b2f8a (diff)
downloadgdb-ad85739dd1557a2714913e53e2cbbf9dfd7361d4.tar.gz
* 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".
Diffstat (limited to 'opcodes/hppa-dis.c')
-rw-r--r--opcodes/hppa-dis.c64
1 files changed, 39 insertions, 25 deletions
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));