svn commit: trunk/uClibc: include libc/string libc/string/generic etc...

Mike Frysinger vapier at gentoo.org
Mon Jul 20 12:22:07 UTC 2009


On Friday 13 February 2009 07:37:52 Bernhard Reutner-Fischer wrote:
> On Tue, Dec 16, 2008 at 05:36:32PM -0800, vda at uclibc.org wrote:
> >Author: vda
> >Date: 2008-12-16 17:36:31 -0800 (Tue, 16 Dec 2008)
> >New Revision: 24435
> >
> >Log:
> >since gcc -Os hates us and does not inline string ops,
>
> I don't remember offhand if we deliberately turned them off.
>
> >implement inline versions of some of them.
> >Enable only those which result roughly in the same
> >code size as using out-or-line versions.
> >
> >None of this affects users, installed headers won't have
> >any trace of it.
> >
> >+static __always_inline
> >+void *inlined_memchr_const_c(const void *s, int c, size_t count)
> >+{
> >+	void *edi;
> >+	int ecx, eax;
> >+	__asm__ __volatile__(
> >+		"	jecxz	1f\n"
> >+		"	movb	%4, %%al\n" /* const c to %%al */
> >+		"	repne; scasb\n"
> >+		"	leal	-1(%%edi), %%edi\n"
> >+		"	je	2f\n"
> >+		"1:\n"
> >+		"	xorl	%%edi, %%edi\n"
> >+		"2:\n"
> >+		: "=&D" (edi), "=&c" (ecx), "=&a" (eax)
> >+		: "0" (s), "i" (c), "1" (count)
> >+		/* : no clobbers */
> >+	);
>
> Are you sure? Sounds like there is a bug somewhere for it works with any
> optimization level on gcc 4.4 as opposed to anything earlier:
>
> ./include/libc-string_i386.h: In function '__stdio_fwrite':
> ./include/libc-string_i386.h:293: warning: asm operand 4 probably doesn't
> match constraints
> ./include/libc-string_i386.h:293: error: impossible constraint in 'asm'

and now i'm hitting this too.  if a fix isnt coming soon, then i say we just 
disable it until it's actually usable.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.busybox.net/pipermail/uclibc/attachments/20090720/ef9a9c9c/attachment.pgp>


More information about the uClibc mailing list