target/10205: Incorrect code generated for H8300 "normal" mode

Dhananjay R. Deshpande dhananjayd@kpit.com
Fri Mar 28 07:56:00 GMT 2003


The following reply was made to PR target/10205; it has been noted by GNATS.

From: "Dhananjay R. Deshpande" <dhananjayd@kpit.com>
To: <kazu@gcc.gnu.org>,
	<gcc-bugs@gcc.gnu.org>,
	<mnmoran@bellsouth.net>,
	<gcc-gnats@gcc.gnu.org>,
	<gcc-patches@gcc.gnu.org>
Cc: "Kazu Hirata" <kazu@cs.umass.edu>
Subject: Re: target/10205: Incorrect code generated for H8300 "normal" mode 
Date: Fri, 28 Mar 2003 13:01:11 +0530

 Hi,
 
 >Synopsis: Incorrect code generated for H8300 "normal" mode
 
 >State-Changed-From-To: open->analyzed
 >State-Changed-By: kazu
 >State-Changed-When: Thu Mar 27 19:59:48 2003
 >State-Changed-Why:
 >    Still present in mainline.  Here is a smaller testcase.
 =20
 The patch below fixes this. If it is OK, it should be applied to both =
 mainline=20
 and 3.3 branch.
 
 - Dhannajay
 
 Changelog
 
 2003-03-28  Dhananjay Deshpande  <dhananjayd@kpit.com>
 
 	  PR target/10205
         * config/h8300/h8300.c (h8300_initial_elimination_offset): =
 Remove hack in=20
 	  adjustment of offset for normal mode.
 
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D
 --- h8300.c.orig	Fri Mar 28 12:07:21 2003
 +++ h8300.c	Fri Mar 28 12:04:57 2003
 @@ -1717,7 +1717,8 @@ h8300_initial_elimination_offset (from,=20
    int offset =3D 0;
 =20
    if (from =3D=3D ARG_POINTER_REGNUM && to =3D=3D FRAME_POINTER_REGNUM)
 -    offset =3D UNITS_PER_WORD + frame_pointer_needed * UNITS_PER_WORD;
 +    offset =3D (POINTER_SIZE / BITS_PER_UNIT) + frame_pointer_needed *
 +                                               UNITS_PER_WORD;
    else if (from =3D=3D RETURN_ADDRESS_POINTER_REGNUM && to =3D=3D =
 FRAME_POINTER_REGNUM)
      offset =3D frame_pointer_needed * UNITS_PER_WORD;
    else
 @@ -1734,11 +1735,8 @@ h8300_initial_elimination_offset (from,=20
        offset +=3D round_frame_size (get_frame_size ());
 =20
        if (from =3D=3D ARG_POINTER_REGNUM && to =3D=3D =
 STACK_POINTER_REGNUM)
 -	offset +=3D UNITS_PER_WORD;	/* Skip saved PC */
 +        offset +=3D (POINTER_SIZE / BITS_PER_UNIT);       /* Skip saved =
 PC */
      }
 -
 -  if ((TARGET_H8300H || TARGET_H8300S) && TARGET_NORMAL_MODE)
 -    offset -=3D 2;
 =20
    return offset;
  }
 
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D



More information about the Gcc-prs mailing list