summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1999-09-19 20:14:30 +0000
committerJeff Law <law@redhat.com>1999-09-19 20:14:30 +0000
commitb3fe7ee28094aefa7eb930b8585e7352be0cf30f (patch)
treec579a8b0908872c406aaa2821b8675a1392334ce
parenteb32eb44aa12cc0e178d05b66e625e5914d7453d (diff)
downloadbinutils-gdb-b3fe7ee28094aefa7eb930b8585e7352be0cf30f.tar.gz
* hppa-dis.c (extract_22): New function.
-rw-r--r--opcodes/ChangeLog2
-rw-r--r--opcodes/hppa-dis.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 41c80dacb9d..29e0915c947 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 (extract_22): New function.
+
* hppa-dis.c (print_insn_hppa): Handle 'J', 'K', and 'cc'.
* hppa-dis.c (print_insn_hppa): Handle 'fe' and 'cJ'.
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c
index d34eeabd229..e21815e298b 100644
--- a/opcodes/hppa-dis.c
+++ b/opcodes/hppa-dis.c
@@ -315,6 +315,17 @@ extract_17 (word)
(word & 0x1) << 16, 17) << 2;
}
+static int
+extract_22 (word)
+ unsigned word;
+{
+ return sign_extend (GET_FIELD (word, 19, 28) |
+ GET_FIELD (word, 29, 29) << 10 |
+ GET_FIELD (word, 11, 15) << 11 |
+ GET_FIELD (word, 6, 10) << 16 |
+ (word & 0x1) << 21, 22) << 2;
+}
+
/* Print one instruction. */
int
print_insn_hppa (memaddr, info)
@@ -926,7 +937,6 @@ print_insn_hppa (memaddr, info)
fput_const (extract_14 (insn), info);
break;
-
case '#':
{
int sign = GET_FIELD (insn, 31, 31);