| 
    Crypto++ 8.9
    
   Free C++ class library of cryptographic schemes 
   | 
 
Template for AdvancedProcessBlocks and SIMD processing. More...
Go to the source code of this file.
Macros | |
| #define | MAYBE_CONST const | 
| SunCC workaround.   | |
| #define | MAYBE_UNCONST_CAST(T, x) (x) | 
| SunCC workaround.   | |
| #define | M128_CAST(x) ((__m128i *)(void *)(x)) | 
| Clang workaround.   | |
| #define | CONST_M128_CAST(x) ((const __m128i *)(const void *)(x)) | 
| Clang workaround.   | |
Functions | |
| template<typename F1 , typename F6 , typename W > | |
| size_t | AdvancedProcessBlocks128_6x1_NEON (F1 func1, F6 func6, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 1 and 6 blocks.   | |
| template<typename F1 , typename F4 , typename W > | |
| size_t | AdvancedProcessBlocks128_4x1_NEON (F1 func1, F4 func4, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 1 and 4 blocks.   | |
| template<typename F2 , typename F6 , typename W > | |
| size_t | AdvancedProcessBlocks128_6x2_NEON (F2 func2, F6 func6, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 2 and 6 blocks.   | |
| template<typename F2 , typename F6 , typename W > | |
| size_t | AdvancedProcessBlocks128_6x2_SSE (F2 func2, F6 func6, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 2 and 6 blocks.   | |
| template<typename F1 , typename F4 , typename W > | |
| size_t | AdvancedProcessBlocks128_4x1_SSE (F1 func1, F4 func4, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 1 and 4 blocks.   | |
| template<typename F1 , typename F4 , typename W > | |
| size_t | AdvancedProcessBlocks128_4x1_ALTIVEC (F1 func1, F4 func4, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 1 and 4 blocks.   | |
| template<typename F1 , typename F6 , typename W > | |
| size_t | AdvancedProcessBlocks128_6x1_ALTIVEC (F1 func1, F6 func6, const W *subKeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) | 
| AdvancedProcessBlocks for 1 and 6 blocks.   | |
Template for AdvancedProcessBlocks and SIMD processing.
Definition in file adv_simd.h.
| #define MAYBE_CONST const | 
SunCC workaround.
SunCC loses the const on AES_Enc_Block and AES_Dec_Block
Definition at line 590 of file adv_simd.h.
| #define MAYBE_UNCONST_CAST | ( | T, | |
| x | |||
| ) | (x) | 
SunCC workaround.
SunCC loses the const on AES_Enc_Block and AES_Dec_Block
Definition at line 595 of file adv_simd.h.
| #define M128_CAST | ( | x | ) | ((__m128i *)(void *)(x)) | 
Clang workaround.
Clang issues spurious alignment warnings
Definition at line 609 of file adv_simd.h.
| #define CONST_M128_CAST | ( | x | ) | ((const __m128i *)(const void *)(x)) | 
Clang workaround.
Clang issues spurious alignment warnings
Definition at line 614 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 1 and 6 blocks.
| F1 | function to process 1 128-bit block | 
| F6 | function to process 6 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_6x1_NEON processes 6 and 2 NEON SIMD words at a time.
The subkey type is usually word32 or word64. F1 and F6 must use the same word type.
Definition at line 100 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 1 and 4 blocks.
| F1 | function to process 1 128-bit block | 
| F4 | function to process 4 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_4x1_NEON processes 4 and 1 NEON SIMD words at a time.
The subkey type is usually word32 or word64. V is the vector type and it is usually uint32x4_t or uint32x4_t. F1, F4, and W must use the same word and vector type.
Definition at line 254 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 2 and 6 blocks.
| F2 | function to process 2 128-bit blocks | 
| F6 | function to process 6 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_6x2_NEON processes 6 and 2 NEON SIMD words at a time. For a single block the template uses F2 with a zero block.
The subkey type is usually word32 or word64. F2 and F6 must use the same word type.
Definition at line 388 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 2 and 6 blocks.
| F2 | function to process 2 128-bit blocks | 
| F6 | function to process 6 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_6x2_SSE processes 6 and 2 SSE SIMD words at a time. For a single block the template uses F2 with a zero block.
The subkey type is usually word32 or word64. F2 and F6 must use the same word type.
Definition at line 635 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 1 and 4 blocks.
| F1 | function to process 1 128-bit block | 
| F4 | function to process 4 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_4x1_SSE processes 4 and 1 SSE SIMD words at a time.
The subkey type is usually word32 or word64. F1 and F4 must use the same word type.
Definition at line 830 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 1 and 4 blocks.
| F1 | function to process 1 128-bit block | 
| F4 | function to process 4 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_4x1_ALTIVEC processes 4 and 1 Altivec SIMD words at a time.
The subkey type is usually word32 or word64. F1 and F4 must use the same word type.
Definition at line 971 of file adv_simd.h.
      
  | 
  inline | 
AdvancedProcessBlocks for 1 and 6 blocks.
| F1 | function to process 1 128-bit block | 
| F6 | function to process 6 128-bit blocks | 
| W | word type of the subkey table | 
AdvancedProcessBlocks128_6x1_ALTIVEC processes 6 and 1 Altivec SIMD words at a time.
The subkey type is usually word32 or word64. F1 and F6 must use the same word type.
Definition at line 1116 of file adv_simd.h.