summaryrefslogtreecommitdiff
path: root/opcodes/hppa-dis.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1999-09-19 19:29:37 +0000
committerJeff Law <law@redhat.com>1999-09-19 19:29:37 +0000
commitb08d253872796e356d7d2519858bc6e701ee9339 (patch)
tree56c533ca6800c925a5743ebc030f0fdd09c97734 /opcodes/hppa-dis.c
parent61e1b6e53f8737f81a501c96ef1f96a878180439 (diff)
downloadgdb-b08d253872796e356d7d2519858bc6e701ee9339.tar.gz
* hppa-dis.c (print_insn_hppa): Handle '#', 'd', and 'cq'.
Diffstat (limited to 'opcodes/hppa-dis.c')
-rw-r--r--opcodes/hppa-dis.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c
index 099186a2349..6e8df747a3f 100644
--- a/opcodes/hppa-dis.c
+++ b/opcodes/hppa-dis.c
@@ -490,6 +490,12 @@ 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 's':
(*info->fprintf_func) (info->stream, "%s ",
short_bytes_compl_names[GET_COMPL (insn)]);
@@ -902,6 +908,37 @@ print_insn_hppa (memaddr, info)
float_format_names[GET_FIELD
(insn, 20, 20)]);
break;
+ case '#':
+ {
+ int sign = GET_FIELD (insn, 31, 31);
+ int imm10 = GET_FIELD (insn, 18, 27);
+ int disp;
+
+ if (sign)
+ disp = (-1 << 10) | imm10;
+ else
+ disp = imm10;
+
+ disp <<= 3;
+ fput_const (disp, info);
+ break;
+ }
+ case 'd':
+ {
+ int sign = GET_FIELD (insn, 31, 31);
+ int imm11 = GET_FIELD (insn, 18, 28);
+ int disp;
+
+ if (sign)
+ disp = (-1 << 11) | imm11;
+ else
+ disp = imm11;
+
+ disp <<= 2;
+ fput_const (disp, info);
+ break;
+ }
+
/* ?!? FIXME */
case '_':
case '{':