static_always_inline u8x16
aes_byte_mask (u8x16 x, u8 n_bytes)
{
- u8x16 mask = u8x16_is_greater (u8x16_splat (n_bytes), byte_mask_scale);
- __m128i zero = { };
-
- return (u8x16) _mm_blendv_epi8 (zero, (__m128i) x, (__m128i) mask);
+ return x & u8x16_is_greater (u8x16_splat (n_bytes), byte_mask_scale);
}
static_always_inline u8x16
static const u8x16 aese_prep_mask2 =
{ 12, 13, 14, 15, 12, 13, 14, 15, 12, 13, 14, 15, 12, 13, 14, 15 };
-static inline void
+static_always_inline void
aes128_key_expand_round_neon (u8x16 * rk, u32 rcon)
{
u8x16 r, t, last_round = rk[-1], z = { };
rk[0] = r;
}
-void
+static_always_inline void
aes128_key_expand (u8x16 * rk, const u8x16 * k)
{
rk[0] = k[0];
aes128_key_expand_round_neon (rk + 10, 0x36);
}
-static inline void
+static_always_inline void
aes192_key_expand_round_neon (u8x8 * rk, u32 rcon)
{
u8x8 r, last_round = rk[-1], z = { };
rk[2] = r;
}
-void
+static_always_inline void
aes192_key_expand (u8x16 * ek, const u8x16u * k)
{
u8x8 *rk = (u8x8 *) ek;
}
-static inline void
+static_always_inline void
aes256_key_expand_round_neon (u8x16 * rk, u32 rcon)
{
u8x16 r, t, z = { };
rk[0] = r;
}
-void
+static_always_inline void
aes256_key_expand (u8x16 * rk, u8x16 const *k)
{
rk[0] = k[0];