* hppa-dis.c (signed_unsigned_names,mix_half_names,
authorJeff Law <law@redhat.com>
Sat, 28 Aug 1999 08:47:50 +0000 (08:47 +0000)
committerJeff Law <law@redhat.com>
Sat, 28 Aug 1999 08:47:50 +0000 (08:47 +0000)
        saturation_names):  New.
        (print_insn_hppa): Add completer codes 'a', 'ch', 'cH', 'cS', and 'c*'.

opcodes/ChangeLog
opcodes/hppa-dis.c

index 2dca02175c077f66ede62f1b126cc310b6f1a1b0..a6db1cea9123d56b90dc465068effb72c083a765 100644 (file)
@@ -1,5 +1,9 @@
 Sat Aug 28 00:27:24 1999  Jerry Quinn <jquinn@nortelnetworks.com>
 
+       * hppa-dis.c (signed_unsigned_names,mix_half_names,
+       saturation_names):  New.
+       (print_insn_hppa): Add completer codes 'a', 'ch', 'cH', 'cS', and 'c*'.
+
        * hppa-dis.c (print_insn_hppa): Place completers behind prefix 'c'. 
 
        * hppa-dis.c (print_insn_hppa): Add cases for '.', '~'. '$'. and '!'
index 52bc8ce2b38e70b51e20e584b236f54856aed08b..4a7fd06efb7f2349d610755aba6df6a90fd0c3d3 100644 (file)
@@ -125,6 +125,10 @@ static const char float_comp_names[][8] =
   ",!?<=", ",>", ",?>", ",!<=", ",!?<", ",>=", ",?>=", ",!<",
   ",!?=", ",<>", ",!=", ",!=t", ",!?", ",<=>", ",true?", ",true"
 };
+static const char *const signed_unsigned_names[][3] = {",u", ",s"};
+static const char *const mix_half_names[][3] = {",l", ",r"};
+static const char *const saturation_names[][3] = {",us", ",ss", 0, ""};
+
 
 /* For a bunch of different instructions form an index into a 
    completer name table. */
@@ -346,6 +350,7 @@ print_insn_hppa (memaddr, info)
                  else
                      fput_fp_reg (GET_FIELD (insn, 11, 15), info);
                  break;
+               case 'a':
                case 'b':
                  fput_reg (GET_FIELD (insn, 6, 10), info);
                  break;
@@ -441,6 +446,33 @@ print_insn_hppa (memaddr, info)
                      else
                        (*info->fprintf_func) (info->stream, " ");
                      break;
+                   case 'S':
+                     /* EXTRD/W has a following condition.  */
+                     if (*(s + 1) == '?')
+                       (*info->fprintf_func)
+                         (info->stream, "%s", signed_unsigned_names[GET_FIELD
+                                                                   (insn, 21, 21)]);
+                     else
+                       (*info->fprintf_func)
+                         (info->stream, "%s ", signed_unsigned_names[GET_FIELD
+                                                                    (insn, 21, 21)]);
+                     break;
+                   case 'h':
+                     (*info->fprintf_func)
+                         (info->stream, "%s", mix_half_names[GET_FIELD
+                                                            (insn, 17, 17)]);
+                     break;
+                   case 'H':
+                     (*info->fprintf_func)
+                         (info->stream, "%s", saturation_names[GET_FIELD
+                                                              (insn, 24, 25)]);
+                     break;
+                   case '*':
+                     (*info->fprintf_func)
+                         (info->stream, ",%d%d%d%d ",
+                          GET_FIELD (insn, 17, 18), GET_FIELD (insn, 20, 21),
+                          GET_FIELD (insn, 22, 23), GET_FIELD (insn, 24, 25));
+                     break;
                    }
                  break;