4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
30 / Wide character wcschr
() implementation
32 / Algorithm based on Solaris
2.6 gen
/strchr.s implementation
37 ANSI_PRAGMA_WEAK
(wcschr
,function
)
38 ANSI_PRAGMA_WEAK
(wschr
,function
)
40 .align 8 / accounts for .loop alignment and prolog
43 movl
4(%esp
),%eax
/ %eax
= string address
44 movl
8(%esp
),%ecx
/ %ecx
= wchar sought
46 movl
(%eax
),%edx
/ %edx
= wchar of string
47 cmpl %ecx
,%edx
/ find it?
49 testl
%edx
,%edx
/ is it null?
52 movl
4(%eax
),%edx
/ %edx
= wchar of string
53 cmpl %ecx
,%edx
/ find it?
55 testl
%edx
,%edx
/ is it null?
58 movl
8(%eax
),%edx
/ %edx
= wchar of string
59 cmpl %ecx
,%edx
/ find it?
61 testl
%edx
,%edx
/ is it null?
64 movl
12(%eax
),%edx
/ %edx
= wchar of string
65 cmpl %ecx
,%edx
/ find it?
68 testl
%edx
,%edx
/ is it null?
72 xorl
%eax
,%eax
/ %eax
= NULL