strncmp.S revision 1.1
11.1Schristos/* $NetBSD: strncmp.S,v 1.1 2005/12/20 19:28:49 christos Exp $ */ 21.1Schristos 31.1Schristos/*- 41.1Schristos * Copyright (c) 1997 The NetBSD Foundation, Inc. 51.1Schristos * All rights reserved. 61.1Schristos * 71.1Schristos * This code is derived from software contributed to The NetBSD Foundation 81.1Schristos * by Hiroshi Horimoto <horimoto@cs-aoi.cs.sist.ac.jp> and 91.1Schristos * by J.T. Conklin <jtc@NetBSD.org>. 101.1Schristos * 111.1Schristos * Redistribution and use in source and binary forms, with or without 121.1Schristos * modification, are permitted provided that the following conditions 131.1Schristos * are met: 141.1Schristos * 1. Redistributions of source code must retain the above copyright 151.1Schristos * notice, this list of conditions and the following disclaimer. 161.1Schristos * 2. Redistributions in binary form must reproduce the above copyright 171.1Schristos * notice, this list of conditions and the following disclaimer in the 181.1Schristos * documentation and/or other materials provided with the distribution. 191.1Schristos * 3. All advertising materials mentioning features or use of this software 201.1Schristos * must display the following acknowledgement: 211.1Schristos * This product includes software developed by the NetBSD 221.1Schristos * Foundation, Inc. and its contributors. 231.1Schristos * 4. Neither the name of The NetBSD Foundation nor the names of its 241.1Schristos * contributors may be used to endorse or promote products derived 251.1Schristos * from this software without specific prior written permission. 261.1Schristos * 271.1Schristos * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 281.1Schristos * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 291.1Schristos * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 301.1Schristos * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 311.1Schristos * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 321.1Schristos * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 331.1Schristos * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 341.1Schristos * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 351.1Schristos * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 361.1Schristos * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 371.1Schristos * POSSIBILITY OF SUCH DAMAGE. 381.1Schristos */ 391.1Schristos 401.1Schristos#include <machine/asm.h> 411.1Schristos 421.1Schristos#if defined(LIBC_SCCS) && !defined(lint) 431.1Schristos RCSID("$NetBSD: strncmp.S,v 1.1 2005/12/20 19:28:49 christos Exp $") 441.1Schristos#endif /* LIBC_SCCS and not lint */ 451.1Schristos 461.1SchristosENTRY(strncmp) 471.1Schristos movl %sp@(12),%d0 481.1Schristos jeq L4 491.1Schristos movl %sp@(4),%a0 501.1Schristos movl %sp@(8),%a1 511.1SchristosL1: /* unroll by 4 for m680[23]0's */ 521.1Schristos movb %a0@+,%d1 531.1Schristos jeq L2 541.1Schristos subb %a1@+,%d1 551.1Schristos jne L3 561.1Schristos subql #1,%d0 571.1Schristos jeq L4 581.1Schristos 591.1Schristos movb %a0@+,%d1 601.1Schristos jeq L2 611.1Schristos subb %a1@+,%d1 621.1Schristos jne L3 631.1Schristos subql #1,%d0 641.1Schristos jeq L4 651.1Schristos 661.1Schristos movb %a0@+,%d1 671.1Schristos jeq L2 681.1Schristos subb %a1@+,%d1 691.1Schristos jne L3 701.1Schristos subql #1,%d0 711.1Schristos jeq L4 721.1Schristos 731.1Schristos movb %a0@+,%d1 741.1Schristos jeq L2 751.1Schristos subb %a1@+,%d1 761.1Schristos jne L3 771.1Schristos subql #1,%d0 781.1Schristos jne L1 791.1SchristosL4: rts 801.1Schristos 811.1SchristosL2: subb %a1@,%d1 821.1SchristosL3: scs %d0 831.1Schristos EXTBL(%d0) 841.1Schristos movb %d1,%d0 851.1Schristos rts 86