* mn10300-dis.c (disassemble): Handle register lists.

More disassembler stuff.
This commit is contained in:
Jeff Law 1996-11-20 18:39:48 +00:00
parent f039819018
commit f0e98103c5
2 changed files with 47 additions and 0 deletions

View File

@ -1,5 +1,7 @@
Wed Nov 20 10:37:13 1996 Jeffrey A Law (law@cygnus.com)
* mn10300-dis.c (disassemble): Handle register lists.
* mn10300-opc.c: Fix handling of register list operand for
"call", "ret", and "rets" instructions.

View File

@ -370,6 +370,51 @@ disassemble (memaddr, info, insn, extension, size)
else if ((operand->flags & MN10300_OPERAND_MEMADDR) != 0)
(*info->print_address_func) (value, info);
else if ((operand->flags & MN10300_OPERAND_REG_LIST) != 0)
{
int comma = 0;
(*info->fprintf_func) (info->stream, "[");
if (value & 0x80)
{
(*info->fprintf_func) (info->stream, "d2");
comma = 1;
}
if (value & 0x40)
{
if (comma)
(*info->fprintf_func) (info->stream, ",");
(*info->fprintf_func) (info->stream, "d3");
comma = 1;
}
if (value & 0x20)
{
if (comma)
(*info->fprintf_func) (info->stream, ",");
(*info->fprintf_func) (info->stream, "a2");
comma = 1;
}
if (value & 0x10)
{
if (comma)
(*info->fprintf_func) (info->stream, ",");
(*info->fprintf_func) (info->stream, "a3");
comma = 1;
}
if (value & 0x08)
{
if (comma)
(*info->fprintf_func) (info->stream, ",");
(*info->fprintf_func) (info->stream, "other");
comma = 1;
}
(*info->fprintf_func) (info->stream, "]");
}
else
(*info->fprintf_func) (info->stream, "%d", value);
}