mirror of
https://github.com/wownero/wowlet.git
synced 2026-10-17 15:21:30 +02:00
45 lines
1.9 KiB
Diff
45 lines
1.9 KiB
Diff
From 6702f69bef6044163acc7715e6ac7e430890ce78 Mon Sep 17 00:00:00 2001
|
|
From: Frank Denis <github@pureftpd.org>
|
|
Date: Wed, 7 Jan 2026 12:00:49 +0100
|
|
Subject: [PATCH] Fix compilation with GCC on aarch64
|
|
|
|
Use unsigned NEON intrinsics everywhere
|
|
|
|
Fixes #1502
|
|
|
|
diff --git a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
|
|
index c5a27e92..bad4ce38 100644
|
|
--- a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
|
|
+++ b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
|
|
@@ -37,7 +37,7 @@ typedef uint64x2_t BlockVec;
|
|
# define XOR128_3(a, b, c) veorq_u64(veorq_u64((a), (b)), (c))
|
|
# define SET64x2(a, b) vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1)
|
|
# define BYTESHL128(a, b) \
|
|
- vreinterpretq_u64_u8(vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_u64(a), 16 - (b)))
|
|
+ vreinterpretq_u64_u8(vextq_u8(vdupq_n_u8(0), vreinterpretq_u8_u64(a), 16 - (b)))
|
|
|
|
# define AES_XENCRYPT(block_vec, rkey) \
|
|
vreinterpretq_u64_u8( \
|
|
@@ -348,12 +348,12 @@ pfx_set_bit(uint8_t ip16[16], const unsigned int bit_index, const uint8_t bit_va
|
|
static void
|
|
pfx_shift_left(uint8_t ip16[16])
|
|
{
|
|
- BlockVec v = LOAD128(ip16);
|
|
- const BlockVec shl = vshlq_n_u8(vreinterpretq_u8_u64(v), 1);
|
|
- const BlockVec msb = vshrq_n_u8(vreinterpretq_u8_u64(v), 7);
|
|
- const BlockVec zero = vdupq_n_u8(0);
|
|
- const BlockVec carries = vextq_u8(vreinterpretq_u8_u64(msb), zero, 1);
|
|
- v = vreinterpretq_u64_u8(vorrq_u8(shl, carries));
|
|
+ BlockVec v = LOAD128(ip16);
|
|
+ const uint8x16_t shl = vshlq_n_u8(vreinterpretq_u8_u64(v), 1);
|
|
+ const uint8x16_t msb = vshrq_n_u8(vreinterpretq_u8_u64(v), 7);
|
|
+ const uint8x16_t zero = vdupq_n_u8(0);
|
|
+ const uint8x16_t carries = vextq_u8(msb, zero, 1);
|
|
+ v = vreinterpretq_u64_u8(vorrq_u8(shl, carries));
|
|
STORE128(ip16, v);
|
|
}
|
|
|
|
--
|
|
2.52.0
|
|
|