[v2] x86: Put wcs{n}len-sse4.1 in the sse4.1 text section
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
dj/TryBot-32bit |
success
|
Build for i686
|
Commit Message
Previously was missing but the two implementations shouldn't get in
the sse2 (generic) text section.
---
sysdeps/x86_64/multiarch/strlen-vec.S | 6 +++++-
sysdeps/x86_64/multiarch/wcslen-sse4_1.S | 1 +
sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S | 1 +
3 files changed, 7 insertions(+), 1 deletion(-)
Comments
On Fri, Jun 24, 2022 at 9:42 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> Previously was missing but the two implementations shouldn't get in
> the sse2 (generic) text section.
> ---
> sysdeps/x86_64/multiarch/strlen-vec.S | 6 +++++-
> sysdeps/x86_64/multiarch/wcslen-sse4_1.S | 1 +
> sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/sysdeps/x86_64/multiarch/strlen-vec.S b/sysdeps/x86_64/multiarch/strlen-vec.S
> index 42b6124dfd..874123d604 100644
> --- a/sysdeps/x86_64/multiarch/strlen-vec.S
> +++ b/sysdeps/x86_64/multiarch/strlen-vec.S
> @@ -28,6 +28,10 @@
> # define SHIFT_RETURN
> #endif
>
> +#ifndef SECTION
> +# define SECTION(p) p
> +#endif
> +
> /* Long lived register in strlen(s), strnlen(s, n) are:
>
> %xmm3 - zero
> @@ -37,7 +41,7 @@
> */
>
>
> -.text
> + .section SECTION(.text),"ax",@progbits
> ENTRY(strlen)
>
> /* Test 64 bytes from %rax for zero. Save result as bitmask in %rdx. */
> diff --git a/sysdeps/x86_64/multiarch/wcslen-sse4_1.S b/sysdeps/x86_64/multiarch/wcslen-sse4_1.S
> index 7e62621afc..e306a77f51 100644
> --- a/sysdeps/x86_64/multiarch/wcslen-sse4_1.S
> +++ b/sysdeps/x86_64/multiarch/wcslen-sse4_1.S
> @@ -1,4 +1,5 @@
> #define AS_WCSLEN
> #define strlen __wcslen_sse4_1
> +#define SECTION(p) p##.sse4.1
>
> #include "strlen-vec.S"
> diff --git a/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S b/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S
> index 5fa51fe07c..d2f7dd6e22 100644
> --- a/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S
> +++ b/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S
> @@ -1,5 +1,6 @@
> #define AS_WCSLEN
> #define AS_STRNLEN
> #define strlen __wcsnlen_sse4_1
> +#define SECTION(p) p##.sse4.1
>
> #include "strlen-vec.S"
> --
> 2.34.1
>
LGTM.
Thanks.
On Fri, Jun 24, 2022 at 10:08 AM H.J. Lu via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> On Fri, Jun 24, 2022 at 9:42 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > Previously was missing but the two implementations shouldn't get in
> > the sse2 (generic) text section.
> > ---
> > sysdeps/x86_64/multiarch/strlen-vec.S | 6 +++++-
> > sysdeps/x86_64/multiarch/wcslen-sse4_1.S | 1 +
> > sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S | 1 +
> > 3 files changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/sysdeps/x86_64/multiarch/strlen-vec.S b/sysdeps/x86_64/multiarch/strlen-vec.S
> > index 42b6124dfd..874123d604 100644
> > --- a/sysdeps/x86_64/multiarch/strlen-vec.S
> > +++ b/sysdeps/x86_64/multiarch/strlen-vec.S
> > @@ -28,6 +28,10 @@
> > # define SHIFT_RETURN
> > #endif
> >
> > +#ifndef SECTION
> > +# define SECTION(p) p
> > +#endif
> > +
> > /* Long lived register in strlen(s), strnlen(s, n) are:
> >
> > %xmm3 - zero
> > @@ -37,7 +41,7 @@
> > */
> >
> >
> > -.text
> > + .section SECTION(.text),"ax",@progbits
> > ENTRY(strlen)
> >
> > /* Test 64 bytes from %rax for zero. Save result as bitmask in %rdx. */
> > diff --git a/sysdeps/x86_64/multiarch/wcslen-sse4_1.S b/sysdeps/x86_64/multiarch/wcslen-sse4_1.S
> > index 7e62621afc..e306a77f51 100644
> > --- a/sysdeps/x86_64/multiarch/wcslen-sse4_1.S
> > +++ b/sysdeps/x86_64/multiarch/wcslen-sse4_1.S
> > @@ -1,4 +1,5 @@
> > #define AS_WCSLEN
> > #define strlen __wcslen_sse4_1
> > +#define SECTION(p) p##.sse4.1
> >
> > #include "strlen-vec.S"
> > diff --git a/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S b/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S
> > index 5fa51fe07c..d2f7dd6e22 100644
> > --- a/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S
> > +++ b/sysdeps/x86_64/multiarch/wcsnlen-sse4_1.S
> > @@ -1,5 +1,6 @@
> > #define AS_WCSLEN
> > #define AS_STRNLEN
> > #define strlen __wcsnlen_sse4_1
> > +#define SECTION(p) p##.sse4.1
> >
> > #include "strlen-vec.S"
> > --
> > 2.34.1
> >
>
> LGTM.
>
> Thanks.
>
> --
> H.J.
I would like to backport this patch to release branches.
Any comments or objections?
--Sunil
@@ -28,6 +28,10 @@
# define SHIFT_RETURN
#endif
+#ifndef SECTION
+# define SECTION(p) p
+#endif
+
/* Long lived register in strlen(s), strnlen(s, n) are:
%xmm3 - zero
@@ -37,7 +41,7 @@
*/
-.text
+ .section SECTION(.text),"ax",@progbits
ENTRY(strlen)
/* Test 64 bytes from %rax for zero. Save result as bitmask in %rdx. */
@@ -1,4 +1,5 @@
#define AS_WCSLEN
#define strlen __wcslen_sse4_1
+#define SECTION(p) p##.sse4.1
#include "strlen-vec.S"
@@ -1,5 +1,6 @@
#define AS_WCSLEN
#define AS_STRNLEN
#define strlen __wcsnlen_sse4_1
+#define SECTION(p) p##.sse4.1
#include "strlen-vec.S"