#include <machine/asm.h>
#if defined(LIBC_SCCS)
RCSID("$NetBSD: strncmp.S,v 1.4 2014/05/22 15:01:57 uebayasi Exp $")
#endif
ENTRY(strncmp)
testq %rdx,%rdx
jmp L2
L1: incq %rdi
incq %rsi
decq %rdx
L2: jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
jne L3
incq %rdi
incq %rsi
decq %rdx
jz L4
movb (%rdi),%al
testb %al,%al
jz L3
cmpb %al,(%rsi)
je L1
L3: movzbl (%rdi),%eax
movzbl (%rsi),%ecx
subl %ecx,%eax
ret
L4: xorl %eax,%eax
ret
END(strncmp)