@cpp-linter/clang-tidy-win32-x64 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/LICENSE.TXT +279 -0
  2. package/README.md +7 -0
  3. package/bin/clang-tidy.exe +4 -0
  4. package/lib/clang/12.0.1/include/__clang_cuda_builtin_vars.h +121 -0
  5. package/lib/clang/12.0.1/include/__clang_cuda_cmath.h +512 -0
  6. package/lib/clang/12.0.1/include/__clang_cuda_complex_builtins.h +285 -0
  7. package/lib/clang/12.0.1/include/__clang_cuda_device_functions.h +1486 -0
  8. package/lib/clang/12.0.1/include/__clang_cuda_intrinsics.h +486 -0
  9. package/lib/clang/12.0.1/include/__clang_cuda_libdevice_declares.h +462 -0
  10. package/lib/clang/12.0.1/include/__clang_cuda_math.h +348 -0
  11. package/lib/clang/12.0.1/include/__clang_cuda_math_forward_declares.h +284 -0
  12. package/lib/clang/12.0.1/include/__clang_cuda_runtime_wrapper.h +443 -0
  13. package/lib/clang/12.0.1/include/__clang_hip_cmath.h +664 -0
  14. package/lib/clang/12.0.1/include/__clang_hip_libdevice_declares.h +334 -0
  15. package/lib/clang/12.0.1/include/__clang_hip_math.h +1275 -0
  16. package/lib/clang/12.0.1/include/__clang_hip_runtime_wrapper.h +69 -0
  17. package/lib/clang/12.0.1/include/__stddef_max_align_t.h +27 -0
  18. package/lib/clang/12.0.1/include/__wmmintrin_aes.h +140 -0
  19. package/lib/clang/12.0.1/include/__wmmintrin_pclmul.h +48 -0
  20. package/lib/clang/12.0.1/include/adxintrin.h +72 -0
  21. package/lib/clang/12.0.1/include/altivec.h +18239 -0
  22. package/lib/clang/12.0.1/include/ammintrin.h +179 -0
  23. package/lib/clang/12.0.1/include/amxintrin.h +278 -0
  24. package/lib/clang/12.0.1/include/arm64intr.h +35 -0
  25. package/lib/clang/12.0.1/include/arm_acle.h +716 -0
  26. package/lib/clang/12.0.1/include/arm_bf16.h +20 -0
  27. package/lib/clang/12.0.1/include/arm_cde.h +410 -0
  28. package/lib/clang/12.0.1/include/arm_cmse.h +217 -0
  29. package/lib/clang/12.0.1/include/arm_fp16.h +596 -0
  30. package/lib/clang/12.0.1/include/arm_mve.h +19187 -0
  31. package/lib/clang/12.0.1/include/arm_neon.h +68982 -0
  32. package/lib/clang/12.0.1/include/arm_sve.h +18148 -0
  33. package/lib/clang/12.0.1/include/armintr.h +31 -0
  34. package/lib/clang/12.0.1/include/avx2intrin.h +1148 -0
  35. package/lib/clang/12.0.1/include/avx512bf16intrin.h +279 -0
  36. package/lib/clang/12.0.1/include/avx512bitalgintrin.h +83 -0
  37. package/lib/clang/12.0.1/include/avx512bwintrin.h +2024 -0
  38. package/lib/clang/12.0.1/include/avx512cdintrin.h +123 -0
  39. package/lib/clang/12.0.1/include/avx512dqintrin.h +1377 -0
  40. package/lib/clang/12.0.1/include/avx512erintrin.h +271 -0
  41. package/lib/clang/12.0.1/include/avx512fintrin.h +9618 -0
  42. package/lib/clang/12.0.1/include/avx512ifmaintrin.h +68 -0
  43. package/lib/clang/12.0.1/include/avx512ifmavlintrin.h +119 -0
  44. package/lib/clang/12.0.1/include/avx512pfintrin.h +97 -0
  45. package/lib/clang/12.0.1/include/avx512vbmi2intrin.h +357 -0
  46. package/lib/clang/12.0.1/include/avx512vbmiintrin.h +105 -0
  47. package/lib/clang/12.0.1/include/avx512vbmivlintrin.h +188 -0
  48. package/lib/clang/12.0.1/include/avx512vlbf16intrin.h +474 -0
  49. package/lib/clang/12.0.1/include/avx512vlbitalgintrin.h +145 -0
  50. package/lib/clang/12.0.1/include/avx512vlbwintrin.h +2809 -0
  51. package/lib/clang/12.0.1/include/avx512vlcdintrin.h +225 -0
  52. package/lib/clang/12.0.1/include/avx512vldqintrin.h +1167 -0
  53. package/lib/clang/12.0.1/include/avx512vlintrin.h +8445 -0
  54. package/lib/clang/12.0.1/include/avx512vlvbmi2intrin.h +689 -0
  55. package/lib/clang/12.0.1/include/avx512vlvnniintrin.h +304 -0
  56. package/lib/clang/12.0.1/include/avx512vlvp2intersectintrin.h +121 -0
  57. package/lib/clang/12.0.1/include/avx512vnniintrin.h +115 -0
  58. package/lib/clang/12.0.1/include/avx512vp2intersectintrin.h +77 -0
  59. package/lib/clang/12.0.1/include/avx512vpopcntdqintrin.h +54 -0
  60. package/lib/clang/12.0.1/include/avx512vpopcntdqvlintrin.h +91 -0
  61. package/lib/clang/12.0.1/include/avxintrin.h +5053 -0
  62. package/lib/clang/12.0.1/include/avxvnniintrin.h +225 -0
  63. package/lib/clang/12.0.1/include/bmi2intrin.h +81 -0
  64. package/lib/clang/12.0.1/include/bmiintrin.h +427 -0
  65. package/lib/clang/12.0.1/include/cet.h +66 -0
  66. package/lib/clang/12.0.1/include/cetintrin.h +99 -0
  67. package/lib/clang/12.0.1/include/cldemoteintrin.h +36 -0
  68. package/lib/clang/12.0.1/include/clflushoptintrin.h +27 -0
  69. package/lib/clang/12.0.1/include/clwbintrin.h +38 -0
  70. package/lib/clang/12.0.1/include/clzerointrin.h +36 -0
  71. package/lib/clang/12.0.1/include/cpuid.h +319 -0
  72. package/lib/clang/12.0.1/include/cuda_wrappers/algorithm +116 -0
  73. package/lib/clang/12.0.1/include/cuda_wrappers/complex +82 -0
  74. package/lib/clang/12.0.1/include/cuda_wrappers/new +106 -0
  75. package/lib/clang/12.0.1/include/emmintrin.h +4981 -0
  76. package/lib/clang/12.0.1/include/enqcmdintrin.h +63 -0
  77. package/lib/clang/12.0.1/include/f16cintrin.h +162 -0
  78. package/lib/clang/12.0.1/include/float.h +152 -0
  79. package/lib/clang/12.0.1/include/fma4intrin.h +218 -0
  80. package/lib/clang/12.0.1/include/fmaintrin.h +216 -0
  81. package/lib/clang/12.0.1/include/fxsrintrin.h +91 -0
  82. package/lib/clang/12.0.1/include/gfniintrin.h +193 -0
  83. package/lib/clang/12.0.1/include/hresetintrin.h +49 -0
  84. package/lib/clang/12.0.1/include/htmintrin.h +212 -0
  85. package/lib/clang/12.0.1/include/htmxlintrin.h +345 -0
  86. package/lib/clang/12.0.1/include/ia32intrin.h +441 -0
  87. package/lib/clang/12.0.1/include/immintrin.h +600 -0
  88. package/lib/clang/12.0.1/include/intrin.h +585 -0
  89. package/lib/clang/12.0.1/include/inttypes.h +97 -0
  90. package/lib/clang/12.0.1/include/invpcidintrin.h +23 -0
  91. package/lib/clang/12.0.1/include/iso646.h +27 -0
  92. package/lib/clang/12.0.1/include/keylockerintrin.h +506 -0
  93. package/lib/clang/12.0.1/include/limits.h +102 -0
  94. package/lib/clang/12.0.1/include/lwpintrin.h +136 -0
  95. package/lib/clang/12.0.1/include/lzcntintrin.h +104 -0
  96. package/lib/clang/12.0.1/include/mm3dnow.h +157 -0
  97. package/lib/clang/12.0.1/include/mm_malloc.h +67 -0
  98. package/lib/clang/12.0.1/include/mmintrin.h +1558 -0
  99. package/lib/clang/12.0.1/include/module.modulemap +164 -0
  100. package/lib/clang/12.0.1/include/movdirintrin.h +49 -0
  101. package/lib/clang/12.0.1/include/msa.h +573 -0
  102. package/lib/clang/12.0.1/include/mwaitxintrin.h +33 -0
  103. package/lib/clang/12.0.1/include/nmmintrin.h +16 -0
  104. package/lib/clang/12.0.1/include/opencl-c-base.h +589 -0
  105. package/lib/clang/12.0.1/include/opencl-c.h +17162 -0
  106. package/lib/clang/12.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h +42 -0
  107. package/lib/clang/12.0.1/include/openmp_wrappers/cmath +78 -0
  108. package/lib/clang/12.0.1/include/openmp_wrappers/complex +52 -0
  109. package/lib/clang/12.0.1/include/openmp_wrappers/complex.h +27 -0
  110. package/lib/clang/12.0.1/include/openmp_wrappers/complex_cmath.h +388 -0
  111. package/lib/clang/12.0.1/include/openmp_wrappers/math.h +51 -0
  112. package/lib/clang/12.0.1/include/openmp_wrappers/new +70 -0
  113. package/lib/clang/12.0.1/include/pconfigintrin.h +40 -0
  114. package/lib/clang/12.0.1/include/pkuintrin.h +34 -0
  115. package/lib/clang/12.0.1/include/pmmintrin.h +290 -0
  116. package/lib/clang/12.0.1/include/popcntintrin.h +59 -0
  117. package/lib/clang/12.0.1/include/ppc_wrappers/emmintrin.h +2324 -0
  118. package/lib/clang/12.0.1/include/ppc_wrappers/mm_malloc.h +50 -0
  119. package/lib/clang/12.0.1/include/ppc_wrappers/mmintrin.h +1450 -0
  120. package/lib/clang/12.0.1/include/ppc_wrappers/pmmintrin.h +150 -0
  121. package/lib/clang/12.0.1/include/ppc_wrappers/smmintrin.h +109 -0
  122. package/lib/clang/12.0.1/include/ppc_wrappers/tmmintrin.h +495 -0
  123. package/lib/clang/12.0.1/include/ppc_wrappers/xmmintrin.h +1843 -0
  124. package/lib/clang/12.0.1/include/prfchwintrin.h +55 -0
  125. package/lib/clang/12.0.1/include/ptwriteintrin.h +37 -0
  126. package/lib/clang/12.0.1/include/rdseedintrin.h +42 -0
  127. package/lib/clang/12.0.1/include/rtmintrin.h +45 -0
  128. package/lib/clang/12.0.1/include/s390intrin.h +25 -0
  129. package/lib/clang/12.0.1/include/serializeintrin.h +30 -0
  130. package/lib/clang/12.0.1/include/sgxintrin.h +60 -0
  131. package/lib/clang/12.0.1/include/shaintrin.h +61 -0
  132. package/lib/clang/12.0.1/include/smmintrin.h +2430 -0
  133. package/lib/clang/12.0.1/include/stdalign.h +21 -0
  134. package/lib/clang/12.0.1/include/stdarg.h +35 -0
  135. package/lib/clang/12.0.1/include/stdatomic.h +176 -0
  136. package/lib/clang/12.0.1/include/stdbool.h +31 -0
  137. package/lib/clang/12.0.1/include/stddef.h +121 -0
  138. package/lib/clang/12.0.1/include/stdint.h +693 -0
  139. package/lib/clang/12.0.1/include/stdnoreturn.h +16 -0
  140. package/lib/clang/12.0.1/include/tbmintrin.h +140 -0
  141. package/lib/clang/12.0.1/include/tgmath.h +1368 -0
  142. package/lib/clang/12.0.1/include/tmmintrin.h +771 -0
  143. package/lib/clang/12.0.1/include/tsxldtrkintrin.h +56 -0
  144. package/lib/clang/12.0.1/include/uintrintrin.h +150 -0
  145. package/lib/clang/12.0.1/include/unwind.h +327 -0
  146. package/lib/clang/12.0.1/include/vadefs.h +51 -0
  147. package/lib/clang/12.0.1/include/vaesintrin.h +84 -0
  148. package/lib/clang/12.0.1/include/varargs.h +12 -0
  149. package/lib/clang/12.0.1/include/vecintrin.h +10998 -0
  150. package/lib/clang/12.0.1/include/vpclmulqdqintrin.h +28 -0
  151. package/lib/clang/12.0.1/include/waitpkgintrin.h +42 -0
  152. package/lib/clang/12.0.1/include/wasm_simd128.h +1167 -0
  153. package/lib/clang/12.0.1/include/wbnoinvdintrin.h +24 -0
  154. package/lib/clang/12.0.1/include/wmmintrin.h +19 -0
  155. package/lib/clang/12.0.1/include/x86gprintrin.h +23 -0
  156. package/lib/clang/12.0.1/include/x86intrin.h +63 -0
  157. package/lib/clang/12.0.1/include/xmmintrin.h +3008 -0
  158. package/lib/clang/12.0.1/include/xopintrin.h +770 -0
  159. package/lib/clang/12.0.1/include/xsavecintrin.h +34 -0
  160. package/lib/clang/12.0.1/include/xsaveintrin.h +63 -0
  161. package/lib/clang/12.0.1/include/xsaveoptintrin.h +34 -0
  162. package/lib/clang/12.0.1/include/xsavesintrin.h +44 -0
  163. package/lib/clang/12.0.1/include/xtestintrin.h +27 -0
  164. package/package.json +32 -0
@@ -0,0 +1,23 @@
1
+ /*===------------- invpcidintrin.h - INVPCID intrinsic ---------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <invpcidintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __INVPCIDINTRIN_H
15
+ #define __INVPCIDINTRIN_H
16
+
17
+ static __inline__ void
18
+ __attribute__((__always_inline__, __nodebug__, __target__("invpcid")))
19
+ _invpcid(unsigned int __type, void *__descriptor) {
20
+ __builtin_ia32_invpcid(__type, __descriptor);
21
+ }
22
+
23
+ #endif /* __INVPCIDINTRIN_H */
@@ -0,0 +1,27 @@
1
+ /*===---- iso646.h - Standard header for alternate spellings of operators---===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __ISO646_H
11
+ #define __ISO646_H
12
+
13
+ #ifndef __cplusplus
14
+ #define and &&
15
+ #define and_eq &=
16
+ #define bitand &
17
+ #define bitor |
18
+ #define compl ~
19
+ #define not !
20
+ #define not_eq !=
21
+ #define or ||
22
+ #define or_eq |=
23
+ #define xor ^
24
+ #define xor_eq ^=
25
+ #endif
26
+
27
+ #endif /* __ISO646_H */
@@ -0,0 +1,506 @@
1
+ /*===----------------- keylockerintrin.h - KL Intrinsics -------------------===
2
+ *
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
5
+ * in the Software without restriction, including without limitation the rights
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
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __IMMINTRIN_H
25
+ #error "Never use <keylockerintrin.h> directly; include <immintrin.h> instead."
26
+ #endif
27
+
28
+ #ifndef _KEYLOCKERINTRIN_H
29
+ #define _KEYLOCKERINTRIN_H
30
+
31
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
32
+ defined(__KL__)
33
+
34
+ /* Define the default attributes for the functions in this file. */
35
+ #define __DEFAULT_FN_ATTRS \
36
+ __attribute__((__always_inline__, __nodebug__, __target__("kl"),\
37
+ __min_vector_width__(128)))
38
+
39
+ /// Load internal wrapping key from __intkey, __enkey_lo and __enkey_hi. __ctl
40
+ /// will assigned to EAX, whch specifies the KeySource and whether backing up
41
+ /// the key is permitted. The 256-bit encryption key is loaded from the two
42
+ /// explicit operands (__enkey_lo and __enkey_hi). The 128-bit integrity key is
43
+ /// loaded from the implicit operand XMM0 which assigned by __intkey.
44
+ ///
45
+ /// \headerfile <x86intrin.h>
46
+ ///
47
+ /// This intrinsic corresponds to the <c> LOADIWKEY </c> instructions.
48
+ ///
49
+ /// \operation
50
+ /// IF CPL > 0 // LOADKWKEY only allowed at ring 0 (supervisor mode)
51
+ /// GP (0)
52
+ /// FI
53
+ /// IF “LOADIWKEY exiting” VM execution control set
54
+ /// VMexit
55
+ /// FI
56
+ /// IF __ctl[4:1] > 1 // Reserved KeySource encoding used
57
+ /// GP (0)
58
+ /// FI
59
+ /// IF __ctl[31:5] != 0 // Reserved bit in __ctl is set
60
+ /// GP (0)
61
+ /// FI
62
+ /// IF __ctl[0] AND (CPUID.19H.ECX[0] == 0) // NoBackup is not supported on this part
63
+ /// GP (0)
64
+ /// FI
65
+ /// IF (__ctl[4:1] == 1) AND (CPUID.19H.ECX[1] == 0) // KeySource of 1 is not supported on this part
66
+ /// GP (0)
67
+ /// FI
68
+ /// IF (__ctl[4:1] == 0) // KeySource of 0.
69
+ /// IWKey.Encryption Key[127:0] := __enkey_hi[127:0]:
70
+ /// IWKey.Encryption Key[255:128] := __enkey_lo[127:0]
71
+ /// IWKey.IntegrityKey[127:0] := __intkey[127:0]
72
+ /// IWKey.NoBackup := __ctl[0]
73
+ /// IWKey.KeySource := __ctl[4:1]
74
+ /// ZF := 0
75
+ /// ELSE // KeySource of 1. See RDSEED definition for details of randomness
76
+ /// IF HW_NRND_GEN.ready == 1 // Full-entropy random data from RDSEED was received
77
+ /// IWKey.Encryption Key[127:0] := __enkey_hi[127:0] XOR HW_NRND_GEN.data[127:0]
78
+ /// IWKey.Encryption Key[255:128] := __enkey_lo[127:0] XOR HW_NRND_GEN.data[255:128]
79
+ /// IWKey.Encryption Key[255:0] := __enkey_hi[127:0]:__enkey_lo[127:0] XOR HW_NRND_GEN.data[255:0]
80
+ /// IWKey.IntegrityKey[127:0] := __intkey[127:0] XOR HW_NRND_GEN.data[383:256]
81
+ /// IWKey.NoBackup := __ctl[0]
82
+ /// IWKey.KeySource := __ctl[4:1]
83
+ /// ZF := 0
84
+ /// ELSE // Random data was not returned from RDSEED. IWKey was not loaded
85
+ /// ZF := 1
86
+ /// FI
87
+ /// FI
88
+ /// dst := ZF
89
+ /// OF := 0
90
+ /// SF := 0
91
+ /// AF := 0
92
+ /// PF := 0
93
+ /// CF := 0
94
+ /// \endoperation
95
+ static __inline__ void __DEFAULT_FN_ATTRS
96
+ _mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
97
+ __m128i __enkey_lo, __m128i __enkey_hi) {
98
+ __builtin_ia32_loadiwkey (__intkey, __enkey_lo, __enkey_hi, __ctl);
99
+ }
100
+
101
+ /// Wrap a 128-bit AES key from __key into a key handle and output in
102
+ /// ((__m128i*)__h) to ((__m128i*)__h) + 5 and a 32-bit value as return.
103
+ /// The explicit source operand __htype specifies handle restrictions.
104
+ ///
105
+ /// \headerfile <x86intrin.h>
106
+ ///
107
+ /// This intrinsic corresponds to the <c> ENCODEKEY128 </c> instructions.
108
+ ///
109
+ /// \operation
110
+ /// InputKey[127:0] := __key[127:0]
111
+ /// KeyMetadata[2:0] := __htype[2:0]
112
+ /// KeyMetadata[23:3] := 0 // Reserved for future usage
113
+ /// KeyMetadata[27:24] := 0 // KeyType is AES-128 (value of 0)
114
+ /// KeyMetadata[127:28] := 0 // Reserved for future usage
115
+ /// Handle[383:0] := WrapKey128(InputKey[127:0], KeyMetadata[127:0],
116
+ /// IWKey.Integrity Key[127:0], IWKey.Encryption Key[255:0])
117
+ /// dst[0] := IWKey.NoBackup
118
+ /// dst[4:1] := IWKey.KeySource[3:0]
119
+ /// dst[31:5] := 0
120
+ /// MEM[__h+127:__h] := Handle[127:0] // AAD
121
+ /// MEM[__h+255:__h+128] := Handle[255:128] // Integrity Tag
122
+ /// MEM[__h+383:__h+256] := Handle[383:256] // CipherText
123
+ /// MEM[__h+511:__h+384] := 0 // Reserved for future usage
124
+ /// MEM[__h+639:__h+512] := 0 // Reserved for future usage
125
+ /// MEM[__h+767:__h+640] := 0 // Reserved for future usage
126
+ /// OF := 0
127
+ /// SF := 0
128
+ /// ZF := 0
129
+ /// AF := 0
130
+ /// PF := 0
131
+ /// CF := 0
132
+ /// \endoperation
133
+ static __inline__ unsigned int __DEFAULT_FN_ATTRS
134
+ _mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
135
+ return __builtin_ia32_encodekey128_u32(__htype, (__v2di)__key, __h);
136
+ }
137
+
138
+ /// Wrap a 256-bit AES key from __key_hi:__key_lo into a key handle, then
139
+ /// output handle in ((__m128i*)__h) to ((__m128i*)__h) + 6 and
140
+ /// a 32-bit value as return.
141
+ /// The explicit source operand __htype specifies handle restrictions.
142
+ ///
143
+ /// \headerfile <x86intrin.h>
144
+ ///
145
+ /// This intrinsic corresponds to the <c> ENCODEKEY256 </c> instructions.
146
+ ///
147
+ /// \operation
148
+ /// InputKey[127:0] := __key_lo[127:0]
149
+ /// InputKey[255:128] := __key_hi[255:128]
150
+ /// KeyMetadata[2:0] := __htype[2:0]
151
+ /// KeyMetadata[23:3] := 0 // Reserved for future usage
152
+ /// KeyMetadata[27:24] := 1 // KeyType is AES-256 (value of 1)
153
+ /// KeyMetadata[127:28] := 0 // Reserved for future usage
154
+ /// Handle[511:0] := WrapKey256(InputKey[255:0], KeyMetadata[127:0],
155
+ /// IWKey.Integrity Key[127:0], IWKey.Encryption Key[255:0])
156
+ /// dst[0] := IWKey.NoBackup
157
+ /// dst[4:1] := IWKey.KeySource[3:0]
158
+ /// dst[31:5] := 0
159
+ /// MEM[__h+127:__h] := Handle[127:0] // AAD
160
+ /// MEM[__h+255:__h+128] := Handle[255:128] // Tag
161
+ /// MEM[__h+383:__h+256] := Handle[383:256] // CipherText[127:0]
162
+ /// MEM[__h+511:__h+384] := Handle[511:384] // CipherText[255:128]
163
+ /// MEM[__h+639:__h+512] := 0 // Reserved for future usage
164
+ /// MEM[__h+767:__h+640] := 0 // Reserved for future usage
165
+ /// MEM[__h+895:__h+768] := 0 Integrity// Reserved for future usage
166
+ /// OF := 0
167
+ /// SF := 0
168
+ /// ZF := 0
169
+ /// AF := 0
170
+ /// PF := 0
171
+ /// CF := 0
172
+ /// \endoperation
173
+ static __inline__ unsigned int __DEFAULT_FN_ATTRS
174
+ _mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
175
+ void *__h) {
176
+ return __builtin_ia32_encodekey256_u32(__htype, (__v2di)__key_lo,
177
+ (__v2di)__key_hi, __h);
178
+ }
179
+
180
+ /// The AESENC128KL performs 10 rounds of AES to encrypt the __idata using
181
+ /// the 128-bit key in the handle from the __h. It stores the result in the
182
+ /// __odata. And return the affected ZF flag status.
183
+ ///
184
+ /// \headerfile <x86intrin.h>
185
+ ///
186
+ /// This intrinsic corresponds to the <c> AESENC128KL </c> instructions.
187
+ ///
188
+ /// \operation
189
+ /// Handle[383:0] := MEM[__h+383:__h] // Load is not guaranteed to be atomic.
190
+ /// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
191
+ /// (Handle[127:0] AND (CPL > 0)) ||
192
+ /// Handle[383:256] ||
193
+ /// HandleKeyType (Handle[383:0]) != HANDLE_KEY_TYPE_AES128 )
194
+ /// IF (IllegalHandle)
195
+ /// ZF := 1
196
+ /// ELSE
197
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate384 (Handle[383:0], IWKey)
198
+ /// IF (Authentic == 0)
199
+ /// ZF := 1
200
+ /// ELSE
201
+ /// MEM[__odata+127:__odata] := AES128Encrypt (__idata[127:0], UnwrappedKey)
202
+ /// ZF := 0
203
+ /// FI
204
+ /// FI
205
+ /// dst := ZF
206
+ /// OF := 0
207
+ /// SF := 0
208
+ /// AF := 0
209
+ /// PF := 0
210
+ /// CF := 0
211
+ /// \endoperation
212
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
213
+ _mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
214
+ return __builtin_ia32_aesenc128kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
215
+ }
216
+
217
+ /// The AESENC256KL performs 14 rounds of AES to encrypt the __idata using
218
+ /// the 256-bit key in the handle from the __h. It stores the result in the
219
+ /// __odata. And return the affected ZF flag status.
220
+ ///
221
+ /// \headerfile <x86intrin.h>
222
+ ///
223
+ /// This intrinsic corresponds to the <c> AESENC256KL </c> instructions.
224
+ ///
225
+ /// \operation
226
+ /// Handle[511:0] := MEM[__h+511:__h] // Load is not guaranteed to be atomic.
227
+ /// IllegalHandle := ( HandleReservedBitSet (Handle[511:0]) ||
228
+ /// (Handle[127:0] AND (CPL > 0)) ||
229
+ /// Handle[255:128] ||
230
+ /// HandleKeyType (Handle[511:0]) != HANDLE_KEY_TYPE_AES256 )
231
+ /// IF (IllegalHandle)
232
+ /// ZF := 1
233
+ /// ELSE
234
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate512 (Handle[511:0], IWKey)
235
+ /// IF (Authentic == 0)
236
+ /// ZF := 1
237
+ /// ELSE
238
+ /// MEM[__odata+127:__odata] := AES256Encrypt (__idata[127:0], UnwrappedKey)
239
+ /// ZF := 0
240
+ /// FI
241
+ /// FI
242
+ /// dst := ZF
243
+ /// OF := 0
244
+ /// SF := 0
245
+ /// AF := 0
246
+ /// PF := 0
247
+ /// CF := 0
248
+ /// \endoperation
249
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
250
+ _mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
251
+ return __builtin_ia32_aesenc256kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
252
+ }
253
+
254
+ /// The AESDEC128KL performs 10 rounds of AES to decrypt the __idata using
255
+ /// the 128-bit key in the handle from the __h. It stores the result in the
256
+ /// __odata. And return the affected ZF flag status.
257
+ ///
258
+ /// \headerfile <x86intrin.h>
259
+ ///
260
+ /// This intrinsic corresponds to the <c> AESDEC128KL </c> instructions.
261
+ ///
262
+ /// \operation
263
+ /// Handle[383:0] := MEM[__h+383:__h] // Load is not guaranteed to be atomic.
264
+ /// IllegalHandle := (HandleReservedBitSet (Handle[383:0]) ||
265
+ /// (Handle[127:0] AND (CPL > 0)) ||
266
+ /// Handle[383:256] ||
267
+ /// HandleKeyType (Handle[383:0]) != HANDLE_KEY_TYPE_AES128)
268
+ /// IF (IllegalHandle)
269
+ /// ZF := 1
270
+ /// ELSE
271
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate384 (Handle[383:0], IWKey)
272
+ /// IF (Authentic == 0)
273
+ /// ZF := 1
274
+ /// ELSE
275
+ /// MEM[__odata+127:__odata] := AES128Decrypt (__idata[127:0], UnwrappedKey)
276
+ /// ZF := 0
277
+ /// FI
278
+ /// FI
279
+ /// dst := ZF
280
+ /// OF := 0
281
+ /// SF := 0
282
+ /// AF := 0
283
+ /// PF := 0
284
+ /// CF := 0
285
+ /// \endoperation
286
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
287
+ _mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
288
+ return __builtin_ia32_aesdec128kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
289
+ }
290
+
291
+ /// The AESDEC256KL performs 10 rounds of AES to decrypt the __idata using
292
+ /// the 256-bit key in the handle from the __h. It stores the result in the
293
+ /// __odata. And return the affected ZF flag status.
294
+ ///
295
+ /// \headerfile <x86intrin.h>
296
+ ///
297
+ /// This intrinsic corresponds to the <c> AESDEC256KL </c> instructions.
298
+ ///
299
+ /// \operation
300
+ /// Handle[511:0] := MEM[__h+511:__h]
301
+ /// IllegalHandle := (HandleReservedBitSet (Handle[511:0]) ||
302
+ /// (Handle[127:0] AND (CPL > 0)) ||
303
+ /// Handle[383:256] ||
304
+ /// HandleKeyType (Handle[511:0]) != HANDLE_KEY_TYPE_AES256)
305
+ /// IF (IllegalHandle)
306
+ /// ZF := 1
307
+ /// ELSE
308
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate512 (Handle[511:0], IWKey)
309
+ /// IF (Authentic == 0)
310
+ /// ZF := 1
311
+ /// ELSE
312
+ /// MEM[__odata+127:__odata] := AES256Decrypt (__idata[127:0], UnwrappedKey)
313
+ /// ZF := 0
314
+ /// FI
315
+ /// FI
316
+ /// dst := ZF
317
+ /// OF := 0
318
+ /// SF := 0
319
+ /// AF := 0
320
+ /// PF := 0
321
+ /// CF := 0
322
+ /// \endoperation
323
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
324
+ _mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
325
+ return __builtin_ia32_aesdec256kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
326
+ }
327
+
328
+ #undef __DEFAULT_FN_ATTRS
329
+
330
+ #endif /* !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) \
331
+ || defined(__KL__) */
332
+
333
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
334
+ defined(__WIDEKL__)
335
+
336
+ /* Define the default attributes for the functions in this file. */
337
+ #define __DEFAULT_FN_ATTRS \
338
+ __attribute__((__always_inline__, __nodebug__, __target__("kl,widekl"),\
339
+ __min_vector_width__(128)))
340
+
341
+ /// Encrypt __idata[0] to __idata[7] using 128-bit AES key indicated by handle
342
+ /// at __h and store each resultant block back from __odata to __odata+7. And
343
+ /// return the affected ZF flag status.
344
+ ///
345
+ /// \headerfile <x86intrin.h>
346
+ ///
347
+ /// This intrinsic corresponds to the <c> AESENCWIDE128KL </c> instructions.
348
+ ///
349
+ /// \operation
350
+ /// Handle := MEM[__h+383:__h]
351
+ /// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
352
+ /// (Handle[127:0] AND (CPL > 0)) ||
353
+ /// Handle[255:128] ||
354
+ /// HandleKeyType (Handle[383:0]) != HANDLE_KEY_TYPE_AES128 )
355
+ /// IF (IllegalHandle)
356
+ /// ZF := 1
357
+ /// ELSE
358
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate384 (Handle[383:0], IWKey)
359
+ /// IF Authentic == 0
360
+ /// ZF := 1
361
+ /// ELSE
362
+ /// FOR i := 0 to 7
363
+ /// __odata[i] := AES128Encrypt (__idata[i], UnwrappedKey)
364
+ /// ENDFOR
365
+ /// ZF := 0
366
+ /// FI
367
+ /// FI
368
+ /// dst := ZF
369
+ /// OF := 0
370
+ /// SF := 0
371
+ /// AF := 0
372
+ /// PF := 0
373
+ /// CF := 0
374
+ /// \endoperation
375
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
376
+ _mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
377
+ return __builtin_ia32_aesencwide128kl_u8((__v2di *)__odata,
378
+ (const __v2di *)__idata, __h);
379
+ }
380
+
381
+ /// Encrypt __idata[0] to __idata[7] using 256-bit AES key indicated by handle
382
+ /// at __h and store each resultant block back from __odata to __odata+7. And
383
+ /// return the affected ZF flag status.
384
+ ///
385
+ /// \headerfile <x86intrin.h>
386
+ ///
387
+ /// This intrinsic corresponds to the <c> AESENCWIDE256KL </c> instructions.
388
+ ///
389
+ /// \operation
390
+ /// Handle[511:0] := MEM[__h+511:__h]
391
+ /// IllegalHandle := ( HandleReservedBitSet (Handle[511:0]) ||
392
+ /// (Handle[127:0] AND (CPL > 0)) ||
393
+ /// Handle[255:128] ||
394
+ /// HandleKeyType (Handle[511:0]) != HANDLE_KEY_TYPE_AES512 )
395
+ /// IF (IllegalHandle)
396
+ /// ZF := 1
397
+ /// ELSE
398
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate512 (Handle[511:0], IWKey)
399
+ /// IF Authentic == 0
400
+ /// ZF := 1
401
+ /// ELSE
402
+ /// FOR i := 0 to 7
403
+ /// __odata[i] := AES256Encrypt (__idata[i], UnwrappedKey)
404
+ /// ENDFOR
405
+ /// ZF := 0
406
+ /// FI
407
+ /// FI
408
+ /// dst := ZF
409
+ /// OF := 0
410
+ /// SF := 0
411
+ /// AF := 0
412
+ /// PF := 0
413
+ /// CF := 0
414
+ /// \endoperation
415
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
416
+ _mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
417
+ return __builtin_ia32_aesencwide256kl_u8((__v2di *)__odata,
418
+ (const __v2di *)__idata, __h);
419
+ }
420
+
421
+ /// Decrypt __idata[0] to __idata[7] using 128-bit AES key indicated by handle
422
+ /// at __h and store each resultant block back from __odata to __odata+7. And
423
+ /// return the affected ZF flag status.
424
+ ///
425
+ /// \headerfile <x86intrin.h>
426
+ ///
427
+ /// This intrinsic corresponds to the <c> AESDECWIDE128KL </c> instructions.
428
+ ///
429
+ /// \operation
430
+ /// Handle[383:0] := MEM[__h+383:__h]
431
+ /// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
432
+ /// (Handle[127:0] AND (CPL > 0)) ||
433
+ /// Handle[255:128] ||
434
+ /// HandleKeyType (Handle) != HANDLE_KEY_TYPE_AES128 )
435
+ /// IF (IllegalHandle)
436
+ /// ZF := 1
437
+ /// ELSE
438
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate384 (Handle[383:0], IWKey)
439
+ /// IF Authentic == 0
440
+ /// ZF := 1
441
+ /// ELSE
442
+ /// FOR i := 0 to 7
443
+ /// __odata[i] := AES128Decrypt (__idata[i], UnwrappedKey)
444
+ /// ENDFOR
445
+ /// ZF := 0
446
+ /// FI
447
+ /// FI
448
+ /// dst := ZF
449
+ /// OF := 0
450
+ /// SF := 0
451
+ /// AF := 0
452
+ /// PF := 0
453
+ /// CF := 0
454
+ /// \endoperation
455
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
456
+ _mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
457
+ return __builtin_ia32_aesdecwide128kl_u8((__v2di *)__odata,
458
+ (const __v2di *)__idata, __h);
459
+ }
460
+
461
+ /// Decrypt __idata[0] to __idata[7] using 256-bit AES key indicated by handle
462
+ /// at __h and store each resultant block back from __odata to __odata+7. And
463
+ /// return the affected ZF flag status.
464
+ ///
465
+ /// \headerfile <x86intrin.h>
466
+ ///
467
+ /// This intrinsic corresponds to the <c> AESDECWIDE256KL </c> instructions.
468
+ ///
469
+ /// \operation
470
+ /// Handle[511:0] := MEM[__h+511:__h]
471
+ /// IllegalHandle = ( HandleReservedBitSet (Handle[511:0]) ||
472
+ /// (Handle[127:0] AND (CPL > 0)) ||
473
+ /// Handle[255:128] ||
474
+ /// HandleKeyType (Handle) != HANDLE_KEY_TYPE_AES512 )
475
+ /// If (IllegalHandle)
476
+ /// ZF := 1
477
+ /// ELSE
478
+ /// (UnwrappedKey, Authentic) := UnwrapKeyAndAuthenticate512 (Handle[511:0], IWKey)
479
+ /// IF Authentic == 0
480
+ /// ZF := 1
481
+ /// ELSE
482
+ /// FOR i := 0 to 7
483
+ /// __odata[i] := AES256Decrypt (__idata[i], UnwrappedKey)
484
+ /// ENDFOR
485
+ /// ZF := 0
486
+ /// FI
487
+ /// FI
488
+ /// dst := ZF
489
+ /// OF := 0
490
+ /// SF := 0
491
+ /// AF := 0
492
+ /// PF := 0
493
+ /// CF := 0
494
+ /// \endoperation
495
+ static __inline__ unsigned char __DEFAULT_FN_ATTRS
496
+ _mm_aesdecwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
497
+ return __builtin_ia32_aesdecwide256kl_u8((__v2di *)__odata,
498
+ (const __v2di *)__idata, __h);
499
+ }
500
+
501
+ #undef __DEFAULT_FN_ATTRS
502
+
503
+ #endif /* !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) \
504
+ || defined(__WIDEKL__) */
505
+
506
+ #endif /* _KEYLOCKERINTRIN_H */
@@ -0,0 +1,102 @@
1
+ /*===---- limits.h - Standard header for integer sizes --------------------===*\
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ \*===----------------------------------------------------------------------===*/
8
+
9
+ #ifndef __CLANG_LIMITS_H
10
+ #define __CLANG_LIMITS_H
11
+
12
+ /* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
13
+ Avert this #include_next madness. */
14
+ #if defined __GNUC__ && !defined _GCC_LIMITS_H_
15
+ #define _GCC_LIMITS_H_
16
+ #endif
17
+
18
+ /* System headers include a number of constants from POSIX in <limits.h>.
19
+ Include it if we're hosted. */
20
+ #if __STDC_HOSTED__ && __has_include_next(<limits.h>)
21
+ #include_next <limits.h>
22
+ #endif
23
+
24
+ /* Many system headers try to "help us out" by defining these. No really, we
25
+ know how big each datatype is. */
26
+ #undef SCHAR_MIN
27
+ #undef SCHAR_MAX
28
+ #undef UCHAR_MAX
29
+ #undef SHRT_MIN
30
+ #undef SHRT_MAX
31
+ #undef USHRT_MAX
32
+ #undef INT_MIN
33
+ #undef INT_MAX
34
+ #undef UINT_MAX
35
+ #undef LONG_MIN
36
+ #undef LONG_MAX
37
+ #undef ULONG_MAX
38
+
39
+ #undef CHAR_BIT
40
+ #undef CHAR_MIN
41
+ #undef CHAR_MAX
42
+
43
+ /* C90/99 5.2.4.2.1 */
44
+ #define SCHAR_MAX __SCHAR_MAX__
45
+ #define SHRT_MAX __SHRT_MAX__
46
+ #define INT_MAX __INT_MAX__
47
+ #define LONG_MAX __LONG_MAX__
48
+
49
+ #define SCHAR_MIN (-__SCHAR_MAX__-1)
50
+ #define SHRT_MIN (-__SHRT_MAX__ -1)
51
+ #define INT_MIN (-__INT_MAX__ -1)
52
+ #define LONG_MIN (-__LONG_MAX__ -1L)
53
+
54
+ #define UCHAR_MAX (__SCHAR_MAX__*2 +1)
55
+ #define USHRT_MAX (__SHRT_MAX__ *2 +1)
56
+ #define UINT_MAX (__INT_MAX__ *2U +1U)
57
+ #define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
58
+
59
+ #ifndef MB_LEN_MAX
60
+ #define MB_LEN_MAX 1
61
+ #endif
62
+
63
+ #define CHAR_BIT __CHAR_BIT__
64
+
65
+ #ifdef __CHAR_UNSIGNED__ /* -funsigned-char */
66
+ #define CHAR_MIN 0
67
+ #define CHAR_MAX UCHAR_MAX
68
+ #else
69
+ #define CHAR_MIN SCHAR_MIN
70
+ #define CHAR_MAX __SCHAR_MAX__
71
+ #endif
72
+
73
+ /* C99 5.2.4.2.1: Added long long.
74
+ C++11 18.3.3.2: same contents as the Standard C Library header <limits.h>.
75
+ */
76
+ #if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
77
+
78
+ #undef LLONG_MIN
79
+ #undef LLONG_MAX
80
+ #undef ULLONG_MAX
81
+
82
+ #define LLONG_MAX __LONG_LONG_MAX__
83
+ #define LLONG_MIN (-__LONG_LONG_MAX__-1LL)
84
+ #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
85
+ #endif
86
+
87
+ /* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad
88
+ that we don't have something like #pragma poison that could be used to
89
+ deprecate a macro - the code should just use LLONG_MAX and friends.
90
+ */
91
+ #if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__)
92
+
93
+ #undef LONG_LONG_MIN
94
+ #undef LONG_LONG_MAX
95
+ #undef ULONG_LONG_MAX
96
+
97
+ #define LONG_LONG_MAX __LONG_LONG_MAX__
98
+ #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL)
99
+ #define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
100
+ #endif
101
+
102
+ #endif /* __CLANG_LIMITS_H */