auto import from //depot/cupcake/@135843
diff --git a/libc/arch-x86/string/memchr.S b/libc/arch-x86/string/memchr.S
new file mode 100644
index 0000000..d6bcbe6
--- /dev/null
+++ b/libc/arch-x86/string/memchr.S
@@ -0,0 +1,26 @@
+/*	$OpenBSD: memchr.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(memchr)
+	pushl	%edi
+	movl	8(%esp),%edi		/* string address */
+	movl	12(%esp),%eax		/* set character to search for */
+	movl	16(%esp),%ecx		/* set length of search */
+	testl	%ecx,%ecx		/* test for len == 0 */
+	jz	L1
+	cld				/* set search forward */
+	repne				/* search! */
+	scasb
+	jne	L1			/* scan failed, return null */
+	leal	-1(%edi),%eax		/* adjust result of scan */
+	popl	%edi
+	ret
+	.align 2,0x90
+L1:	xorl	%eax,%eax
+	popl	%edi
+	ret