This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: i*86 structure assignment bug with global register vars
- To: Alexandre Oliva <aoliva at redhat dot com>
- Subject: Re: i*86 structure assignment bug with global register vars
- From: Fergus Henderson <fjh at cs dot mu dot oz dot au>
- Date: Mon, 6 Nov 2000 18:16:33 +1100
- Cc: Bernd Schmidt <bernds at redhat dot co dot uk>, gcc-bugs at gcc dot gnu dot org
- References: <20001023062133.A5702@ender.cs.mu.oz.au> <Pine.LNX.4.21.0010231107100.1279-100000@host117.cygnus> <20001023235310.A7849@hg.cs.mu.oz.au> <orbswbndwt.fsf@guarana.lsd.ic.unicamp.br>
On 24-Oct-2000, Alexandre Oliva <aoliva@redhat.com> wrote:
> On Oct 23, 2000, Fergus Henderson <fjh@cs.mu.oz.au> wrote:
>
> > Well, I understand that it can't guarantee to compile every such
> > program, but nevertheless it ought to be able to compile the
> > particular program above.
>
> Not if the instructions used to copy memory regions explicitly use esi
> and edi, and couldn't be implemented as efficiently otherwise.
The instructions used to copy memory regions could be and should be
conditional on whether esi and edi are fixed. If esi or edi is fixed,
should use some method (e.g. an ordinary function call to memcpy())
that doesn't require the use of esi and edi. If they're not fixed, it
can go ahead and use the more efficient code.
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
| of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.