public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [COMMITTED] Remove all assembly optimizations for htonl and htons
@ 2022-10-24 14:48 Adhemerval Zanella
  2022-10-24 18:43 ` Cristian Rodríguez
  0 siblings, 1 reply; 2+ messages in thread
From: Adhemerval Zanella @ 2022-10-24 14:48 UTC (permalink / raw)
  To: libc-alpha

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.
---
 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(-)
 delete mode 100644 sysdeps/alpha/htonl.S
 delete mode 100644 sysdeps/alpha/htons.S
 delete mode 100644 sysdeps/i386/htons.S
 delete mode 100644 sysdeps/ia64/htonl.S
 delete mode 100644 sysdeps/ia64/htons.S

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)
-- 
2.34.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [COMMITTED] Remove all assembly optimizations for htonl and htons
  2022-10-24 14:48 [COMMITTED] Remove all assembly optimizations for htonl and htons Adhemerval Zanella
@ 2022-10-24 18:43 ` Cristian Rodríguez
  0 siblings, 0 replies; 2+ messages in thread
From: Cristian Rodríguez @ 2022-10-24 18:43 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: libc-alpha

On Mon, Oct 24, 2022 at 11:49 AM Adhemerval Zanella via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> 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.

I didn't have access to those systems to test it.
Thanks, looks ok!

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-10-24 18:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-24 14:48 [COMMITTED] Remove all assembly optimizations for htonl and htons Adhemerval Zanella
2022-10-24 18:43 ` Cristian Rodríguez

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).