Message ID | 20150826173620.GD21261@intel.com |
---|---|
State | New |
Headers | show |
Do we really need this assembly routines? GCC 4.8 on my environment generates for the default inet/htonl.c: $ gcc -m32 -Wall -march=i486 htonl.c -O2 -S -o - .file "htonl.c" .text .p2align 4,,15 .globl htonl .type htonl, @function htonl: .LFB8: .cfi_startproc movl 4(%esp), %eax bswap %eax ret .cfi_endproc .LFE8: .size htonl, .-htonl .ident "GCC: (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4" .section .note.GNU-stack,"",@progbits On 26-08-2015 14:36, H.J. Lu wrote: > Since glibc doesn't support i386 any more, we can move i486/htonl.S to > htonl.S. > > OK for master? > > H.J. > -- > * sysdeps/i386/i486/htonl.S: Moved ... > * sysdeps/i386/htonl.S: here. > --- > sysdeps/i386/htonl.S | 6 ++---- > sysdeps/i386/i486/htonl.S | 34 ---------------------------------- > 2 files changed, 2 insertions(+), 38 deletions(-) > delete mode 100644 sysdeps/i386/i486/htonl.S > > diff --git a/sysdeps/i386/htonl.S b/sysdeps/i386/htonl.S > index 698e976..d39bca5 100644 > --- a/sysdeps/i386/htonl.S > +++ b/sysdeps/i386/htonl.S > @@ -1,4 +1,4 @@ > -/* Change byte order in word. For Intel 80386. > +/* Change byte order in word. For Intel 80x86, x >= 4. > Copyright (C) 1997-2015 Free Software Foundation, Inc. > This file is part of the GNU C Library. > > @@ -27,9 +27,7 @@ > .text > ENTRY (htonl) > movl 4(%esp), %eax > - rorw $8, %ax > - rorl $16, %eax > - rorw $8, %ax > + bswap %eax > ret > END (htonl) > > diff --git a/sysdeps/i386/i486/htonl.S b/sysdeps/i386/i486/htonl.S > deleted file mode 100644 > index d39bca5..0000000 > --- a/sysdeps/i386/i486/htonl.S > +++ /dev/null > @@ -1,34 +0,0 @@ > -/* Change byte order in word. For Intel 80x86, x >= 4. > - Copyright (C) 1997-2015 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 > - <http://www.gnu.org/licenses/>. */ > - > -#include <sysdep.h> > -#include "asm-syntax.h" > - > -/* > - INPUT PARAMETERS: > - word (sp + 4) > -*/ > - > - .text > -ENTRY (htonl) > - movl 4(%esp), %eax > - bswap %eax > - ret > -END (htonl) > - > -weak_alias (htonl, ntohl) >
On Wed, Aug 26, 2015 at 03:44:45PM -0300, Adhemerval Zanella wrote: > Do we really need this assembly routines? GCC 4.8 on my environment generates for the > default inet/htonl.c: > Shouldn't we just do inlining to __builtin_bswap in header or do we already do that?
On 26-08-2015 16:09, Ondřej Bílka wrote: > On Wed, Aug 26, 2015 at 03:44:45PM -0300, Adhemerval Zanella wrote: >> Do we really need this assembly routines? GCC 4.8 on my environment generates for the >> default inet/htonl.c: >> > Shouldn't we just do inlining to __builtin_bswap in header or do we > already do that? > > inet/netinet/in.h already does that.
We probably don't, but removing them should be a separate change from the mechanical directory restructuring HJ is doing now. Of course, doing removals first reduces the number of renamings required.
diff --git a/sysdeps/i386/htonl.S b/sysdeps/i386/htonl.S index 698e976..d39bca5 100644 --- a/sysdeps/i386/htonl.S +++ b/sysdeps/i386/htonl.S @@ -1,4 +1,4 @@ -/* Change byte order in word. For Intel 80386. +/* Change byte order in word. For Intel 80x86, x >= 4. Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -27,9 +27,7 @@ .text ENTRY (htonl) movl 4(%esp), %eax - rorw $8, %ax - rorl $16, %eax - rorw $8, %ax + bswap %eax ret END (htonl) diff --git a/sysdeps/i386/i486/htonl.S b/sysdeps/i386/i486/htonl.S deleted file mode 100644 index d39bca5..0000000 --- a/sysdeps/i386/i486/htonl.S +++ /dev/null @@ -1,34 +0,0 @@ -/* Change byte order in word. For Intel 80x86, x >= 4. - Copyright (C) 1997-2015 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> -#include "asm-syntax.h" - -/* - INPUT PARAMETERS: - word (sp + 4) -*/ - - .text -ENTRY (htonl) - movl 4(%esp), %eax - bswap %eax - ret -END (htonl) - -weak_alias (htonl, ntohl)