]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
More consistent entry point alignment in asm files. fix-asm-align
authorNiels Möller <nisse@lysator.liu.se>
Wed, 28 Jan 2026 13:20:37 +0000 (14:20 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Wed, 28 Jan 2026 13:20:37 +0000 (14:20 +0100)
26 files changed:
ChangeLog
arm64/chacha-2core.asm
arm64/chacha-4core.asm
arm64/chacha-core-internal.asm
arm64/crypto/aes128-decrypt.asm
arm64/crypto/aes128-encrypt.asm
arm64/crypto/aes192-decrypt.asm
arm64/crypto/aes192-encrypt.asm
arm64/crypto/aes256-decrypt.asm
arm64/crypto/aes256-encrypt.asm
arm64/crypto/ghash-set-key.asm
arm64/crypto/ghash-update.asm
arm64/crypto/sha1-compress.asm
arm64/crypto/sha256-compress-n.asm
powerpc64/p8/sha256-compress-n.asm
x86/sha1-compress.asm
x86_64/ecc-curve25519-modp.asm
x86_64/ecc-curve448-modp.asm
x86_64/ecc-secp224r1-modp.asm
x86_64/ecc-secp256r1-redc.asm
x86_64/ecc-secp384r1-modp.asm
x86_64/ecc-secp521r1-modp.asm
x86_64/pclmul/ghash-set-key.asm
x86_64/pclmul/ghash-update.asm
x86_64/poly1305-blocks.asm
x86_64/poly1305-internal.asm

index 077ece28b54eba4c7fc4b04bbff0e0dafabefead..7a27d756f87a77d297d13f82f09c29247394c309 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2026-01-28  Niels Möller  <nisse@lysator.liu.se>
+
+       * arm64: Add alignment at each function prologue.
+       * powerpc64/p8/sha256-compress-n.asm: Add consistent alignment.
+       * x86/sha1-compress.asm: Likewise.
+       * x86_64: Likewise, several files.
+
 2026-01-24  Niels Möller  <nisse@lysator.liu.se>
 
        Copy files from https://git.savannah.gnu.org/cgit/config.git/plain/
index e68c5364e30abd9a258c7dd379bfa526ff6fe040..f9454dc282867bb9a504f83e0cd72668d349793e 100644 (file)
@@ -64,6 +64,8 @@ define(`TMP0', `v30')
 define(`TMP1', `v31')
 
        C _chacha_2core(uint32_t *dst, const uint32_t *src, unsigned rounds)
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_chacha_2core)
 
        eor             X1.16b, X1.16b, X1.16b
@@ -218,6 +220,8 @@ C Y3  A15 B15 A13 B13  X3  A12 B12 A14 B14 (Y3 swapped)
        ret
 EPILOGUE(_nettle_chacha_2core)
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_chacha_2core32)
        eor             Y3.16b, Y3.16b, Y3.16b  C {0,0,...,0}
        mov             w3, #1
index 12213126932cd8af6fade9d7b95a5e604f00df75..0ec81e44686189e7718136eca53b8f1b6a54011b 100644 (file)
@@ -136,6 +136,8 @@ define(`TRANSPOSE',`
 ')
 
        C _chacha_4core(uint32_t *dst, const uint32_t *src, unsigned rounds)
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_chacha_4core)
 
        mov             w3, #1
@@ -225,6 +227,8 @@ C Load state and splat
        ret
 EPILOGUE(_nettle_chacha_4core)
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_chacha_4core32)
        eor             TMP2.16b, TMP2.16b, TMP2.16b    C Ignore counter carries
        b               .Lshared_entry
index 9b70e0dc4b760ff1047332eea4844d5cdfa66d49..555f90214312293ed3520576f6c60eb7301b4456 100644 (file)
@@ -81,6 +81,8 @@ define(`QROUND', `
 
        .text
        C _chacha_core(uint32_t *dst, const uint32_t *src, unsigned rounds)
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_chacha_core)
        adr             x3, .Lrot24
        ld1             {ROT24.4s},[x3]
index 70f2a64ece0f403b40b405fe37dca27c5bc49b8d..6b5e7ae8bcc964a700401d12e66b60d4bf5d92c1 100644 (file)
@@ -62,6 +62,8 @@ C aes128_decrypt(const struct aes128_ctx *ctx,
 C                size_t length, uint8_t *dst,
 C                const uint8_t *src)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_aes128_decrypt)
     ld1            {K0.4s,K1.4s,K2.4s,K3.4s},[KEYS],#64
     ld1            {K4.4s,K5.4s,K6.4s,K7.4s},[KEYS],#64
index 3d9b9d902a71e58272d3e6de6a9e3b1a2ae4efbd..66c40b7eff42dce5f3f82bab18f247b82d5fee93 100644 (file)
@@ -62,6 +62,8 @@ C aes128_encrypt(const struct aes128_ctx *ctx,
 C                size_t length, uint8_t *dst,
 C                const uint8_t *src)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_aes128_encrypt)
     ld1            {K0.4s,K1.4s,K2.4s,K3.4s},[KEYS],#64
     ld1            {K4.4s,K5.4s,K6.4s,K7.4s},[KEYS],#64
index b8eb30fd58776b321cd26ebd5d96466dd001d8e9..01f1e2d5d8f0aee6b77745b9ef432c9c0859afa9 100644 (file)
@@ -64,6 +64,8 @@ C aes192_decrypt(const struct aes192_ctx *ctx,
 C                size_t length, uint8_t *dst,
 C                const uint8_t *src)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_aes192_decrypt)
     ld1            {K0.4s,K1.4s,K2.4s,K3.4s},[KEYS],#64
     ld1            {K4.4s,K5.4s,K6.4s,K7.4s},[KEYS],#64
index 5e57d4a487fac6fe34c110eceefd5d9197e20cd6..8eca6b1194794e989899f1bfc35f94c8a27f2015 100644 (file)
@@ -64,6 +64,8 @@ C aes192_encrypt(const struct aes192_ctx *ctx,
 C                size_t length, uint8_t *dst,
 C                const uint8_t *src)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_aes192_encrypt)
     ld1            {K0.4s,K1.4s,K2.4s,K3.4s},[KEYS],#64
     ld1            {K4.4s,K5.4s,K6.4s,K7.4s},[KEYS],#64
index dc1633157bccf5701fc66efa18568e4461cb4de5..e855a0aae6cea80f077b1895728edd1f4f08fa89 100644 (file)
@@ -66,6 +66,8 @@ C aes256_decrypt(const struct aes256_ctx *ctx,
 C                size_t length, uint8_t *dst,
 C                const uint8_t *src)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_aes256_decrypt)
     ld1            {K0.4s,K1.4s,K2.4s,K3.4s},[KEYS],#64
     ld1            {K4.4s,K5.4s,K6.4s,K7.4s},[KEYS],#64
index a6321b8265f7b35e86c58c0465729c024280a838..b55d2aafbedead5c1d50aa9a10dbf2ca670f0055 100644 (file)
@@ -66,6 +66,8 @@ C aes256_encrypt(const struct aes256_ctx *ctx,
 C                size_t length, uint8_t *dst,
 C                const uint8_t *src)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_aes256_encrypt)
     ld1            {K0.4s,K1.4s,K2.4s,K3.4s},[KEYS],#64
     ld1            {K4.4s,K5.4s,K6.4s,K7.4s},[KEYS],#64
index 7e09bb438c165ce469371af9b87633614056fe2d..1c3855e61895ad5d284b7ed6bd7feae45485595f 100644 (file)
@@ -120,6 +120,8 @@ define(`PMUL_PARAM', m4_assert_numargs(3)`
     ext            $2.16b,$2.16b,$2.16b,#8
 ')
 
+    .text
+    ALIGN(16)
 PROLOGUE(_nettle_ghash_set_key)
     ld1            {H.2d},[KEY]
 
index b0e7ea99f8ba04458c1216dab6ad8a92d207440b..f197dc5ec07052e55aa18c0fb9f4b3b3e7ba0a58 100644 (file)
@@ -112,6 +112,8 @@ define(`PMUL_SUM', m4_assert_numargs(3)`
        C                               union nettle_block16 *x,
        C                               size_t blocks, const uint8_t *data)
 
+    .text
+    ALIGN(16)
 PROLOGUE(_nettle_ghash_update)
     mov            x4,#0xC200000000000000
     mov            POLY.d[0],x4
index de3d7b7ef79597c48a8efca4b1954d7478838689..050a844776564d430ea1a5ce38363ebc79ce932c 100644 (file)
@@ -66,6 +66,8 @@ define(`TMP', `v21')
 
 C void nettle_sha1_compress(uint32_t *state, const uint8_t *input)
 
+    .text
+    ALIGN(16)
 PROLOGUE(nettle_sha1_compress)
     C Initialize constants
     mov            w2,#0x7999
index 447dc590f23bd2002b1c00bde65d681f74f35f4a..e6101e45fa532dbcc7b1f07387511cfbc745be08 100644 (file)
@@ -64,6 +64,8 @@ C const uint8_t *
 C _nettle_sha256_compress_n(uint32_t *state, const uint32_t *k,
 C                           size_t blocks, const uint8_t *input)
 
+    .text
+    ALIGN(16)
 PROLOGUE(_nettle_sha256_compress_n)
     cbz            BLOCKS, .Lend
 
index 60cb707ad4d75d08e73f3745f56b6977f106606d..3e7881334478f9d29566d7d39f11bf8056517331 100644 (file)
@@ -206,6 +206,7 @@ define(`DOLOADS', `
 ')
 
 .text
+define(`FUNC_ALIGN', `5')
 PROLOGUE(_nettle_sha256_compress_n)
        cmpldi  NUMBLOCKS, 0
        ble     .done
index 0f72879857a81be1e08843a60e0087089faefa71..67d6447f9ab319598203326c732d11dd7f1f6981 100644 (file)
@@ -158,7 +158,7 @@ define(`ROUND_F3', `
        C nettle_sha1_compress(uint32_t *state, uint8_t *data)
        
        .text
-
+       ALIGN(16)
 PROLOGUE(nettle_sha1_compress)
        C save all registers that need to be saved
        C                          88(%esp)  data
index 9c4a1b9ebf844bd827321168ac643c39d7d4db0b..19e493d4548656271276bf02686d1477dba179c2 100644 (file)
@@ -42,6 +42,8 @@ define(`T0', `%r10')
 define(`T1', `%r11')
 define(`M', `%rbx')
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ecc_curve25519_modp)
        W64_ENTRY(3, 0)
        push    %rbx
index 44c3bf3e1b0938a49b2733cd20d012aa58bb34ef..72aed62f3e21c51cc488c4304a0c6aa979e90ef2 100644 (file)
@@ -46,6 +46,8 @@ define(`T0', `%r11')
 define(`T1', `%r12')
 define(`T2', `%r13')
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ecc_curve448_modp)
        W64_ENTRY(3, 0)
 
index 5cbc1a5d5655ae76f60accbaf6f2f3feda1ff182..35b1394098e8600868e403c03dc40162a7aac1bc 100644 (file)
@@ -46,6 +46,8 @@ define(`F1', `%r10')
 define(`F2', `%r11')
 
        C ecc_secp224r1_modp (const struct ecc_modulo *m, mp_limb_t *rp, mp_limb_t *xp)
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ecc_secp224r1_modp)
        W64_ENTRY(3, 0)
        push    RP
index bffa7726c4805ecd84c9d134c8ed11cbc7d3a667..73d35fec63401ccf018b8d21221e1ad85e9344b4 100644 (file)
@@ -65,6 +65,8 @@ define(`FOLDC', `
        sub     F0, F2
        sbb     F1, $1
 ')
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ecc_secp256r1_redc)
        W64_ENTRY(3, 0)
 
index fbc3a2fdc3a168bdaef92bb4ad828f2064f0b936..03398c47954e9fe9edb5010a03bb61efb6e9cafe 100644 (file)
@@ -56,6 +56,8 @@ define(`TMP', XP)     C Overlap
 
        C void ecc_secp384r1_modp (const struct ecc_modulo *m, mp_limb_t *rp, mp_limb_t *xp)
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ecc_secp384r1_modp)
        W64_ENTRY(3, 0)
 
index 00955fb50cb209da11ee2a86ff7cbce505d894e7..5b6098acb1da0748bda13e2359f2ffd4f18571f7 100644 (file)
@@ -50,6 +50,8 @@ define(`U9', `%r12')
 define(`T0', `%r13')
 define(`T1', `%r14')
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ecc_secp521r1_modp)
        W64_ENTRY(3, 0)
        push    %rbx
index 2b680ce90c852e0f6240356deee7ece0a6e9a1a6..2ce04d1d2e3f8b30099f8e87841479ef400e95c6 100644 (file)
@@ -47,6 +47,8 @@ define(`MASK', `%xmm7')
 
     C void _ghash_set_key (struct gcm_key *ctx, const union nettle_block16 *key)
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ghash_set_key)
        W64_ENTRY(2, 8)
        movdqa  .Lpolynomial(%rip), P
index 917a142744f76be3d7cc5331867bbdc04b49df6c..f2c72fe07dafe4621f63c0d79f96a5bee638d755 100644 (file)
@@ -85,6 +85,8 @@ C registers left for temporaries.
        C                               union nettle_block16 *x,
        C                               size_t blocks, const uint8_t *data)
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_ghash_update)
        W64_ENTRY(4, 14)
        movdqa          .Lpolynomial(%rip), P
index 63bfed3e0b1383a9792fafc319ab845300ef386d..a67f98a7c89bd56f1bc9cf60c9d27fd7d2d3b528 100644 (file)
@@ -48,6 +48,8 @@ define(`F1', `%r12')
 C const uint8_t *
 C _nettle_poly1305_blocks (struct poly1305_ctx *ctx, size_t blocks, const uint8_t *m)
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_poly1305_blocks)
        W64_ENTRY(3, 0)
        mov     MP_PARAM, MP
index 7ce415a4ce32a71ce7f91200e6c6875a14ad29c9..eb1ac102ffb96f845499741ee581f88ab9750b17 100644 (file)
@@ -94,6 +94,8 @@ C     +--+--+--+
 
        C _poly1305_block (struct poly1305_ctx *ctx, const uint8_t m[16], unsigned hi)
        
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_poly1305_block)
        W64_ENTRY(3, 0)
        push    %r12
@@ -170,6 +172,8 @@ define(`H1', `%r10')
 define(`F0', `%r11')
 define(`F1', `%rrd')   C Overlaps CTX
 
+       .text
+       ALIGN(16)
 PROLOGUE(_nettle_poly1305_digest)
        W64_ENTRY(2, 0)