From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 9DF10385840C; Mon, 6 Feb 2023 20:13:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9DF10385840C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1675714431; bh=Svcn/y6jVMFIT8Ij+prXai+TLWR4rzaL7m4kd4bLOn0=; h=From:To:Subject:Date:From; b=gft1uteZHrL2wVjXhMA3oqsfaFBYW+cGYvrCC1DYeeEcsdrgotH/EFU1usGca5ZU9 h0votkAXnIrDR2pj/AORvZEUU+MMLAfVrMNHgpgm/qIAa2HQxd/iXqyJWQr25OCLVK N5+q0ND/FbJJ/3904o8FzcPEmM99nhCgEQ9VXpfs= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc] string: Improve generic strcpy X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/master X-Git-Oldrev: 30c1dfde313fa01e195e0759915f1356effdb7d6 X-Git-Newrev: 3709ed904770b440d68385f3da259008cdf642a6 Message-Id: <20230206201351.9DF10385840C@sourceware.org> Date: Mon, 6 Feb 2023 20:13:51 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3709ed904770b440d68385f3da259008cdf642a6 commit 3709ed904770b440d68385f3da259008cdf642a6 Author: Adhemerval Zanella Date: Tue Jan 31 16:28:42 2023 -0300 string: Improve generic strcpy Now that stpcpy is vectorized based on op_t, it should be better to call it instead of strlen plus memcpy. Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc64-linux-gnu, and powerpc-linux-gnu by removing the arch-specific assembly implementation and disabling multi-arch (it covers both LE and BE for 64 and 32 bits). Reviewed-by: Richard Henderson Reviewed-by: Noah Goldstein Diff: --- string/strcpy.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/string/strcpy.c b/string/strcpy.c index 0345c71d15..d945d8fdf0 100644 --- a/string/strcpy.c +++ b/string/strcpy.c @@ -19,6 +19,9 @@ #include #undef strcpy +/* Disable internal stpcpy optimization, otherwise the __stpcpy might it + generate a strcpy call. */ +#undef __stpcpy #ifndef STRCPY # define STRCPY strcpy @@ -28,6 +31,7 @@ char * STRCPY (char *dest, const char *src) { - return memcpy (dest, src, strlen (src) + 1); + __stpcpy (dest, src); + return dest; } libc_hidden_builtin_def (strcpy)