This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Visium] Disassemble stop instruction correctly


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.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]