From owner-p4-projects@FreeBSD.ORG Wed Aug 30 21:14:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0611716A4E0; Wed, 30 Aug 2006 21:14:55 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A407916A4DD for ; Wed, 30 Aug 2006 21:14:54 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A19D143D68 for ; Wed, 30 Aug 2006 21:14:50 +0000 (GMT) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k7ULEoD4035970 for ; Wed, 30 Aug 2006 21:14:50 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k7ULEoOS035963 for perforce@freebsd.org; Wed, 30 Aug 2006 21:14:50 GMT (envelope-from gonzo@FreeBSD.org) Date: Wed, 30 Aug 2006 21:14:50 GMT Message-Id: <200608302114.k7ULEoOS035963@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 105362 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Aug 2006 21:14:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=105362 Change 105362 by gonzo@gonzo_hq on 2006/08/30 21:14:31 o Import string functions from NetBSD. Affected files ... .. //depot/projects/mips2/src/lib/libc/mips/string/bcmp.S#2 edit .. //depot/projects/mips2/src/lib/libc/mips/string/bcopy.S#1 add .. //depot/projects/mips2/src/lib/libc/mips/string/bzero.S#2 edit .. //depot/projects/mips2/src/lib/libc/mips/string/ffs.S#1 add .. //depot/projects/mips2/src/lib/libc/mips/string/index.S#2 edit .. //depot/projects/mips2/src/lib/libc/mips/string/memcpy.S#1 add .. //depot/projects/mips2/src/lib/libc/mips/string/memmove.S#1 add .. //depot/projects/mips2/src/lib/libc/mips/string/rindex.S#2 edit .. //depot/projects/mips2/src/lib/libc/mips/string/strcmp.S#1 add .. //depot/projects/mips2/src/lib/libc/mips/string/strlen.S#1 add Differences ... ==== //depot/projects/mips2/src/lib/libc/mips/string/bcmp.S#2 (text+ko) ==== @@ -32,9 +32,7 @@ * SUCH DAMAGE. */ -#include -#define _LOCORE /* XXX not really, just assembly-code source */ -#include /* LWLO/LWHI, SWLO/SWHI */ +#include #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)bcmp.s 8.1 (Berkeley) 6/4/93") @@ -60,8 +58,13 @@ beq a3, zero, 1f subu a2, a2, a3 # subtract from remaining count move v0, v1 # init v0,v1 so unmodified bytes match - LWHI v0, 0(a0) # read 1, 2, or 3 bytes - LWHI v1, 0(a1) +#ifdef __MIPSEB__ + lwl v0, 0(a0) # read 1, 2, or 3 bytes + lwl v1, 0(a1) +#else + lwr v0, 0(a0) # read 1, 2, or 3 bytes + lwr v1, 0(a1) +#endif addu a1, a1, a3 bne v0, v1, nomatch addu a0, a0, a3 @@ -96,8 +99,13 @@ subu a2, a2, a3 # which has to be >= (16-3) & ~3 addu a3, a3, a0 # compute ending address 3: - LWHI v0, 0(a0) # compare words a0 unaligned, a1 aligned - LWLO v0, 3(a0) +#ifdef __MIPSEB__ + lwl v0, 0(a0) # compare words a0 unaligned, a1 aligned + lwr v0, 3(a0) +#else + lwr v0, 0(a0) # compare words a0 unaligned, a1 aligned + lwl v0, 3(a0) +#endif lw v1, 0(a1) addu a0, a0, 4 bne v0, v1, nomatch ==== //depot/projects/mips2/src/lib/libc/mips/string/bzero.S#2 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. */ -#include +#include #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)bzero.s 8.1 (Berkeley) 6/4/93") @@ -40,9 +40,6 @@ #endif /* LIBC_SCCS and not lint */ -#define _LOCORE /* XXX not really, just assembly-code source */ -#include - #ifdef __ABICALLS__ .abicalls #endif @@ -56,7 +53,11 @@ and a3, a3, 3 beq a3, zero, 1f # skip if word aligned subu a1, a1, a3 # subtract from remaining count - SWHI zero, 0(a0) # clear 1, 2, or 3 bytes to align +#ifdef __MIPSEB__ + swl zero, 0(a0) # clear 1, 2, or 3 bytes to align +#else + swr zero, 0(a0) # clear 1, 2, or 3 bytes to align +#endif addu a0, a0, a3 1: and v0, a1, 3 # compute number of words left ==== //depot/projects/mips2/src/lib/libc/mips/string/index.S#2 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. */ -#include +#include #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)index.s 8.1 (Berkeley) 6/4/93") ==== //depot/projects/mips2/src/lib/libc/mips/string/rindex.S#2 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. */ -#include +#include #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)rindex.s 8.1 (Berkeley) 6/4/93")