Object dump problem for H8/300 target : "adds" ,"subs" problem

Anil Paranjape AnilP1@KPITCummins.com
Mon Jul 14 11:11:00 GMT 2003


Hi Richard,

Sorry for late reply. 
It seems there is still one problem, Object dump is not generated properly 
with "adds" and "subs" instructions.
Following is the example,

foo.c
***************************
foo()
{
int a;
}
***************************

h8300-elf-gcc -c -o foo.o foo.c
h8300-elf-objdump -d foo.o >foo.dmp

Contents of foo.dmp are 
*********************************************************
foo.o:     file format elf32-h8300

Disassembly of section .text:

00000000 <_foo>:
   0:	6d f6       	6d f6             mov.w	r6,@-r7
   2:	0d 76       	0d 76             mov.w	r7,r6
   4:	1b 87       	1b 87             subs	#2,er7
   6:	0d 20       	0d 20             mov.w	r2,r0
   8:	0b 87       	0b 87             adds	#2,er7
   a:	6d 76       	6d 76             mov.w	@r7+,r6
   c:	54 70       	54 70             rts	
***********************************************************

The problem is for h8300 target, object dump shows "er7" instead of "r7".
But previous problem is solved ( "e7" instead of "r7").

Above problem is observed on both mainline & branch.
I am using binutils-030711.

Regards,
Anil


-----Original Message-----
From: Anil Paranjape 
Sent: Friday, July 11, 2003 12:25 PM
To: 'Richard Sandiford'
Cc: binutils@sources.redhat.com
Subject: RE: Object dump problem for H8/300 target : problem solved


Hi Richard,

Objdump problem is tested for H8/300 target using snapshot from binutils.
It is working fine now.

Thanks for your mail.

Warm Regards,
Anil

-----Original Message-----
From: Richard Sandiford [mailto:rsandifo@redhat.com]
Sent: Tuesday, July 08, 2003 3:21 PM
To: Anil Paranjape
Cc: binutils@sources.redhat.com
Subject: Re: Object dump problem for H8/300 target


"Anil Paranjape" <AnilP1@KPITCummins.com> writes:
> I have found a bug in objdump utility for H8/300 target. 
> My binutils version is 2.13.2.1, but same problem is also observed in binutils version 2.14 also.
> [...]
>    0:   6d f6           6d f6             mov.w r6,@-e7
> [...]
> The problem is, dump file is showing "-e7" instead of "-r7".

The attached patch should fix this for 2.14.  It's no longer
a problem on trunk.

Tested on h8300-elf, no regressions.  OK for branch?

Richard


	* h8300-dis.c (bfd_h8_disassemble): Mask off the high bit of rd and rd
	for INC and DEC operands.

Index: opcodes/h8300-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/h8300-dis.c,v
retrieving revision 1.12
diff -u -d -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.12 h8300-dis.c
--- opcodes/h8300-dis.c	30 Nov 2002 08:39:46 -0000	1.12
+++ opcodes/h8300-dis.c	8 Jul 2003 09:35:20 -0000
@@ -348,11 +348,11 @@ bfd_h8_disassemble (addr, info, mode)
 			  }
 			else if (x & INC)
 			  {
-			    fprintf (stream, "@%s+", pregnames[rs]);
+			    fprintf (stream, "@%s+", pregnames[rs & 7]);
 			  }
 			else if (x & DEC)
 			  {
-			    fprintf (stream, "@-%s", pregnames[rd]);
+			    fprintf (stream, "@-%s", pregnames[rd & 7]);
 			  }
 			else if (x & IND)
 			  {



More information about the Binutils mailing list