mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 23:57:03 +08:00
* mn10300-dis.c (disassemble): Handle register lists.
More disassembler stuff.
This commit is contained in:
@ -1,5 +1,7 @@
|
|||||||
Wed Nov 20 10:37:13 1996 Jeffrey A Law (law@cygnus.com)
|
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
|
* mn10300-opc.c: Fix handling of register list operand for
|
||||||
"call", "ret", and "rets" instructions.
|
"call", "ret", and "rets" instructions.
|
||||||
|
|
||||||
|
@ -370,6 +370,51 @@ disassemble (memaddr, info, insn, extension, size)
|
|||||||
else if ((operand->flags & MN10300_OPERAND_MEMADDR) != 0)
|
else if ((operand->flags & MN10300_OPERAND_MEMADDR) != 0)
|
||||||
(*info->print_address_func) (value, info);
|
(*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
|
else
|
||||||
(*info->fprintf_func) (info->stream, "%d", value);
|
(*info->fprintf_func) (info->stream, "%d", value);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user