aboutsummaryrefslogtreecommitdiff
path: root/opcodes/hppa-dis.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1999-08-28 10:59:07 +0000
committerJeff Law <law@redhat.com>1999-08-28 10:59:07 +0000
commitaf10de82403f32c2818d0d56818895c93df1147b (patch)
treee90b4e39a057e7255bb3dcc777bd76ea6b17efb4 /opcodes/hppa-dis.c
parent90927b9c0e36b2abc118b6898736b3c45137def3 (diff)
downloadgdb-af10de82403f32c2818d0d56818895c93df1147b.zip
gdb-af10de82403f32c2818d0d56818895c93df1147b.tar.gz
gdb-af10de82403f32c2818d0d56818895c93df1147b.tar.bz2
* hppa-dis.c (print_insn_hppa): Add args q, %, !, and |.
Diffstat (limited to 'opcodes/hppa-dis.c')
-rw-r--r--opcodes/hppa-dis.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c
index 42c364b..adbc8c4 100644
--- a/opcodes/hppa-dis.c
+++ b/opcodes/hppa-dis.c
@@ -372,6 +372,9 @@ print_insn_hppa (memaddr, info)
case 'E':
fput_fp_reg (GET_FIELD (insn, 6, 10), info);
break;
+ case '!':
+ fput_creg (11, info);
+ break;
case 't':
fput_reg (GET_FIELD (insn, 27, 31), info);
break;
@@ -476,6 +479,10 @@ print_insn_hppa (memaddr, info)
if (GET_FIELD (insn, 25, 25))
(*info->fprintf_func) (info->stream, ",i");
break;
+ case 'z':
+ if (!GET_FIELD (insn, 21, 21))
+ (*info->fprintf_func) (info->stream, ",z");
+ break;
case 'a':
(*info->fprintf_func)
(info->stream, "%s", add_compl_names[GET_FIELD
@@ -757,10 +764,34 @@ print_insn_hppa (memaddr, info)
(*info->fprintf_func) (info->stream, "%d",
GET_FIELD (insn, 22, 26));
break;
+ case 'q':
+ {
+ int num;
+ num = GET_FIELD (insn, 20, 20) << 5;
+ num |= GET_FIELD (insn, 22, 26);
+ (*info->fprintf_func) (info->stream, "%d", num);
+ break;
+ }
case 'T':
(*info->fprintf_func) (info->stream, "%d",
32 - GET_FIELD (insn, 27, 31));
break;
+ case '%':
+ {
+ int num;
+ num = (GET_FIELD (insn, 23, 23) + 1) * 32;
+ num -= GET_FIELD (insn, 27, 31);
+ (*info->fprintf_func) (info->stream, "%d", num);
+ break;
+ }
+ case '|':
+ {
+ int num;
+ num = (GET_FIELD (insn, 19, 19) + 1) * 32;
+ num -= GET_FIELD (insn, 27, 31);
+ (*info->fprintf_func) (info->stream, "%d", num);
+ break;
+ }
case '$':
fput_const (GET_FIELD (insn, 20, 28), info);
break;