This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Re: PATCH: PR target/15084: -O/-O2 generate wrong code on structure modification


On Sun, May 16, 2004 at 05:46:39PM +0200, Gabriel Dos Reis wrote:
> Jan Hubicka <hubicka@ucw.cz> writes:
> 
> | > On Wed, Apr 28, 2004 at 12:44:00AM +0200, Jan Hubicka wrote:
> | > > > The problem is movsi_insv_1_rex64 is invalid in 64bit since the 32bit
> | > > > move will be zero extended to 64bit for registers. insv for 64bit
> | > > > should be in DImode. The encloded patch seems to fix the problem
> | > > > for gcc 3.2 and gcc 3.4. I expect it should work for 3.3 and mainline.
> | > > > 
> | > > > 
> | > > > H.J.
> | > > 
> | > > > 2004-04-27  H.J. Lu  <hongjiu.lu@intel.com>
> | > > > 
> | > > > 	* config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
> | > > > 	and renamed to movdi_insv_1_rex64.
> | > > > 	(insv): Support SImode for 32bit and DImode for 64bit.
> | > > 
> | > > This patch looks is fine for mainline and for 3.4.1 week or so later.
> | > > Perhaps it would make sense to duplicate the movsi_insv_1_rex64 pattern
> | > > to SI and DImode version so combine will match if it will convert the
> | > > first one.   I am not sure if it makes some difference since combine has
> | > > some logic to always use word mode.  It would be nice to look into it.
> | > > 
> | > 
> | > I'd like to see mainline, 3.3 and 3.4 get fixed soon one way or the
> | > other. The current compiler just siliently generates the wrong code.
> | > Let me know if I should check in my patch.
> | 
> | It is fine for 3.3/3.4 too if it won't cause any problems for mainline
> | for a week (I would not expect so).
> 
> HJ, what happened on this front?
> 

It is fixed now.


H.J.


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