diff options
Diffstat (limited to 'libc/arch-x86/string/memcmp.S')
| -rw-r--r-- | libc/arch-x86/string/memcmp.S | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/libc/arch-x86/string/memcmp.S b/libc/arch-x86/string/memcmp.S deleted file mode 100644 index 1be189a..0000000 --- a/libc/arch-x86/string/memcmp.S +++ /dev/null @@ -1,43 +0,0 @@ -/* $OpenBSD: memcmp.S,v 1.4 2005/08/07 11:30:38 espie Exp $ */ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - -#include <machine/asm.h> - -ENTRY(memcmp) - pushl %edi - pushl %esi - movl 12(%esp),%edi - movl 16(%esp),%esi - cld /* set compare direction forward */ - - movl 20(%esp),%ecx /* compare by words */ - shrl $2,%ecx - repe - cmpsl - jne L5 /* do we match so far? */ - - movl 20(%esp),%ecx /* compare remainder by bytes */ - andl $3,%ecx - repe - cmpsb - jne L6 /* do we match? */ - - xorl %eax,%eax /* we match, return zero */ - popl %esi - popl %edi - ret - -L5: movl $4,%ecx /* We know that one of the next */ - subl %ecx,%edi /* four pairs of bytes do not */ - subl %ecx,%esi /* match. */ - repe - cmpsb -L6: movzbl -1(%edi),%eax /* Perform unsigned comparison */ - movzbl -1(%esi),%edx - subl %edx,%eax - popl %esi - popl %edi - ret |
