From d2739d1cd3c6b89f0f4e3b36d2d9b47d5b79e311 Mon Sep 17 00:00:00 2001 From: Frank Mehnert Date: Tue, 28 Jan 2025 14:31:02 +0100 Subject: libc/string/x86_64: fix p2align max number of bytes to skip 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 --- 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(-) (limited to 'libc/string/x86_64') 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 */ -- cgit v1.2.3