# include <string.h>
# if defined(__GNUC__)
-# define ALIGN1 __attribute__((aligned(1)))
+# define ALIGN64 __attribute__((aligned(64)))
# elif defined(_MSC_VER)
-# define ALIGN1 __declspec(align(1))
+# define ALIGN64 __declspec(align(64))
# else
-# define ALIGN1
+# define ALIGN64
# endif
# define ALIGN_OF(ptr, boundary) \
# define NUMBER_OF_REGISTERS(digits_num, register_size) \
(((digits_num) * 64 + (register_size) - 1) / (register_size))
-typedef uint64_t ALIGN1 uint64_t_align1;
-
static ossl_inline uint64_t get_digit(const uint8_t *in, int in_len);
static ossl_inline void put_digit(uint8_t *out, int out_len, uint64_t digit);
static void to_words52(BN_ULONG *out, int out_len, const BN_ULONG *in,
in_str = (uint8_t *)in;
for (; in_bitsize >= (2 * DIGIT_SIZE); in_bitsize -= (2 * DIGIT_SIZE), out += 2) {
- out[0] = (*(uint64_t_align1 *)in_str) & DIGIT_MASK;
+ out[0] = (*(uint64_t *)in_str) & DIGIT_MASK;
in_str += 6;
- out[1] = ((*(uint64_t_align1 *)in_str) >> 4) & DIGIT_MASK;
+ out[1] = ((*(uint64_t *)in_str) >> 4) & DIGIT_MASK;
in_str += 7;
out_len -= 2;
}
for (; out_bitsize >= (2 * DIGIT_SIZE);
out_bitsize -= (2 * DIGIT_SIZE), in += 2) {
- (*(uint64_t_align1 *)out_str) = in[0];
+ (*(uint64_t *)out_str) = in[0];
out_str += 6;
- (*(uint64_t_align1 *)out_str) ^= in[1] << 4;
+ (*(uint64_t *)out_str) ^= in[1] << 4;
out_str += 7;
}