Messages in this thread | | | Date | Thu, 22 Dec 2011 23:34:54 +0800 | From | "nai.xia" <> | Subject | Re: Question about missing "cld" in x86 string assembly code |
| |
On 2011年12月18日 01:08, Brian Gerst wrote: > On Sat, Dec 17, 2011 at 9:58 AM, Nai Xia<nai.xia@gmail.com> 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@vger.kernel.org >> 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.
Hmm, I get those lines now. Thanks for reply. Seems gcc started to strictly conform to this ABI since 4.3 . But glibc seems still have some leading "cld" string code, maybe just prepared for non-conforming kernels other than Linux.
> > -- > Brian Gerst -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |