* hppa-dis.c (extract_22): New function.
authorJeff Law <law@redhat.com>
Sun, 19 Sep 1999 20:14:30 +0000 (20:14 +0000)
committerJeff Law <law@redhat.com>
Sun, 19 Sep 1999 20:14:30 +0000 (20:14 +0000)
opcodes/ChangeLog
opcodes/hppa-dis.c

index 41c80dacb9d75004f80b3c10fae84c86eafcc2ff..29e0915c94787eabbdb7c412eac69d949c3c5c0c 100644 (file)
@@ -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'.
index d34eeabd229b235808a677ce88219a71a75763ff..e21815e298bd804fed5718aeee04df3c87d5e069 100644 (file)
@@ -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);