Ping? :-)

Frank

On Dienstag, 28. Januar 2025 14:31:02 MEZ Marcus Haehnel wrote:
> From: Frank Mehnert <[email protected]>
> 
> In a .p2align directive, the maximum number of bytes to skip shall be at
> most the intended alignment minus 1. Certain assemblers warn otherwise:
> 
>     spn.S:97:14: warning: maximum bytes expression exceeds alignment
>                  and has no effect
>    .p2align 3,,8
>                ^
> 
> Change-Id: I5ad48f6f3c3036d8d33d3710ed8d5b5a35bf1fea
> Signed-off-by: Marcus Haehnel <[email protected]>
> ---
>  libc/string/x86_64/strcat.S  | 2 +-
>  libc/string/x86_64/strcspn.S | 2 +-
>  libc/string/x86_64/strlen.S  | 2 +-
>  libc/string/x86_64/strspn.S  | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/libc/string/x86_64/strcat.S b/libc/string/x86_64/strcat.S
> index 55e09e5f1..209e19062 100644
> --- a/libc/string/x86_64/strcat.S
> +++ b/libc/string/x86_64/strcat.S
> @@ -106,7 +106,7 @@ ENTRY (BP_SYM (strcat))
>  
>       /* Align, it is a jump target.  */
>       /* Next 3 insns are 8 bytes total, make sure we decode them in one go */
> -     .p2align 3,,8
> +     .p2align 3,,7
>  3:
>       subq $8,%rax            /* correct pointer increment.  */
>  
> diff --git a/libc/string/x86_64/strcspn.S b/libc/string/x86_64/strcspn.S
> index 7a06c8867..5ef565db7 100644
> --- a/libc/string/x86_64/strcspn.S
> +++ b/libc/string/x86_64/strcspn.S
> @@ -94,7 +94,7 @@ L(1):       leaq -4(%rdx), %rax     /* prepare loop */
>       /* but it will also align entire function to 16 bytes, */
>       /* potentially creating largish padding at link time. */
>       /* We are aligning to 8 bytes instead: */
> -     .p2align 3,,8
> +     .p2align 3,,7
>  
>  L(3):        addq $4, %rax           /* adjust pointer for full loop round */
>  
> diff --git a/libc/string/x86_64/strlen.S b/libc/string/x86_64/strlen.S
> index 9e84326c2..2fe2f58b2 100644
> --- a/libc/string/x86_64/strlen.S
> +++ b/libc/string/x86_64/strlen.S
> @@ -102,7 +102,7 @@ ENTRY (strlen)
>  
>       /* Align, it is a jump target.  */
>       /* Next 3 insns are 8 bytes total, make sure we decode them in one go */
> -     .p2align 3,,8
> +     .p2align 3,,7
>  3:
>       subq $8,%rax            /* correct pointer increment.  */
>  
> diff --git a/libc/string/x86_64/strspn.S b/libc/string/x86_64/strspn.S
> index 366377649..8dc42656b 100644
> --- a/libc/string/x86_64/strspn.S
> +++ b/libc/string/x86_64/strspn.S
> @@ -89,7 +89,7 @@ L(1):       leaq -4(%rdx), %rax     /* prepare loop */
>       /* but it will also align entire function to 16 bytes, */
>       /* potentially creating largish padding at link time. */
>       /* We are aligning to 8 bytes instead: */
> -     .p2align 3,,8
> +     .p2align 3,,7
>  L(3):
>       addq $4, %rax           /* adjust pointer for full loop round */
>  
> 


-- 
Dr.-Ing. Frank Mehnert, [email protected], +49-351-41 883 224

Kernkonzept GmbH.  Sitz: Dresden.  Amtsgericht Dresden, HRB 31129.
Geschäftsführer: Dr.-Ing. Michael Hohmuth


_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to