/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* strncmp(s1, s2, n)
*
* Compare strings (at most n bytes): s1>s2: >0 s1==s2: 0 s1<s2: <0
*
* Fast assembler language version of the following C-program for strncmp
* which represents the `standard' for the C-library.
*
* int
* strncmp(const char *s1, const char *s2, size_t n)
* {
* n++;
* if (s1 == s2)
* return (0);
* while (--n != 0 && *s1 == *s2++)
* if(*s1++ == '\0')
* return(0);
* return ((n == 0) ? 0 : (*s1 - s2[-1]));
* }
*/
#include <sys/asm_linkage.h>
b,a .doneq
.iss2:
2:
3:
b,a .noteq
!
!
b,a .doneq
b,a .doneq
b,a .doneq
b,a .doneq
3:
4:
b,a .noteq
b,a .doneq
b,a .doneq
b,a .doneq
b,a .doneq
.w2cmp:
4:
5:
b,a .noteq
b,a .doneq
b,a .doneq
b,a .doneq
b,a .doneq
b,a .noteq
b,a .doneq
b,a .doneq
b,a .doneq
.noteqb:
6: ret
1:
b,a .doneq