Support functions for ARM and vector operations.
More...
Go to the source code of this file.
|
uint64x2_t | PMULL_00 (const uint64x2_t a, const uint64x2_t b) |
| Polynomial multiplication. More...
|
|
uint64x2_t | PMULL_01 (const uint64x2_t a, const uint64x2_t b) |
| Polynomial multiplication. More...
|
|
uint64x2_t | PMULL_10 (const uint64x2_t a, const uint64x2_t b) |
| Polynomial multiplication. More...
|
|
uint64x2_t | PMULL_11 (const uint64x2_t a, const uint64x2_t b) |
| Polynomial multiplication. More...
|
|
uint64x2_t | VEXT_U8 (uint64x2_t a, uint64x2_t b, unsigned int c) |
| Vector extraction. More...
|
|
template<unsigned int C> |
uint64x2_t | VEXT_U8 (uint64x2_t a, uint64x2_t b) |
| Vector extraction. More...
|
|
Support functions for ARM and vector operations.
Definition in file arm_simd.h.
◆ PMULL_00()
uint64x2_t PMULL_00 |
( |
const uint64x2_t |
a, |
|
|
const uint64x2_t |
b |
|
) |
| |
|
inline |
Polynomial multiplication.
- Parameters
-
a | the first term |
b | the second term |
- Returns
- vector product PMULL_00() performs polynomial multiplication and presents the result like Intel's
c = _mm_clmulepi64_si128(a, b, 0x00)
. The 0x00
indicates the low 64-bits of a
and b
are multiplied.
- Note
- An Intel XMM register is composed of 128-bits. The leftmost bit is MSB and numbered 127, while the the rightmost bit is LSB and numbered 0.
- Since
- Crypto++ 8.0
Definition at line 34 of file arm_simd.h.
◆ PMULL_01()
uint64x2_t PMULL_01 |
( |
const uint64x2_t |
a, |
|
|
const uint64x2_t |
b |
|
) |
| |
|
inline |
Polynomial multiplication.
- Parameters
-
a | the first term |
b | the second term |
- Returns
- vector product PMULL_01 performs() polynomial multiplication and presents the result like Intel's
c = _mm_clmulepi64_si128(a, b, 0x01)
. The 0x01
indicates the low 64-bits of a
and high 64-bits of b
are multiplied.
- Note
- An Intel XMM register is composed of 128-bits. The leftmost bit is MSB and numbered 127, while the the rightmost bit is LSB and numbered 0.
- Since
- Crypto++ 8.0
Definition at line 64 of file arm_simd.h.
◆ PMULL_10()
uint64x2_t PMULL_10 |
( |
const uint64x2_t |
a, |
|
|
const uint64x2_t |
b |
|
) |
| |
|
inline |
Polynomial multiplication.
- Parameters
-
a | the first term |
b | the second term |
- Returns
- vector product PMULL_10() performs polynomial multiplication and presents the result like Intel's
c = _mm_clmulepi64_si128(a, b, 0x10)
. The 0x10
indicates the high 64-bits of a
and low 64-bits of b
are multiplied.
- Note
- An Intel XMM register is composed of 128-bits. The leftmost bit is MSB and numbered 127, while the the rightmost bit is LSB and numbered 0.
- Since
- Crypto++ 8.0
Definition at line 94 of file arm_simd.h.
◆ PMULL_11()
uint64x2_t PMULL_11 |
( |
const uint64x2_t |
a, |
|
|
const uint64x2_t |
b |
|
) |
| |
|
inline |
Polynomial multiplication.
- Parameters
-
a | the first term |
b | the second term |
- Returns
- vector product PMULL_11() performs polynomial multiplication and presents the result like Intel's
c = _mm_clmulepi64_si128(a, b, 0x11)
. The 0x11
indicates the high 64-bits of a
and b
are multiplied.
- Note
- An Intel XMM register is composed of 128-bits. The leftmost bit is MSB and numbered 127, while the the rightmost bit is LSB and numbered 0.
- Since
- Crypto++ 8.0
Definition at line 124 of file arm_simd.h.
◆ VEXT_U8() [1/2]
uint64x2_t VEXT_U8 |
( |
uint64x2_t |
a, |
|
|
uint64x2_t |
b, |
|
|
unsigned int |
c |
|
) |
| |
|
inline |
Vector extraction.
- Parameters
-
a | the first term |
b | the second term |
c | the byte count |
- Returns
- vector VEXT_U8() extracts the first
c
bytes of vector a
and the remaining bytes in b
.
- Since
- Crypto++ 8.0
Definition at line 150 of file arm_simd.h.
◆ VEXT_U8() [2/2]
template<unsigned int C>
uint64x2_t VEXT_U8 |
( |
uint64x2_t |
a, |
|
|
uint64x2_t |
b |
|
) |
| |
|
inline |
Vector extraction.
- Template Parameters
-
- Parameters
-
a | the first term |
b | the second term |
- Returns
- vector VEXT_U8() extracts the first
C
bytes of vector a
and the remaining bytes in b
.
- Since
- Crypto++ 8.0
Definition at line 172 of file arm_simd.h.