This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Visium] Disassemble stop instruction correctly
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: binutils at sourceware dot org
- Date: Tue, 17 Oct 2017 19:03:12 +0200
- Subject: [Visium] Disassemble stop instruction correctly
- Authentication-results: sourceware.org; auth=none
Hi,
the disassembler doesn't print the operands of the stop instructions:
Breakpoint 1, _exit (code=6)
at /home/eric/cvs/newlib-cygwin/libgloss/visium/syscalls.c:119
119 asm volatile ("stop 0,%0" : : "r" (code & 0xff));
(gdb) disass
Dump of assembler code for function _exit:
=> 0x00047a00 <+0>: asl.l r1,r1,24
0x00047a04 <+4>: lsr.l r1,r1,24
0x00047a08 <+8>: stop
0x00047a0c <+12>: brr tr,+0
0x00047a10 <+16>: nop
End of assembler dump.
Fixed thusly, tested for visium-elf. While I was at it, I realized that there
is no binutils maintainer listed for Visium (I'm the GCC maintainer).
OK for the mainline?
2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
binutils/
* MAINTAINERS: Add myself as Visium maintainer.
2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
opcodes/
* visium-dis.c (disassem_class1) <case 0>: Print the operands.
--
Eric Botcazou
diff --git a/binutils/MAINTAINERS b/binutils/MAINTAINERS
index 08a6160..0d4b463 100644
--- a/binutils/MAINTAINERS
+++ b/binutils/MAINTAINERS
@@ -135,6 +135,7 @@ responsibility among the other maintainers.
TILEPro Walter Lee <walt@tilera.com>
VAX Matt Thomas <matt@netbsd.org>
VAX Jan-Benedict Glaw <jbglaw@lug-owl.de>
+ Visium Eric Botcazou <ebotcazou@libertysurf.fr>
VMS Tristan Gingold <tgingold@free.fr>
x86_64 Jan Hubicka <jh@suse.cz>
x86_64 Andreas Jaeger <aj@suse.de>
diff --git a/opcodes/visium-dis.c b/opcodes/visium-dis.c
index eb2930b..cd67cda 100644
--- a/opcodes/visium-dis.c
+++ b/opcodes/visium-dis.c
@@ -189,7 +189,7 @@ disassem_class1 (disassemble_info *info, unsigned int ins)
{
case 0:
/* Stop. */
- (*info->fprintf_func) (info->stream, "stop");
+ (*info->fprintf_func) (info->stream, "stop %d,r%d", indx, source_a);
break;
case 1:
/* BMI - Block Move Indirect. */