From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25910 invoked by alias); 10 Aug 2002 17:02:04 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 25858 invoked from network); 10 Aug 2002 17:02:04 -0000 Received: from unknown (HELO Cantor.suse.de) (213.95.15.193) by sources.redhat.com with SMTP; 10 Aug 2002 17:02:04 -0000 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id 9B0F7147AE for ; Sat, 10 Aug 2002 19:02:03 +0200 (MEST) Received: from aj by arthur.inka.de with local (Exim 3.34 #1) id 17dZco-0008Fl-00 for libc-hacker@sources.redhat.com; Sat, 10 Aug 2002 19:02:02 +0200 Mail-Copies-To: never To: GNU libc hacker Subject: Re: i386/strchr.S broken? References: From: Andreas Jaeger Date: Sat, 10 Aug 2002 10:02:00 -0000 In-Reply-To: (Andreas Jaeger's message of "Sat, 10 Aug 2002 18:54:03 +0200") Message-ID: User-Agent: Gnus/5.090008 (Oort Gnus v0.08) XEmacs/21.4 (Artificial Intelligence, i386-suse-linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-08/txt/msg00110.txt.bz2 Ignore the patch - I understand the algorithm now. But now I'd like to add a comment to it. Ok to commit to mainline? Andreas 2002-08-10 Andreas Jaeger * sysdeps/i386/strchr.S: Add comment. ============================================================ Index: sysdeps/i386/strchr.S --- sysdeps/i386/strchr.S 6 Jul 2001 04:55:52 -0000 1.11 +++ sysdeps/i386/strchr.S 10 Aug 2002 17:01:19 -0000 @@ -1,6 +1,6 @@ /* strchr (str, ch) -- Return pointer to first occurrence of CH in STR. For Intel 80x86, x>=3. - Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper Some optimisations by Alan Modra @@ -254,7 +254,9 @@ L(71): addl $4, %eax /* We now scan for the byte in which the character was matched. But we have to take care of the case that a NUL char is - found before this in the dword. */ + found before this in the dword. Note that we XORed the %ecx + with the byte we're looking for, therefore the tests below look + reversed. */ L(7): testb %cl, %cl /* is first byte C? */ jz L(6) /* yes => return pointer */ -- Andreas Jaeger SuSE Labs aj@suse.de private aj@arthur.inka.de http://www.suse.de/~aj