[v1,2/3] x86: Modify ENTRY in sysdep.h so that p2align can be specified

Message ID 20210926205306.900081-2-goldstein.w.n@gmail.com
State Committed
Commit fc5bd179ef3a953dff8d1655bd530d0e230ffe71
Headers
Series [v1,1/3] benchtests: Add medium cases and increase iters in bench-memset.c |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Noah Goldstein Sept. 26, 2021, 8:53 p.m. UTC
  No bug.

This change adds a new macro ENTRY_P2ALIGN which takes a second
argument, log2 of the desired function alignment.

The old ENTRY(name) macro is just ENTRY_P2ALIGN(name, 4) so this
doesn't affect any existing functionality.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
---
Note this is a duplicate of:
[v2,1/2] x86: Modify ENTRY in sysdep.h so that p2align can be specified
https://patchwork.sourceware.org/project/glibc/patch/20210922051657.1655745-1-goldstein.w.n@gmail.com/

 sysdeps/x86/sysdep.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
  

Comments

Noah Goldstein Sept. 27, 2021, 4:07 p.m. UTC | #1
On Sun, Sep 26, 2021 at 3:53 PM Noah Goldstein <goldstein.w.n@gmail.com>
wrote:

> No bug.
>
> This change adds a new macro ENTRY_P2ALIGN which takes a second
> argument, log2 of the desired function alignment.
>
> The old ENTRY(name) macro is just ENTRY_P2ALIGN(name, 4) so this
> doesn't affect any existing functionality.
>
> Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
> ---
> Note this is a duplicate of:
> [v2,1/2] x86: Modify ENTRY in sysdep.h so that p2align can be specified
>
> https://patchwork.sourceware.org/project/glibc/patch/20210922051657.1655745-1-goldstein.w.n@gmail.com/
>
>  sysdeps/x86/sysdep.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
> index cac1d762fb..937180c1bd 100644
> --- a/sysdeps/x86/sysdep.h
> +++ b/sysdeps/x86/sysdep.h
> @@ -78,15 +78,18 @@ enum cf_protection_level
>  #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
>
>  /* Define an entry point visible from C.  */
> -#define        ENTRY(name)
>            \
> +#define        ENTRY_P2ALIGN(name, alignment)
>             \
>    .globl C_SYMBOL_NAME(name);
>     \
>    .type C_SYMBOL_NAME(name),@function;
>    \
> -  .align ALIGNARG(4);
>     \
> +  .align ALIGNARG(alignment);
>     \
>    C_LABEL(name)
>             \
>    cfi_startproc;
>    \
>    _CET_ENDBR;
>     \
>    CALL_MCOUNT
>
> +/* Common entry 16 byte aligns.  */
> +#define ENTRY(name) ENTRY_P2ALIGN (name, 4)
> +
>  #undef END
>  #define END(name)
>     \
>    cfi_endproc;
>    \
> --
> 2.25.1
>
> ping
  
H.J. Lu Oct. 8, 2021, 2:27 p.m. UTC | #2
On Sun, Sep 26, 2021 at 1:53 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> No bug.
>
> This change adds a new macro ENTRY_P2ALIGN which takes a second
> argument, log2 of the desired function alignment.
>
> The old ENTRY(name) macro is just ENTRY_P2ALIGN(name, 4) so this
> doesn't affect any existing functionality.
>
> Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
> ---
> Note this is a duplicate of:
> [v2,1/2] x86: Modify ENTRY in sysdep.h so that p2align can be specified
> https://patchwork.sourceware.org/project/glibc/patch/20210922051657.1655745-1-goldstein.w.n@gmail.com/
>
>  sysdeps/x86/sysdep.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
> index cac1d762fb..937180c1bd 100644
> --- a/sysdeps/x86/sysdep.h
> +++ b/sysdeps/x86/sysdep.h
> @@ -78,15 +78,18 @@ enum cf_protection_level
>  #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
>
>  /* Define an entry point visible from C.  */
> -#define        ENTRY(name)                                                           \
> +#define        ENTRY_P2ALIGN(name, alignment)                                        \
>    .globl C_SYMBOL_NAME(name);                                                \
>    .type C_SYMBOL_NAME(name),@function;                                       \
> -  .align ALIGNARG(4);                                                        \
> +  .align ALIGNARG(alignment);                                                \
>    C_LABEL(name)                                                                      \
>    cfi_startproc;                                                             \
>    _CET_ENDBR;                                                                \
>    CALL_MCOUNT
>
> +/* Common entry 16 byte aligns.  */
> +#define ENTRY(name) ENTRY_P2ALIGN (name, 4)
> +
>  #undef END
>  #define END(name)                                                            \
>    cfi_endproc;                                                               \
> --
> 2.25.1
>

LGTM.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>

Thanks.
  
Noah Goldstein Oct. 8, 2021, 5:20 p.m. UTC | #3
On Fri, Oct 8, 2021 at 9:27 AM H.J. Lu <hjl.tools@gmail.com> wrote:

> On Sun, Sep 26, 2021 at 1:53 PM Noah Goldstein <goldstein.w.n@gmail.com>
> wrote:
> >
> > No bug.
> >
> > This change adds a new macro ENTRY_P2ALIGN which takes a second
> > argument, log2 of the desired function alignment.
> >
> > The old ENTRY(name) macro is just ENTRY_P2ALIGN(name, 4) so this
> > doesn't affect any existing functionality.
> >
> > Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
> > ---
> > Note this is a duplicate of:
> > [v2,1/2] x86: Modify ENTRY in sysdep.h so that p2align can be specified
> >
> https://patchwork.sourceware.org/project/glibc/patch/20210922051657.1655745-1-goldstein.w.n@gmail.com/
> >
> >  sysdeps/x86/sysdep.h | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
> > index cac1d762fb..937180c1bd 100644
> > --- a/sysdeps/x86/sysdep.h
> > +++ b/sysdeps/x86/sysdep.h
> > @@ -78,15 +78,18 @@ enum cf_protection_level
> >  #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
> >
> >  /* Define an entry point visible from C.  */
> > -#define        ENTRY(name)
>              \
> > +#define        ENTRY_P2ALIGN(name, alignment)
>               \
> >    .globl C_SYMBOL_NAME(name);
>       \
> >    .type C_SYMBOL_NAME(name),@function;
>      \
> > -  .align ALIGNARG(4);
>       \
> > +  .align ALIGNARG(alignment);
>       \
> >    C_LABEL(name)
>               \
> >    cfi_startproc;
>      \
> >    _CET_ENDBR;
>       \
> >    CALL_MCOUNT
> >
> > +/* Common entry 16 byte aligns.  */
> > +#define ENTRY(name) ENTRY_P2ALIGN (name, 4)
> > +
> >  #undef END
> >  #define END(name)
>       \
> >    cfi_endproc;
>      \
> > --
> > 2.25.1
> >
>
> LGTM.
>
> Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
>
> Thanks.
>

Thanks. Pushed.


>
> --
> H.J.
>
  
Sunil Pandey April 23, 2022, 1:13 a.m. UTC | #4
On Fri, Oct 8, 2021 at 10:20 AM Noah Goldstein via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> On Fri, Oct 8, 2021 at 9:27 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> > On Sun, Sep 26, 2021 at 1:53 PM Noah Goldstein <goldstein.w.n@gmail.com>
> > wrote:
> > >
> > > No bug.
> > >
> > > This change adds a new macro ENTRY_P2ALIGN which takes a second
> > > argument, log2 of the desired function alignment.
> > >
> > > The old ENTRY(name) macro is just ENTRY_P2ALIGN(name, 4) so this
> > > doesn't affect any existing functionality.
> > >
> > > Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
> > > ---
> > > Note this is a duplicate of:
> > > [v2,1/2] x86: Modify ENTRY in sysdep.h so that p2align can be specified
> > >
> > https://patchwork.sourceware.org/project/glibc/patch/20210922051657.1655745-1-goldstein.w.n@gmail.com/
> > >
> > >  sysdeps/x86/sysdep.h | 7 +++++--
> > >  1 file changed, 5 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
> > > index cac1d762fb..937180c1bd 100644
> > > --- a/sysdeps/x86/sysdep.h
> > > +++ b/sysdeps/x86/sysdep.h
> > > @@ -78,15 +78,18 @@ enum cf_protection_level
> > >  #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
> > >
> > >  /* Define an entry point visible from C.  */
> > > -#define        ENTRY(name)
> >              \
> > > +#define        ENTRY_P2ALIGN(name, alignment)
> >               \
> > >    .globl C_SYMBOL_NAME(name);
> >       \
> > >    .type C_SYMBOL_NAME(name),@function;
> >      \
> > > -  .align ALIGNARG(4);
> >       \
> > > +  .align ALIGNARG(alignment);
> >       \
> > >    C_LABEL(name)
> >               \
> > >    cfi_startproc;
> >      \
> > >    _CET_ENDBR;
> >       \
> > >    CALL_MCOUNT
> > >
> > > +/* Common entry 16 byte aligns.  */
> > > +#define ENTRY(name) ENTRY_P2ALIGN (name, 4)
> > > +
> > >  #undef END
> > >  #define END(name)
> >       \
> > >    cfi_endproc;
> >      \
> > > --
> > > 2.25.1
> > >
> >
> > LGTM.
> >
> > Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
> >
> > Thanks.
> >
>
> Thanks. Pushed.
>
>
> >
> > --
> > H.J.
> >

I would like to backport this patch to release branches.
Any comments or objections?

--Sunil
  

Patch

diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
index cac1d762fb..937180c1bd 100644
--- a/sysdeps/x86/sysdep.h
+++ b/sysdeps/x86/sysdep.h
@@ -78,15 +78,18 @@  enum cf_protection_level
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 /* Define an entry point visible from C.  */
-#define	ENTRY(name)							      \
+#define	ENTRY_P2ALIGN(name, alignment)					      \
   .globl C_SYMBOL_NAME(name);						      \
   .type C_SYMBOL_NAME(name),@function;					      \
-  .align ALIGNARG(4);							      \
+  .align ALIGNARG(alignment);						      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
   _CET_ENDBR;								      \
   CALL_MCOUNT
 
+/* Common entry 16 byte aligns.  */
+#define ENTRY(name) ENTRY_P2ALIGN (name, 4)
+
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \