diff options
author | Jeff Law <law@redhat.com> | 1999-09-19 19:29:37 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1999-09-19 19:29:37 +0000 |
commit | b08d253872796e356d7d2519858bc6e701ee9339 (patch) | |
tree | 56c533ca6800c925a5743ebc030f0fdd09c97734 /opcodes/hppa-dis.c | |
parent | 61e1b6e53f8737f81a501c96ef1f96a878180439 (diff) | |
download | gdb-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.c | 37 |
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 '{': |