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