public inbox for glibc-cvs@sourceware.org help / color / mirror / Atom feed
From: Adhemerval Zanella <azanella@sourceware.org> To: glibc-cvs@sourceware.org Subject: [glibc] Remove all assembly optimizations for htonl and htons Date: Mon, 24 Oct 2022 14:48:05 +0000 (GMT) [thread overview] Message-ID: <20221024144806.CEAF93858284@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=be930668eccf842d5a1a068a3e01b660d5bcb813 commit be930668eccf842d5a1a068a3e01b660d5bcb813 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Oct 24 11:35:04 2022 -0300 Remove all assembly optimizations for htonl and htons The builtin bswap is already used if optimziation is enabled for GCC 4.8+, so glibc symbols will be used in a very limited scenarios. Also, gcc generated code is quite similar to all but ia64 and i386 htons. Checked on alpha, i686, and ia64. Diff: --- sysdeps/alpha/htonl.S | 43 ------------------------------------------- sysdeps/alpha/htons.S | 39 --------------------------------------- sysdeps/i386/htons.S | 35 ----------------------------------- sysdeps/ia64/htonl.S | 29 ----------------------------- sysdeps/ia64/htons.S | 29 ----------------------------- 5 files changed, 175 deletions(-) diff --git a/sysdeps/alpha/htonl.S b/sysdeps/alpha/htonl.S deleted file mode 100644 index e205295933..0000000000 --- a/sysdeps/alpha/htonl.S +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (C) 1996-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -ENTRY(htonl) -#ifdef PROF - ldgp gp, 0(pv) - .set noat - lda AT, _mcount - jsr AT, (AT), _mcount - .set at - .prologue 1 -#else - .prologue 0 -#endif - - inslh a0, 7, t0 # t0 = 0000000000AABBCC - inswl a0, 3, t1 # t1 = 000000CCDD000000 - or t1, t0, t1 # t1 = 000000CCDDAABBCC - srl t1, 16, t2 # t2 = 0000000000CCDDAA - zapnot t1, 0x0A, t0 # t0 = 00000000DD00BB00 - zapnot t2, 0x05, t3 # t3 = 0000000000CC00AA - addl t0, t3, v0 # v0 = ssssssssDDCCBBAA - ret - - END(htonl) - -weak_alias (htonl, ntohl) diff --git a/sysdeps/alpha/htons.S b/sysdeps/alpha/htons.S deleted file mode 100644 index e44824ef9c..0000000000 --- a/sysdeps/alpha/htons.S +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (C) 1996-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -ENTRY(htons) -#ifdef PROF - ldgp gp, 0(pv) - .set noat - lda AT, _mcount - jsr AT, (AT), _mcount - .set at - .prologue 1 -#else - .prologue 0 -#endif - - extwh a0, 7, t1 # t1 = bb00 - extbl a0, 1, v0 # v0 = 00aa - bis v0, t1, v0 # v0 = bbaa - ret - - END(htons) - -weak_alias (htons, ntohs) diff --git a/sysdeps/i386/htons.S b/sysdeps/i386/htons.S deleted file mode 100644 index c53de9df1c..0000000000 --- a/sysdeps/i386/htons.S +++ /dev/null @@ -1,35 +0,0 @@ -/* Change byte order in word. For Intel 80x86, x >= 3. - Copyright (C) 1997-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <sysdep.h> -#include "asm-syntax.h" - -/* - INPUT PARAMETERS: - word (sp + 4) -*/ - - .text -ENTRY (htons) - movl 4(%esp), %eax - andl $0xffff, %eax - rorw $8, %ax - ret -END (htons) - -weak_alias (htons, ntohs) diff --git a/sysdeps/ia64/htonl.S b/sysdeps/ia64/htonl.S deleted file mode 100644 index 109802967d..0000000000 --- a/sysdeps/ia64/htonl.S +++ /dev/null @@ -1,29 +0,0 @@ -/* Change byte order in 32-bit value. ia64 version. - Copyright (C) 2000-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - - -#include <sysdep.h> - -ENTRY(htonl) - shl ret0 = r32, 32 - ;; - mux1 ret0 = ret0, @rev - ret -END(htonl) - -weak_alias (htonl, ntohl) diff --git a/sysdeps/ia64/htons.S b/sysdeps/ia64/htons.S deleted file mode 100644 index 5d53b33a06..0000000000 --- a/sysdeps/ia64/htons.S +++ /dev/null @@ -1,29 +0,0 @@ -/* Change byte order in 16-bit value. ia64 version. - Copyright (C) 2000-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - - -#include <sysdep.h> - -ENTRY(htons) - shl ret0 = r32, 48 - ;; - mux1 ret0 = ret0, @rev - ret -END(htons) - -weak_alias (htons, ntohs)
reply other threads:[~2022-10-24 14:48 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221024144806.CEAF93858284@sourceware.org \ --to=azanella@sourceware.org \ --cc=glibc-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).