Re: mmx register moves through memory

2005-08-31 Thread Vahur Sinijärv
Richard Henderson wrote: I do not see the point why you should discourage the register allocator from using mmx registers, move through memory is clearly inefficent and enlarges resulting code (if the function containing moves is inlined in several places, even more so). First, what you

Re: mmx register moves through memory

2005-08-31 Thread Vahur Sinijärv
I filed a bug #23660: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23660 Regards, Vahur Richard Guenther wrote: On 8/31/05, Vahur Sinijärv <[EMAIL PROTECTED]> wrote> Hi, No, the problem I wrote about is not fixed. I used GCC from CVS head 30.08.2005. I think you found a different bug, you s

Re: mmx register moves through memory

2005-08-31 Thread Richard Henderson
On Wed, Aug 31, 2005 at 02:23:03PM +0300, Vahur Sinijärv wrote: > So, my question is: Should this requirement of using secondary memory to > move MMX registers between general regs be relaxed ? No. > I do not see the point why you should discourage the register allocator > from using mmx regist

Re: mmx register moves through memory

2005-08-31 Thread Richard Guenther
On 8/31/05, Vahur Sinijärv <[EMAIL PROTECTED]> wrote> Hi, > > No, the problem I wrote about is not fixed. I used GCC from CVS head > 30.08.2005. > I think you found a different bug, you seem to have many unneccessary > uses of secondary memory between moves from MMX reg to MMX reg. The code > I wr

Re: mmx register moves through memory

2005-08-31 Thread Vahur Sinijärv
Hi, No, the problem I wrote about is not fixed. I used GCC from CVS head 30.08.2005. I think you found a different bug, you seem to have many unneccessary uses of secondary memory between moves from MMX reg to MMX reg. The code I wrote about (in i386.c) allows direct moves between MMX regs, but p

Re: mmx register moves through memory

2005-08-31 Thread Prakash Punnoor
Hi, Vahur Sinijärv schrieb: > I've found that latest GCC versions (past 4.0.0 and up to latest in CVS > head) never use 'movd %genreg, %mmxreg' to load mmx registers and always > insists doing it through memory eq. > 'mov %genreg, (mem)' > 'movd (mem), %mmxreg' I haven't read entirely through you

mmx register moves through memory

2005-08-31 Thread Vahur Sinijärv
Hi ! I've found that latest GCC versions (past 4.0.0 and up to latest in CVS head) never use 'movd %genreg, %mmxreg' to load mmx registers and always insists doing it through memory eq. 'mov %genreg, (mem)' 'movd (mem), %mmxreg' Older GCC versions do the same thing directly, without involving