forked from OSchip/llvm-project
				
			This patch adds doxygen comments for the intrinsincs in the header file __wmmintrin_aes.h.
The doxygen comments are automatically generated based on Sony's intrinsics document. Differential Revision: http://reviews.llvm.org/D16562 llvm-svn: 259275
This commit is contained in:
		
							parent
							
								
									cf375935a9
								
							
						
					
					
						commit
						0e19cf2dd8
					
				| 
						 | 
				
			
			@ -28,36 +28,121 @@
 | 
			
		|||
/* Define the default attributes for the functions in this file. */
 | 
			
		||||
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("aes")))
 | 
			
		||||
 | 
			
		||||
/// \brief Performs a single round of AES encryption using the Equivalent
 | 
			
		||||
///    Inverse Cipher, transforming the state value from the first source
 | 
			
		||||
///    operand using a 128-bit round key value contained in the second source
 | 
			
		||||
///    operand, and writes the result to the destination.
 | 
			
		||||
///
 | 
			
		||||
/// \headerfile <x86intrin.h>
 | 
			
		||||
///
 | 
			
		||||
/// This intrinsic corresponds to the \c VAESENC instruction.
 | 
			
		||||
///
 | 
			
		||||
/// \param __V
 | 
			
		||||
///    A 128-bit integer vector containing the state value.
 | 
			
		||||
/// \param __R
 | 
			
		||||
///    A 128-bit integer vector containing the round key value.
 | 
			
		||||
/// \returns A 128-bit integer vector containing the encrypted value.
 | 
			
		||||
static __inline__ __m128i __DEFAULT_FN_ATTRS
 | 
			
		||||
_mm_aesenc_si128(__m128i __V, __m128i __R)
 | 
			
		||||
{
 | 
			
		||||
  return (__m128i)__builtin_ia32_aesenc128(__V, __R);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// \brief Performs the final round of AES encryption using the Equivalent
 | 
			
		||||
///    Inverse Cipher, transforming the state value from the first source
 | 
			
		||||
///    operand using a 128-bit round key value contained in the second source
 | 
			
		||||
///    operand, and writes the result to the destination.
 | 
			
		||||
///
 | 
			
		||||
/// \headerfile <x86intrin.h>
 | 
			
		||||
///
 | 
			
		||||
/// This intrinsic corresponds to the \c VAESENCLAST instruction.
 | 
			
		||||
///
 | 
			
		||||
/// \param __V
 | 
			
		||||
///    A 128-bit integer vector containing the state value.
 | 
			
		||||
/// \param __R
 | 
			
		||||
///    A 128-bit integer vector containing the round key value.
 | 
			
		||||
/// \returns A 128-bit integer vector containing the encrypted value.
 | 
			
		||||
static __inline__ __m128i __DEFAULT_FN_ATTRS
 | 
			
		||||
_mm_aesenclast_si128(__m128i __V, __m128i __R)
 | 
			
		||||
{
 | 
			
		||||
  return (__m128i)__builtin_ia32_aesenclast128(__V, __R);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// \brief Performs a single round of AES decryption using the Equivalent
 | 
			
		||||
///    Inverse Cipher, transforming the state value from the first source
 | 
			
		||||
///    operand using a 128-bit round key value contained in the second source
 | 
			
		||||
///    operand, and writes the result to the destination.
 | 
			
		||||
///
 | 
			
		||||
/// \headerfile <x86intrin.h>
 | 
			
		||||
///
 | 
			
		||||
/// This intrinsic corresponds to the \c VAESDEC instruction.
 | 
			
		||||
///
 | 
			
		||||
/// \param __V
 | 
			
		||||
///    A 128-bit integer vector containing the state value.
 | 
			
		||||
/// \param __R
 | 
			
		||||
///    A 128-bit integer vector containing the round key value.
 | 
			
		||||
/// \returns A 128-bit integer vector containing the decrypted value.
 | 
			
		||||
static __inline__ __m128i __DEFAULT_FN_ATTRS
 | 
			
		||||
_mm_aesdec_si128(__m128i __V, __m128i __R)
 | 
			
		||||
{
 | 
			
		||||
  return (__m128i)__builtin_ia32_aesdec128(__V, __R);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// \brief Performs the final round of AES decryption using the Equivalent
 | 
			
		||||
///    Inverse Cipher, transforming the state value from the first source
 | 
			
		||||
///    operand using a 128-bit round key value contained in the second source
 | 
			
		||||
///    operand, and writes the result to the destination.
 | 
			
		||||
///
 | 
			
		||||
/// \headerfile <x86intrin.h>
 | 
			
		||||
///
 | 
			
		||||
/// This intrinsic corresponds to the \c VAESDECLAST instruction.
 | 
			
		||||
///
 | 
			
		||||
/// \param __V
 | 
			
		||||
///    A 128-bit integer vector containing the state value.
 | 
			
		||||
/// \param __R
 | 
			
		||||
///    A 128-bit integer vector containing the round key value.
 | 
			
		||||
/// \returns A 128-bit integer vector containing the decrypted value.
 | 
			
		||||
static __inline__ __m128i __DEFAULT_FN_ATTRS
 | 
			
		||||
_mm_aesdeclast_si128(__m128i __V, __m128i __R)
 | 
			
		||||
{
 | 
			
		||||
  return (__m128i)__builtin_ia32_aesdeclast128(__V, __R);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// \brief Applies the AES InvMixColumns() transformation to an expanded key
 | 
			
		||||
///    contained in the source operand, and writes the result to the
 | 
			
		||||
///    destination.
 | 
			
		||||
///
 | 
			
		||||
/// \headerfile <x86intrin.h>
 | 
			
		||||
///
 | 
			
		||||
/// This intrinsic corresponds to the \c VAESIMC instruction.
 | 
			
		||||
///
 | 
			
		||||
/// \param __V
 | 
			
		||||
///    A 128-bit integer vector containing the expanded key.
 | 
			
		||||
/// \returns A 128-bit integer vector containing the transformed value.
 | 
			
		||||
static __inline__ __m128i __DEFAULT_FN_ATTRS
 | 
			
		||||
_mm_aesimc_si128(__m128i __V)
 | 
			
		||||
{
 | 
			
		||||
  return (__m128i)__builtin_ia32_aesimc128(__V);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// \brief Generates a round key for AES encyption, operating on 128-bit data 
 | 
			
		||||
///    specified in the first source operand and using an 8-bit round constant
 | 
			
		||||
///    specified by the second source operand, and writes the result to the 
 | 
			
		||||
///    destination.
 | 
			
		||||
///
 | 
			
		||||
/// \headerfile <x86intrin.h>
 | 
			
		||||
///
 | 
			
		||||
/// \code
 | 
			
		||||
/// __m128i _mm_aeskeygenassist_si128(__m128i C, const int R);
 | 
			
		||||
/// \endcode
 | 
			
		||||
///
 | 
			
		||||
/// This intrinsic corresponds to the \c AESKEYGENASSIST instruction.
 | 
			
		||||
///
 | 
			
		||||
/// \param C
 | 
			
		||||
///    A 128-bit integer vector that is used to generate the AES encryption key.
 | 
			
		||||
/// \param R
 | 
			
		||||
///    An 8-bit round constant used to generate the AES encryption key.
 | 
			
		||||
/// \returns A 128-bit round key for AES encryption.
 | 
			
		||||
#define _mm_aeskeygenassist_si128(C, R) \
 | 
			
		||||
  (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue