From: Jeff Law Date: Sun, 19 Sep 1999 19:29:37 +0000 (+0000) Subject: * hppa-dis.c (print_insn_hppa): Handle '#', 'd', and 'cq'. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d758242c739c1d9348ac6aed240e639f5c547be3;p=binutils-gdb.git * hppa-dis.c (print_insn_hppa): Handle '#', 'd', and 'cq'. --- 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 '{':