* hppa-dis.c (compare_cond_64_names, cmpib_cond_64_names,
add_cond_64_names, wide_add_cond_names, logical_cond_64_names, unit_cond_64_names, shift_cond_64_names, bb_cond_64_names): New. (print_insn_hppa): Add 64 bit condition completers.
This commit is contained in:
parent
7d62725820
commit
b333b6c6d3
|
@ -1,3 +1,10 @@
|
||||||
|
Fri Aug 6 09:46:35 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
||||||
|
|
||||||
|
* hppa-dis.c (compare_cond_64_names, cmpib_cond_64_names,
|
||||||
|
add_cond_64_names, wide_add_cond_names, logical_cond_64_names,
|
||||||
|
unit_cond_64_names, shift_cond_64_names, bb_cond_64_names): New.
|
||||||
|
(print_insn_hppa): Add 64 bit condition completers.
|
||||||
|
|
||||||
Thu Aug 5 16:59:58 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
Thu Aug 5 16:59:58 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
||||||
|
|
||||||
* hppa-dis.c (print_insn_hppa): Change condition args to use
|
* hppa-dis.c (print_insn_hppa): Change condition args to use
|
||||||
|
|
|
@ -67,25 +67,51 @@ static const char control_reg[][6] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char compare_cond_names[][5] = {
|
static const char compare_cond_names[][5] = {
|
||||||
"", ",=", ",<", ",<=", ",<<", ",<<=", ",sv",
|
"", ",=", ",<", ",<=", ",<<", ",<<=", ",sv", ",od",
|
||||||
",od", ",tr", ",<>", ",>=", ",>", ",>>=",
|
",tr", ",<>", ",>=", ",>", ",>>=", ",>>", ",nsv", ",ev"
|
||||||
",>>", ",nsv", ",ev"
|
};
|
||||||
|
static const char compare_cond_64_names[][6] = {
|
||||||
|
"", ",*=", ",*<", ",*<=", ",*<<", ",*<<=", ",*sv", ",*od",
|
||||||
|
",*tr", ",*<>", ",*>=", ",*>", ",*>>=", ",*>>", ",*nsv", ",*ev"
|
||||||
|
};
|
||||||
|
static const char cmpib_cond_64_names[][6] = {
|
||||||
|
",*<<", ",*=", ",*<", ",*<=", ",*>>=", ",*<>", ",*>=", ",*>"
|
||||||
};
|
};
|
||||||
static const char add_cond_names[][5] = {
|
static const char add_cond_names[][5] = {
|
||||||
"", ",=", ",<", ",<=", ",nuv", ",znv", ",sv",
|
"", ",=", ",<", ",<=", ",nuv", ",znv", ",sv", ",od",
|
||||||
",od", ",tr", ",<>", ",>=", ",>", ",uv",
|
",tr", ",<>", ",>=", ",>", ",uv", ",vnz", ",nsv", ",ev"
|
||||||
",vnz", ",nsv", ",ev"
|
};
|
||||||
|
static const char add_cond_64_names[][6] = {
|
||||||
|
",*", ",*=", ",*<", ",*<=", ",*nuv", ",*znv", ",*sv", ",*od",
|
||||||
|
",*tr", ",*<>", ",*>=", ",*>", ",*uv", ",*vnz", ",*nsv", ",*ev"
|
||||||
|
};
|
||||||
|
static const char wide_add_cond_names[][5] = {
|
||||||
|
"", ",=", ",<", ",<=", ",nuv", ",*=", ",*<", ",*<=",
|
||||||
|
",tr", ",<>", ",>=", ",>", ",uv", ",*<>", ",*>=", ",*>"
|
||||||
};
|
};
|
||||||
static const char *const logical_cond_names[] = {
|
static const char *const logical_cond_names[] = {
|
||||||
"", ",=", ",<", ",<=", 0, 0, 0, ",od",
|
"", ",=", ",<", ",<=", 0, 0, 0, ",od",
|
||||||
",tr", ",<>", ",>=", ",>", 0, 0, 0, ",ev"};
|
",tr", ",<>", ",>=", ",>", 0, 0, 0, ",ev"};
|
||||||
|
static const char *const logical_cond_64_names[] = {
|
||||||
|
",*", ",*=", ",*<", ",*<=", 0, 0, 0, ",*od",
|
||||||
|
",*tr", ",*<>", ",*>=", ",*>", 0, 0, 0, ",*ev"};
|
||||||
static const char *const unit_cond_names[] = {
|
static const char *const unit_cond_names[] = {
|
||||||
"", 0, ",sbz", ",shz", ",sdc", 0, ",sbc", ",shc",
|
"", 0, ",sbz", ",shz", ",sdc", 0, ",sbc", ",shc",
|
||||||
",tr", 0, ",nbz", ",nhz", ",ndc", 0, ",nbc", ",nhc"
|
",tr", 0, ",nbz", ",nhz", ",ndc", 0, ",nbc", ",nhc"
|
||||||
};
|
};
|
||||||
|
static const char *const unit_cond_64_names[] = {
|
||||||
|
",*", ",*swz", ",*sbz", ",*shz", ",*sdc", ",*swc", ",*sbc", ",*shc",
|
||||||
|
",*tr", ",*nwz", ",*nbz", ",*nhz", ",*ndc", ",*nwc", ",*nbc", ",*nhc"
|
||||||
|
};
|
||||||
static const char shift_cond_names[][4] = {
|
static const char shift_cond_names[][4] = {
|
||||||
"", ",=", ",<", ",od", ",tr", ",<>", ",>=", ",ev"
|
"", ",=", ",<", ",od", ",tr", ",<>", ",>=", ",ev"
|
||||||
};
|
};
|
||||||
|
static const char shift_cond_64_names[][5] = {
|
||||||
|
",*", ",*=", ",*<", ",*od", ",*tr", ",*<>", ",*>=", ",*ev"
|
||||||
|
};
|
||||||
|
static const char bb_cond_64_names[][5] = {
|
||||||
|
",*<", ",*>="
|
||||||
|
};
|
||||||
static const char index_compl_names[][4] = {"", ",m", ",s", ",sm"};
|
static const char index_compl_names[][4] = {"", ",m", ",s", ",sm"};
|
||||||
static const char short_ldst_compl_names[][4] = {"", ",ma", "", ",mb"};
|
static const char short_ldst_compl_names[][4] = {"", ",ma", "", ",mb"};
|
||||||
static const char *const short_bytes_compl_names[] = {
|
static const char *const short_bytes_compl_names[] = {
|
||||||
|
@ -388,6 +414,7 @@ print_insn_hppa (memaddr, info)
|
||||||
(*info->fprintf_func) (info->stream,
|
(*info->fprintf_func) (info->stream,
|
||||||
"sr%d", GET_FIELD (insn, 16, 17));
|
"sr%d", GET_FIELD (insn, 16, 17));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'S':
|
case 'S':
|
||||||
(*info->fprintf_func) (info->stream, "sr%d", extract_3 (insn));
|
(*info->fprintf_func) (info->stream, "sr%d", extract_3 (insn));
|
||||||
break;
|
break;
|
||||||
|
@ -425,6 +452,22 @@ print_insn_hppa (memaddr, info)
|
||||||
18)],
|
18)],
|
||||||
info);
|
info);
|
||||||
break;
|
break;
|
||||||
|
case 'T':
|
||||||
|
fputs_filtered (compare_cond_names[GET_FIELD (insn, 16, 18)
|
||||||
|
+ 8], info);
|
||||||
|
break;
|
||||||
|
case 'r':
|
||||||
|
fputs_filtered (compare_cond_64_names[GET_FIELD (insn, 16, 18)],
|
||||||
|
info);
|
||||||
|
break;
|
||||||
|
case 'R':
|
||||||
|
fputs_filtered (compare_cond_64_names[GET_FIELD (insn, 16, 18)
|
||||||
|
+ 8], info);
|
||||||
|
break;
|
||||||
|
case 'Q':
|
||||||
|
fputs_filtered (cmpib_cond_64_names[GET_FIELD (insn, 16, 18)],
|
||||||
|
info);
|
||||||
|
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)
|
||||||
|
@ -438,25 +481,58 @@ print_insn_hppa (memaddr, info)
|
||||||
(*info->fprintf_func) (info->stream, "%s ",
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
compare_cond_names[GET_COND (insn)]);
|
compare_cond_names[GET_COND (insn)]);
|
||||||
break;
|
break;
|
||||||
|
case 'S':
|
||||||
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
|
compare_cond_64_names[GET_COND (insn)]);
|
||||||
|
break;
|
||||||
case 'a':
|
case 'a':
|
||||||
(*info->fprintf_func) (info->stream, "%s ",
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
add_cond_names[GET_COND (insn)]);
|
add_cond_names[GET_COND (insn)]);
|
||||||
break;
|
break;
|
||||||
|
case 'A':
|
||||||
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
|
add_cond_64_names[GET_COND (insn)]);
|
||||||
|
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,
|
16,
|
||||||
18)]);
|
18)]);
|
||||||
break;
|
break;
|
||||||
|
case 'D':
|
||||||
|
(*info->fprintf_func) (info->stream, "%s",
|
||||||
|
add_cond_names[GET_FIELD (insn,
|
||||||
|
16, 18)
|
||||||
|
+ 8]);
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
(*info->fprintf_func)
|
||||||
|
(info->stream, "%s",
|
||||||
|
wide_add_cond_names[GET_FIELD (insn, 16, 18)]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'W':
|
||||||
|
(*info->fprintf_func)
|
||||||
|
(info->stream, "%s",
|
||||||
|
wide_add_cond_names[GET_FIELD (insn, 16, 18) + 8]);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
(*info->fprintf_func) (info->stream, "%s ",
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
logical_cond_names[GET_COND (insn)]);
|
logical_cond_names[GET_COND (insn)]);
|
||||||
break;
|
break;
|
||||||
|
case 'L':
|
||||||
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
|
logical_cond_64_names[GET_COND (insn)]);
|
||||||
|
break;
|
||||||
case 'u':
|
case 'u':
|
||||||
(*info->fprintf_func) (info->stream, "%s ",
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
unit_cond_names[GET_COND (insn)]);
|
unit_cond_names[GET_COND (insn)]);
|
||||||
break;
|
break;
|
||||||
|
case 'U':
|
||||||
|
(*info->fprintf_func) (info->stream, "%s ",
|
||||||
|
unit_cond_64_names[GET_COND (insn)]);
|
||||||
|
break;
|
||||||
case 'y':
|
case 'y':
|
||||||
case 'x':
|
case 'x':
|
||||||
case 'b':
|
case 'b':
|
||||||
|
@ -469,7 +545,20 @@ print_insn_hppa (memaddr, info)
|
||||||
if (s[1] != 'n')
|
if (s[1] != 'n')
|
||||||
(*info->fprintf_func) (info->stream, " ");
|
(*info->fprintf_func) (info->stream, " ");
|
||||||
break;
|
break;
|
||||||
|
case 'X':
|
||||||
|
(*info->fprintf_func) (info->stream, "%s",
|
||||||
|
shift_cond_64_names[GET_FIELD (insn, 16, 18)]);
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
(*info->fprintf_func)
|
||||||
|
(info->stream, "%s",
|
||||||
|
bb_cond_64_names[GET_FIELD (insn, 16, 16)]);
|
||||||
|
|
||||||
|
/* If the next character in args is 'n', it will handle
|
||||||
|
putting out the space. */
|
||||||
|
if (s[1] != 'n')
|
||||||
|
(*info->fprintf_func) (info->stream, " ");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue