* hppa-dis.c (print_insn_hppa): Replace 'f' by 'v'. Prefix float

register args by 'f'.
This commit is contained in:
Jeff Law
1999-08-29 07:53:24 +00:00
parent 97e1581b3f
commit a349b1517f
2 changed files with 97 additions and 92 deletions

View File

@ -1,5 +1,8 @@
Sat Aug 28 00:27:24 1999 Jerry Quinn <jquinn@nortelnetworks.com> Sat Aug 28 00:27:24 1999 Jerry Quinn <jquinn@nortelnetworks.com>
* hppa-dis.c (print_insn_hppa): Replace 'f' by 'v'. Prefix float
register args by 'f'.
* hppa-dis.c (print_insn_hppa): Add args q, %, !, and |. * hppa-dis.c (print_insn_hppa): Add args q, %, !, and |.
* hppa-dis.c (MASK_10, read_write_names, add_compl_names, * hppa-dis.c (MASK_10, read_write_names, add_compl_names,

View File

@ -356,12 +356,6 @@ print_insn_hppa (memaddr, info)
case 'x': case 'x':
fput_reg (GET_FIELD (insn, 11, 15), info); fput_reg (GET_FIELD (insn, 11, 15), info);
break; break;
case 'X':
if (GET_FIELD (insn, 25, 25))
fput_fp_reg_r (GET_FIELD (insn, 11, 15), info);
else
fput_fp_reg (GET_FIELD (insn, 11, 15), info);
break;
case 'a': case 'a':
case 'b': case 'b':
fput_reg (GET_FIELD (insn, 6, 10), info); fput_reg (GET_FIELD (insn, 6, 10), info);
@ -369,25 +363,59 @@ print_insn_hppa (memaddr, info)
case '^': case '^':
fput_creg (GET_FIELD (insn, 6, 10), info); fput_creg (GET_FIELD (insn, 6, 10), info);
break; break;
case 'E':
fput_fp_reg (GET_FIELD (insn, 6, 10), info);
break;
case '!':
fput_creg (11, info);
break;
case 't': case 't':
fput_reg (GET_FIELD (insn, 27, 31), info); fput_reg (GET_FIELD (insn, 27, 31), info);
break; break;
case 'v':
/* Handle floating point registers. */
case 'f':
switch (*++s)
{
case 't':
fput_fp_reg (GET_FIELD (insn, 27, 31), info);
break;
case 'T':
if (GET_FIELD (insn, 25, 25)) if (GET_FIELD (insn, 25, 25))
fput_fp_reg_r (GET_FIELD (insn, 27, 31), info); fput_fp_reg_r (GET_FIELD (insn, 27, 31), info);
else else
fput_fp_reg (GET_FIELD (insn, 27, 31), info); fput_fp_reg (GET_FIELD (insn, 27, 31), info);
break; break;
case 'y': case 'a':
fput_fp_reg (GET_FIELD (insn, 27, 31), info); if (GET_FIELD (insn, 25, 25))
fput_fp_reg_r (GET_FIELD (insn, 6, 10), info);
else
fput_fp_reg (GET_FIELD (insn, 6, 10), info);
break; break;
case '4': case 'A':
if (GET_FIELD (insn, 24, 24))
fput_fp_reg_r (GET_FIELD (insn, 6, 10), info);
else
fput_fp_reg (GET_FIELD (insn, 6, 10), info);
break;
case 'b':
if (GET_FIELD (insn, 25, 25))
fput_fp_reg_r (GET_FIELD (insn, 11, 15), info);
else
fput_fp_reg (GET_FIELD (insn, 11, 15), info);
break;
case 'B':
if (GET_FIELD (insn, 19, 19))
fput_fp_reg_r (GET_FIELD (insn, 11, 15), info);
else
fput_fp_reg (GET_FIELD (insn, 11, 15), info);
break;
case 'C':
{
int reg = GET_FIELD (insn, 21, 22);
reg |= GET_FIELD (insn, 16, 18) << 2;
if (GET_FIELD (insn, 23, 23) != 0)
fput_fp_reg_r (reg, info);
else
fput_fp_reg (reg, info);
break;
}
case 'i':
{ {
int reg = GET_FIELD (insn, 6, 10); int reg = GET_FIELD (insn, 6, 10);
@ -395,7 +423,7 @@ print_insn_hppa (memaddr, info)
fput_fp_reg (reg, info); fput_fp_reg (reg, info);
break; break;
} }
case '6': case 'j':
{ {
int reg = GET_FIELD (insn, 11, 15); int reg = GET_FIELD (insn, 11, 15);
@ -403,7 +431,7 @@ print_insn_hppa (memaddr, info)
fput_fp_reg (reg, info); fput_fp_reg (reg, info);
break; break;
} }
case '7': case 'k':
{ {
int reg = GET_FIELD (insn, 27, 31); int reg = GET_FIELD (insn, 27, 31);
@ -411,15 +439,7 @@ print_insn_hppa (memaddr, info)
fput_fp_reg (reg, info); fput_fp_reg (reg, info);
break; break;
} }
case '8': case 'l':
{
int reg = GET_FIELD (insn, 16, 20);
reg |= (GET_FIELD (insn, 26, 26) << 4);
fput_fp_reg (reg, info);
break;
}
case '9':
{ {
int reg = GET_FIELD (insn, 21, 25); int reg = GET_FIELD (insn, 21, 25);
@ -427,6 +447,16 @@ print_insn_hppa (memaddr, info)
fput_fp_reg (reg, info); fput_fp_reg (reg, info);
break; break;
} }
case 'm':
{
int reg = GET_FIELD (insn, 16, 20);
reg |= (GET_FIELD (insn, 26, 26) << 4);
fput_fp_reg (reg, info);
break;
}
}
case '5': case '5':
fput_const (extract_5_load (insn), info); fput_const (extract_5_load (insn), info);
break; break;
@ -568,8 +598,7 @@ print_insn_hppa (memaddr, info)
rather than by the 'f' bit (sigh): comb, comib, rather than by the 'f' bit (sigh): comb, comib,
addb, addib */ addb, addib */
case 't': case 't':
fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, 18)],
18)],
info); info);
break; break;
case 'T': case 'T':
@ -589,8 +618,7 @@ print_insn_hppa (memaddr, info)
info); info);
break; break;
case 'n': case 'n':
fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, 18)
18)
+ GET_FIELD (insn, 4, 4) * 8], info); + GET_FIELD (insn, 4, 4) * 8], info);
break; break;
case '@': case '@':
@ -615,14 +643,12 @@ print_insn_hppa (memaddr, info)
break; break;
case 'd': case 'd':
(*info->fprintf_func) (info->stream, "%s", (*info->fprintf_func) (info->stream, "%s",
add_cond_names[GET_FIELD (insn, add_cond_names[GET_FIELD (insn, 16, 18)]);
16,
18)]);
break; break;
case 'D': case 'D':
(*info->fprintf_func) (info->stream, "%s", (*info->fprintf_func) (info->stream, "%s",
add_cond_names[GET_FIELD (insn, add_cond_names[GET_FIELD (insn, 16, 18)
16, 18)
+ 8]); + 8]);
break; break;
case 'w': case 'w':
@ -801,7 +827,7 @@ print_insn_hppa (memaddr, info)
case 'D': case 'D':
fput_const (GET_FIELD (insn, 6, 31), info); fput_const (GET_FIELD (insn, 6, 31), info);
break; break;
case 'f': case 'v':
(*info->fprintf_func) (info->stream, ",%d", GET_FIELD (insn, 23, 25)); (*info->fprintf_func) (info->stream, ",%d", GET_FIELD (insn, 23, 25));
break; break;
case 'O': case 'O':
@ -811,17 +837,6 @@ print_insn_hppa (memaddr, info)
case 'o': case 'o':
fput_const (GET_FIELD (insn, 6, 20), info); fput_const (GET_FIELD (insn, 6, 20), info);
break; break;
case '3':
{
int reg = GET_FIELD (insn, 21, 22);
reg |= GET_FIELD (insn, 16, 18) << 2;
if (GET_FIELD (insn, 23, 23) != 0)
fput_fp_reg_r (reg, info);
else
fput_fp_reg (reg, info);
break;
}
case '2': case '2':
fput_const ((GET_FIELD (insn, 6, 22) << 5 | fput_const ((GET_FIELD (insn, 6, 22) << 5 |
GET_FIELD (insn, 27, 31)), info); GET_FIELD (insn, 27, 31)), info);
@ -872,19 +887,6 @@ print_insn_hppa (memaddr, info)
float_format_names[GET_FIELD float_format_names[GET_FIELD
(insn, 20, 20)]); (insn, 20, 20)]);
break; break;
case 'J':
if (GET_FIELD (insn, 24, 24))
fput_fp_reg_r (GET_FIELD (insn, 6, 10), info);
else
fput_fp_reg (GET_FIELD (insn, 6, 10), info);
break;
case 'K':
if (GET_FIELD (insn, 19, 19))
fput_fp_reg_r (GET_FIELD (insn, 11, 15), info);
else
fput_fp_reg (GET_FIELD (insn, 11, 15), info);
break;
default: default:
(*info->fprintf_func) (info->stream, "%c", *s); (*info->fprintf_func) (info->stream, "%c", *s);
break; break;