blob: 0c6ad3ea0fe5903920d719d9b4e7400b71def51a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0"
*
* Written by Nir Drucker, Shay Gueron and Dusan Kostic,
* AWS Cryptographic Algorithms Group.
*/
#include <inttypes.h>
#include "utilities.h"
#define BITS_IN_QWORD 64ULL
#define BITS_IN_BYTE 8ULL
uint64_t r_bits_vector_weight(IN const r_t *in)
{
uint64_t acc = 0;
for(size_t i = 0; i < (R_BYTES - 1); i++) {
acc += __builtin_popcount(in->raw[i]);
}
acc += __builtin_popcount(in->raw[R_BYTES - 1] & LAST_R_BYTE_MASK);
return acc;
}
|