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 | d758242c739c1d9348ac6aed240e639f5c547be3 (patch) | |
tree | f6efebe4127bbe529fb9aeb063fce2fd057e3d1b /opcodes | |
parent | 61dd1d313e032875de06281b658aa11d2c709abf (diff) | |
download | gdb-d758242c739c1d9348ac6aed240e639f5c547be3.zip gdb-d758242c739c1d9348ac6aed240e639f5c547be3.tar.gz gdb-d758242c739c1d9348ac6aed240e639f5c547be3.tar.bz2 |
* hppa-dis.c (print_insn_hppa): Handle '#', 'd', and 'cq'.
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 2 | ||||
-rw-r--r-- | opcodes/hppa-dis.c | 37 |
2 files changed, 39 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index c5aed2a..7e3d350 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 099186a..6e8df74 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 '{': |