Message ID | 20220624164216.2129400-4-goldstein.w.n@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2] x86: Put wcs{n}len-sse4.1 in the sse4.1 text section | expand |
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
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"