On Thu, Mar 06, 2008 at 09:44:05AM +0100, Andi Kleen wrote:
> "H. Peter Anvin" <[EMAIL PROTECTED]> writes:
> 
> > Richard Guenther wrote:
> > > We didn't yet run into this issue and build openSUSE with 4.3 since
> > > more than
> > > three month.
> > >
> > 
> > Well, how often do you take a trap inside an overlapping memmove()?
> 
> That was the state with older gcc, but with newer gcc it does not necessarily
> reset the flag before the next function call.
> 
> so e.g. if you have
> 
>         memmove(...)
>         for (... very long loop .... ) {
>                 /* no function calls */
>                 /* signals happen */
>         }
> 
> the signal could see the direction flag

memmove is supposed to (and does) do a cld insn after it finishes the
backward copying.

        Jakub

Reply via email to