OLD | NEW |
1 /*===---- wmmintrin.h - AES intrinsics ------------------------------------=== | 1 /*===---- wmmintrin.h - AES intrinsics ------------------------------------=== |
2 * | 2 * |
3 * Permission is hereby granted, free of charge, to any person obtaining a copy | 3 * Permission is hereby granted, free of charge, to any person obtaining a copy |
4 * of this software and associated documentation files (the "Software"), to deal | 4 * of this software and associated documentation files (the "Software"), to deal |
5 * in the Software without restriction, including without limitation the rights | 5 * in the Software without restriction, including without limitation the rights |
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | 6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
7 * copies of the Software, and to permit persons to whom the Software is | 7 * copies of the Software, and to permit persons to whom the Software is |
8 * furnished to do so, subject to the following conditions: | 8 * furnished to do so, subject to the following conditions: |
9 * | 9 * |
10 * The above copyright notice and this permission notice shall be included in | 10 * The above copyright notice and this permission notice shall be included in |
(...skipping 10 matching lines...) Expand all Loading... |
21 *===-----------------------------------------------------------------------=== | 21 *===-----------------------------------------------------------------------=== |
22 */ | 22 */ |
23 | 23 |
24 #ifndef _WMMINTRIN_H | 24 #ifndef _WMMINTRIN_H |
25 #define _WMMINTRIN_H | 25 #define _WMMINTRIN_H |
26 | 26 |
27 #if !defined (__AES__) | 27 #if !defined (__AES__) |
28 # error "AES instructions not enabled" | 28 # error "AES instructions not enabled" |
29 #else | 29 #else |
30 | 30 |
31 #include <smmintrin.h> | 31 #include <xmmintrin.h> |
32 | 32 |
33 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) | 33 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) |
34 _mm_aesenc_si128(__m128i __V, __m128i __R) | 34 _mm_aesenc_si128(__m128i __V, __m128i __R) |
35 { | 35 { |
36 return (__m128i)__builtin_ia32_aesenc128(__V, __R); | 36 return (__m128i)__builtin_ia32_aesenc128(__V, __R); |
37 } | 37 } |
38 | 38 |
39 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) | 39 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) |
40 _mm_aesenclast_si128(__m128i __V, __m128i __R) | 40 _mm_aesenclast_si128(__m128i __V, __m128i __R) |
41 { | 41 { |
(...skipping 16 matching lines...) Expand all Loading... |
58 _mm_aesimc_si128(__m128i __V) | 58 _mm_aesimc_si128(__m128i __V) |
59 { | 59 { |
60 return (__m128i)__builtin_ia32_aesimc128(__V); | 60 return (__m128i)__builtin_ia32_aesimc128(__V); |
61 } | 61 } |
62 | 62 |
63 #define _mm_aeskeygenassist_si128(C, R) \ | 63 #define _mm_aeskeygenassist_si128(C, R) \ |
64 __builtin_ia32_aeskeygenassist128((C), (R)) | 64 __builtin_ia32_aeskeygenassist128((C), (R)) |
65 | 65 |
66 #endif /* __AES__ */ | 66 #endif /* __AES__ */ |
67 #endif /* _WMMINTRIN_H */ | 67 #endif /* _WMMINTRIN_H */ |
OLD | NEW |