/src/botan/build/include/internal/botan/internal/rotate.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Word Rotation Operations |
3 | | * (C) 1999-2008,2023 Jack Lloyd |
4 | | * |
5 | | * Botan is released under the Simplified BSD License (see license.txt) |
6 | | */ |
7 | | |
8 | | #ifndef BOTAN_WORD_ROTATE_H_ |
9 | | #define BOTAN_WORD_ROTATE_H_ |
10 | | |
11 | | #include <botan/types.h> |
12 | | |
13 | | namespace Botan { |
14 | | |
15 | | /** |
16 | | * Bit rotation left by a compile-time constant amount |
17 | | * @param input the input word |
18 | | * @return input rotated left by ROT bits |
19 | | */ |
20 | | template <size_t ROT, typename T> |
21 | | inline constexpr T rotl(T input) |
22 | | requires(ROT > 0 && ROT < 8 * sizeof(T)) |
23 | 40.5M | { |
24 | 40.5M | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); |
25 | 40.5M | } _ZN5Botan4rotlILm1EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 23.2k | { | 24 | 23.2k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 23.2k | } |
_ZN5Botan4rotlILm4EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 53.0k | { | 24 | 53.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 53.0k | } |
_ZN5Botan4rotlILm9EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 53.0k | { | 24 | 53.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 53.0k | } |
_ZN5Botan4rotlILm6EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 53.0k | { | 24 | 53.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 53.0k | } |
_ZN5Botan4rotlILm18EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 966 | { | 24 | 966 | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 966 | } |
_ZN5Botan4rotlILm20EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 53.0k | { | 24 | 53.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 53.0k | } |
_ZN5Botan4rotlILm11EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 72.0k | { | 24 | 72.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 72.0k | } |
_ZN5Botan4rotlILm19EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 19.9k | { | 24 | 19.9k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 19.9k | } |
_ZN5Botan4rotlILm27EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 19.9k | { | 24 | 19.9k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 19.9k | } |
_ZN5Botan4rotlILm3EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 19.9k | { | 24 | 19.9k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 19.9k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm8EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm5EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 19.7M | { | 24 | 19.7M | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 19.7M | } |
Unexecuted instantiation: _ZN5Botan4rotlILm2EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm13EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm7EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm22EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm10EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm24EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm23EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm46EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm36EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm19EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm37EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm33EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm27EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm14EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm42EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm17EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm49EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm39EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm44EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm9EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm54EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm56EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm30EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm34EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm24EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm13EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm50EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm10EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm25EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm29EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm43EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm8EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
Unexecuted instantiation: _ZN5Botan4rotlILm35EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm22EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm15EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm12EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm17EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm14EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm16EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm21EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 52.0k | { | 24 | 52.0k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 52.0k | } |
_ZN5Botan4rotlILm30EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 19.7M | { | 24 | 19.7M | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 19.7M | } |
Unexecuted instantiation: _ZN5Botan4rotlILm16EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotlILm32EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotlILm21EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm1EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 23.6k | { | 24 | 23.6k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 23.6k | } |
_ZN5Botan4rotlILm28EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm20EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm3EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm45EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm61EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm6EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm18EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm15EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm62EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm55EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm41EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
_ZN5Botan4rotlILm2EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 23 | 3.93k | { | 24 | 3.93k | return static_cast<T>((input << ROT) | (input >> (8 * sizeof(T) - ROT))); | 25 | 3.93k | } |
|
26 | | |
27 | | /** |
28 | | * Bit rotation right by a compile-time constant amount |
29 | | * @param input the input word |
30 | | * @return input rotated right by ROT bits |
31 | | */ |
32 | | template <size_t ROT, typename T> |
33 | | inline constexpr T rotr(T input) |
34 | | requires(ROT > 0 && ROT < 8 * sizeof(T)) |
35 | 351M | { |
36 | 351M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); |
37 | 351M | } _ZN5Botan4rotrILm20EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 966 | { | 36 | 966 | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 966 | } |
_ZN5Botan4rotrILm18EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm6EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm4EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 47.3k | { | 36 | 47.3k | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 47.3k | } |
_ZN5Botan4rotrILm1EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 966 | { | 36 | 966 | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 966 | } |
_ZN5Botan4rotrILm9EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 966 | { | 36 | 966 | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 966 | } |
_ZN5Botan4rotrILm8EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.27k | { | 36 | 3.27k | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.27k | } |
Unexecuted instantiation: _ZN5Botan4rotrILm5EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm2EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm22EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm7EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm3EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm13EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm11EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm25EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm17EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm19EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 31.1M | { | 36 | 31.1M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 31.1M | } |
_ZN5Botan4rotrILm16EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 47.0k | { | 36 | 47.0k | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 47.0k | } |
_ZN5Botan4rotrILm24EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.27k | { | 36 | 3.27k | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.27k | } |
_ZN5Botan4rotrILm8EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm35EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm56EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm22EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm25EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm29EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm39EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm43EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm13EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm50EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm10EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm17EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm30EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm34EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm24EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm44EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm9EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm54EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm49EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm36EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm33EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm27EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm14EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm42EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm46EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm19EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm37EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ _ZN5Botan4rotrILm18EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
_ZN5Botan4rotrILm41EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
_ZN5Botan4rotrILm28EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
_ZN5Botan4rotrILm61EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
_ZN5Botan4rotrILm1EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Line | Count | Source | 35 | 3.96M | { | 36 | 3.96M | return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT))); | 37 | 3.96M | } |
Unexecuted instantiation: _ZN5Botan4rotrILm16EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm32EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm40EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm48EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm63EmEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ Unexecuted instantiation: _ZN5Botan4rotrILm12EjEET0_S1_QaagtT_Li0EltT_mlLi8EstS1_ |
38 | | |
39 | | /** |
40 | | * SHA-2 Sigma style function |
41 | | */ |
42 | | template <size_t R1, size_t R2, size_t S, typename T> |
43 | 70.3M | inline constexpr T sigma(T x) { |
44 | 70.3M | return rotr<R1>(x) ^ rotr<R2>(x) ^ (x >> S); |
45 | 70.3M | } unsigned int Botan::sigma<7ul, 18ul, 3ul, unsigned int>(unsigned int) Line | Count | Source | 43 | 31.1M | inline constexpr T sigma(T x) { | 44 | 31.1M | return rotr<R1>(x) ^ rotr<R2>(x) ^ (x >> S); | 45 | 31.1M | } |
unsigned int Botan::sigma<17ul, 19ul, 10ul, unsigned int>(unsigned int) Line | Count | Source | 43 | 31.1M | inline constexpr T sigma(T x) { | 44 | 31.1M | return rotr<R1>(x) ^ rotr<R2>(x) ^ (x >> S); | 45 | 31.1M | } |
unsigned long Botan::sigma<19ul, 61ul, 6ul, unsigned long>(unsigned long) Line | Count | Source | 43 | 3.96M | inline constexpr T sigma(T x) { | 44 | 3.96M | return rotr<R1>(x) ^ rotr<R2>(x) ^ (x >> S); | 45 | 3.96M | } |
unsigned long Botan::sigma<1ul, 8ul, 7ul, unsigned long>(unsigned long) Line | Count | Source | 43 | 3.96M | inline constexpr T sigma(T x) { | 44 | 3.96M | return rotr<R1>(x) ^ rotr<R2>(x) ^ (x >> S); | 45 | 3.96M | } |
|
46 | | |
47 | | /** |
48 | | * SHA-2 Sigma style function |
49 | | */ |
50 | | template <size_t R1, size_t R2, size_t R3, typename T> |
51 | 70.3M | inline constexpr T rho(T x) { |
52 | 70.3M | return rotr<R1>(x) ^ rotr<R2>(x) ^ rotr<R3>(x); |
53 | 70.3M | } unsigned int Botan::rho<2ul, 13ul, 22ul, unsigned int>(unsigned int) Line | Count | Source | 51 | 31.1M | inline constexpr T rho(T x) { | 52 | 31.1M | return rotr<R1>(x) ^ rotr<R2>(x) ^ rotr<R3>(x); | 53 | 31.1M | } |
unsigned int Botan::rho<6ul, 11ul, 25ul, unsigned int>(unsigned int) Line | Count | Source | 51 | 31.1M | inline constexpr T rho(T x) { | 52 | 31.1M | return rotr<R1>(x) ^ rotr<R2>(x) ^ rotr<R3>(x); | 53 | 31.1M | } |
unsigned long Botan::rho<14ul, 18ul, 41ul, unsigned long>(unsigned long) Line | Count | Source | 51 | 3.96M | inline constexpr T rho(T x) { | 52 | 3.96M | return rotr<R1>(x) ^ rotr<R2>(x) ^ rotr<R3>(x); | 53 | 3.96M | } |
unsigned long Botan::rho<28ul, 34ul, 39ul, unsigned long>(unsigned long) Line | Count | Source | 51 | 3.96M | inline constexpr T rho(T x) { | 52 | 3.96M | return rotr<R1>(x) ^ rotr<R2>(x) ^ rotr<R3>(x); | 53 | 3.96M | } |
|
54 | | |
55 | | /** |
56 | | * Bit rotation left, variable rotation amount |
57 | | * @param input the input word |
58 | | * @param rot the number of bits to rotate, must be between 0 and sizeof(T)*8-1 |
59 | | * @return input rotated left by rot bits |
60 | | */ |
61 | | template <typename T> |
62 | | inline constexpr T rotl_var(T input, size_t rot) { |
63 | | return rot ? static_cast<T>((input << rot) | (input >> (sizeof(T) * 8 - rot))) : input; |
64 | | } |
65 | | |
66 | | /** |
67 | | * Bit rotation right, variable rotation amount |
68 | | * @param input the input word |
69 | | * @param rot the number of bits to rotate, must be between 0 and sizeof(T)*8-1 |
70 | | * @return input rotated right by rot bits |
71 | | */ |
72 | | template <typename T> |
73 | | inline constexpr T rotr_var(T input, size_t rot) { |
74 | | return rot ? static_cast<T>((input >> rot) | (input << (sizeof(T) * 8 - rot))) : input; |
75 | | } |
76 | | |
77 | | #if defined(BOTAN_USE_GCC_INLINE_ASM) && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) |
78 | | |
79 | | template <> |
80 | 0 | inline uint32_t rotl_var(uint32_t input, size_t rot) { |
81 | 0 | asm("roll %1,%0" : "+r"(input) : "c"(static_cast<uint8_t>(rot)) : "cc"); |
82 | 0 | return input; |
83 | 0 | } |
84 | | |
85 | | template <> |
86 | 0 | inline uint32_t rotr_var(uint32_t input, size_t rot) { |
87 | 0 | asm("rorl %1,%0" : "+r"(input) : "c"(static_cast<uint8_t>(rot)) : "cc"); |
88 | 0 | return input; |
89 | 0 | } |
90 | | |
91 | | #endif |
92 | | |
93 | | } // namespace Botan |
94 | | |
95 | | #endif |