Add ffs and memcmp16 to x86_64.
Change-Id: I652c1356f1c7c52299977181c2cf154386979380
diff --git a/libc/arch-x86_64/string/ffs.S b/libc/arch-x86_64/string/ffs.S
new file mode 100644
index 0000000..2666bc4
--- /dev/null
+++ b/libc/arch-x86_64/string/ffs.S
@@ -0,0 +1,18 @@
+/* $OpenBSD: ffs.S,v 1.1 2004/01/28 01:44:45 mickey Exp $ */
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ * Adapted for NetBSD/x86_64 by Frank van der Linden <fvdl@wasabisystems.com>
+ */
+
+#include <machine/asm.h>
+
+ENTRY(ffs)
+ bsfl %edi,%eax
+ jz L1 /* ZF is set if all bits are 0 */
+ incl %eax /* bits numbered from 1, not 0 */
+ ret
+
+ _ALIGN_TEXT
+L1: xorl %eax,%eax /* clear result */
+ ret
diff --git a/libc/arch-x86_64/x86_64.mk b/libc/arch-x86_64/x86_64.mk
index 244eb56..b17b138 100644
--- a/libc/arch-x86_64/x86_64.mk
+++ b/libc/arch-x86_64/x86_64.mk
@@ -9,6 +9,8 @@
arch-x86_64/bionic/__set_tls.c \
arch-x86_64/bionic/sigsetjmp.S \
arch-x86_64/bionic/syscall.S \
+ arch-x86_64/string/ffs.S \
+ string/memcmp16.c \
_LIBC_ARCH_STATIC_SRC_FILES := \
bionic/dl_iterate_phdr_static.c \