Bladeren bron

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 <marcus.haehnel@kernkonzept.com>
Frank Mehnert 2 maanden geleden
bovenliggende
commit
d2739d1cd3
4 gewijzigde bestanden met toevoegingen van 4 en 4 verwijderingen
  1. 1 1
      libc/string/x86_64/strcat.S
  2. 1 1
      libc/string/x86_64/strcspn.S
  3. 1 1
      libc/string/x86_64/strlen.S
  4. 1 1
      libc/string/x86_64/strspn.S

+ 1 - 1
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.  */
 

+ 1 - 1
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 */
 

+ 1 - 1
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.  */
 

+ 1 - 1
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 */