From d758242c739c1d9348ac6aed240e639f5c547be3 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sun, 19 Sep 1999 19:29:37 +0000 Subject: [PATCH] * hppa-dis.c (print_insn_hppa): Handle '#', 'd', and 'cq'. --- opcodes/ChangeLog | 2 ++ opcodes/hppa-dis.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index c5aed2a4dc1..7e3d3505a9c 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,7 @@ Sun Sep 19 10:41:27 1999 Jeffrey A Law (law@cygnus.com) + * hppa-dis.c (print_insn_hppa): Handle '#', 'd', and 'cq'. + * hppa-dis.c (print_insn_hppa): Handle 'm', 'h', '='. * hppa-dis.c (print_insn_hppa): Handle 'X' operand. 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 '{': -- 2.30.2