Re: Question about missing "cld" in x86 string assembly code

From: Brian Gerst
Date: Sat Dec 17 2011 - 12:09:01 EST


On Sat, Dec 17, 2011 at 9:58 AM, Nai Xia <nai.xia@xxxxxxxxx> wrote:
> Hi Andi,
>
> Seems I used a stale email address of you from a related git commit log,
> so this is a resend, sorry.
>
> =======
> Hi,
>
> I notice that all x86 assembly code for string operations containing
> "scasb, lodsb", etc does not have "cld" at the beginning.
> Is this 100% safe?
> Or in other words, how could we be sure that
> there is no "std" generated by compiler somewhere just before
> the string operations?
>
>
> Thanks,
>
> Nai
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at Âhttp://vger.kernel.org/majordomo-info.html
> Please read the FAQ at Âhttp://www.tux.org/lkml/

The i386 ELF ABI states "The direction flag must be set to the
ââforwardââ (that is, zero) direction before entry and upon exit from
a function." Therefore it can be assumed to be clear, unless
explicitly set.

--
Brian Gerst
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/