@cpp-linter/clang-tidy-linux-arm64 18.1.8 → 19.1.7

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 (247) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{18 → 19}/include/__clang_cuda_intrinsics.h +1 -3
  4. package/lib/clang/19/include/__stdarg_header_macro.h +12 -0
  5. package/lib/clang/19/include/__stddef_header_macro.h +12 -0
  6. package/lib/clang/{18 → 19}/include/arm_acle.h +31 -5
  7. package/lib/clang/{18 → 19}/include/arm_fp16.h +1 -1
  8. package/lib/clang/{18 → 19}/include/arm_neon.h +43796 -43801
  9. package/lib/clang/{18 → 19}/include/arm_sme.h +408 -1
  10. package/lib/clang/{18 → 19}/include/arm_sve.h +27266 -27714
  11. package/lib/clang/{18 → 19}/include/arm_vector_types.h +5 -5
  12. package/lib/clang/{18 → 19}/include/avx512fp16intrin.h +38 -38
  13. package/lib/clang/{18 → 19}/include/avxintrin.h +58 -44
  14. package/lib/clang/{18 → 19}/include/bmiintrin.h +2 -4
  15. package/lib/clang/{18 → 19}/include/builtins.h +3 -0
  16. package/lib/clang/{18 → 19}/include/cpuid.h +23 -3
  17. package/lib/clang/{18 → 19}/include/cuda_wrappers/algorithm +1 -1
  18. package/lib/clang/{18 → 19}/include/emmintrin.h +301 -170
  19. package/lib/clang/{18 → 19}/include/float.h +28 -0
  20. package/lib/clang/{18 → 19}/include/fmaintrin.h +32 -16
  21. package/lib/clang/{18 → 19}/include/hlsl/hlsl_basic_types.h +10 -3
  22. package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +1697 -0
  23. package/lib/clang/{18 → 19}/include/ia32intrin.h +36 -36
  24. package/lib/clang/{18 → 19}/include/immintrin.h +85 -159
  25. package/lib/clang/{18 → 19}/include/intrin.h +48 -224
  26. package/lib/clang/19/include/intrin0.h +247 -0
  27. package/lib/clang/{18 → 19}/include/inttypes.h +4 -0
  28. package/lib/clang/{18 → 19}/include/iso646.h +4 -0
  29. package/lib/clang/{18 → 19}/include/keylockerintrin.h +5 -8
  30. package/lib/clang/{18 → 19}/include/limits.h +5 -0
  31. package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/assert.h +1 -1
  32. package/lib/clang/19/include/mm3dnow.h +22 -0
  33. package/lib/clang/{18 → 19}/include/mmintrin.h +76 -84
  34. package/lib/clang/{18 → 19}/include/module.modulemap +14 -1
  35. package/lib/clang/{18 → 19}/include/opencl-c-base.h +4 -0
  36. package/lib/clang/{18 → 19}/include/opencl-c.h +15 -0
  37. package/lib/clang/{18 → 19}/include/prfchwintrin.h +10 -8
  38. package/lib/clang/19/include/ptrauth.h +330 -0
  39. package/lib/clang/{18 → 19}/include/riscv_vector.h +0 -4
  40. package/lib/clang/19/include/sifive_vector.h +118 -0
  41. package/lib/clang/{18 → 19}/include/smmintrin.h +12 -12
  42. package/lib/clang/{18 → 19}/include/stdalign.h +5 -0
  43. package/lib/clang/{18 → 19}/include/stdarg.h +15 -19
  44. package/lib/clang/{18 → 19}/include/stdatomic.h +11 -1
  45. package/lib/clang/{18 → 19}/include/stdbool.h +5 -0
  46. package/lib/clang/{18 → 19}/include/stddef.h +38 -22
  47. package/lib/clang/{18 → 19}/include/stdint.h +5 -0
  48. package/lib/clang/{18 → 19}/include/stdnoreturn.h +6 -0
  49. package/lib/clang/{18 → 19}/include/tmmintrin.h +20 -16
  50. package/lib/clang/{18 → 19}/include/varargs.h +5 -1
  51. package/lib/clang/{18 → 19}/include/vecintrin.h +23 -5
  52. package/lib/clang/{18 → 19}/include/x86gprintrin.h +7 -14
  53. package/lib/clang/19/include/x86intrin.h +53 -0
  54. package/lib/clang/{18 → 19}/include/xmmintrin.h +285 -99
  55. package/lib/clang/19/include/yvals_core.h +25 -0
  56. package/lib/clang/19/include/zos_wrappers/builtins.h +18 -0
  57. package/package.json +6 -6
  58. package/lib/clang/18/include/avx512erintrin.h +0 -271
  59. package/lib/clang/18/include/avx512pfintrin.h +0 -92
  60. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +0 -624
  61. package/lib/clang/18/include/mm3dnow.h +0 -157
  62. package/lib/clang/18/include/sifive_vector.h +0 -16
  63. package/lib/clang/18/include/x86intrin.h +0 -67
  64. /package/lib/clang/{18 → 19}/include/__clang_cuda_builtin_vars.h +0 -0
  65. /package/lib/clang/{18 → 19}/include/__clang_cuda_cmath.h +0 -0
  66. /package/lib/clang/{18 → 19}/include/__clang_cuda_complex_builtins.h +0 -0
  67. /package/lib/clang/{18 → 19}/include/__clang_cuda_device_functions.h +0 -0
  68. /package/lib/clang/{18 → 19}/include/__clang_cuda_libdevice_declares.h +0 -0
  69. /package/lib/clang/{18 → 19}/include/__clang_cuda_math.h +0 -0
  70. /package/lib/clang/{18 → 19}/include/__clang_cuda_math_forward_declares.h +0 -0
  71. /package/lib/clang/{18 → 19}/include/__clang_cuda_runtime_wrapper.h +0 -0
  72. /package/lib/clang/{18 → 19}/include/__clang_cuda_texture_intrinsics.h +0 -0
  73. /package/lib/clang/{18 → 19}/include/__clang_hip_cmath.h +0 -0
  74. /package/lib/clang/{18 → 19}/include/__clang_hip_libdevice_declares.h +0 -0
  75. /package/lib/clang/{18 → 19}/include/__clang_hip_math.h +0 -0
  76. /package/lib/clang/{18 → 19}/include/__clang_hip_runtime_wrapper.h +0 -0
  77. /package/lib/clang/{18 → 19}/include/__clang_hip_stdlib.h +0 -0
  78. /package/lib/clang/{18 → 19}/include/__stdarg___gnuc_va_list.h +0 -0
  79. /package/lib/clang/{18 → 19}/include/__stdarg___va_copy.h +0 -0
  80. /package/lib/clang/{18 → 19}/include/__stdarg_va_arg.h +0 -0
  81. /package/lib/clang/{18 → 19}/include/__stdarg_va_copy.h +0 -0
  82. /package/lib/clang/{18 → 19}/include/__stdarg_va_list.h +0 -0
  83. /package/lib/clang/{18 → 19}/include/__stddef_max_align_t.h +0 -0
  84. /package/lib/clang/{18 → 19}/include/__stddef_null.h +0 -0
  85. /package/lib/clang/{18 → 19}/include/__stddef_nullptr_t.h +0 -0
  86. /package/lib/clang/{18 → 19}/include/__stddef_offsetof.h +0 -0
  87. /package/lib/clang/{18 → 19}/include/__stddef_ptrdiff_t.h +0 -0
  88. /package/lib/clang/{18 → 19}/include/__stddef_rsize_t.h +0 -0
  89. /package/lib/clang/{18 → 19}/include/__stddef_size_t.h +0 -0
  90. /package/lib/clang/{18 → 19}/include/__stddef_unreachable.h +0 -0
  91. /package/lib/clang/{18 → 19}/include/__stddef_wchar_t.h +0 -0
  92. /package/lib/clang/{18 → 19}/include/__stddef_wint_t.h +0 -0
  93. /package/lib/clang/{18 → 19}/include/__wmmintrin_aes.h +0 -0
  94. /package/lib/clang/{18 → 19}/include/__wmmintrin_pclmul.h +0 -0
  95. /package/lib/clang/{18 → 19}/include/adcintrin.h +0 -0
  96. /package/lib/clang/{18 → 19}/include/adxintrin.h +0 -0
  97. /package/lib/clang/{18 → 19}/include/altivec.h +0 -0
  98. /package/lib/clang/{18 → 19}/include/ammintrin.h +0 -0
  99. /package/lib/clang/{18 → 19}/include/amxcomplexintrin.h +0 -0
  100. /package/lib/clang/{18 → 19}/include/amxfp16intrin.h +0 -0
  101. /package/lib/clang/{18 → 19}/include/amxintrin.h +0 -0
  102. /package/lib/clang/{18 → 19}/include/arm64intr.h +0 -0
  103. /package/lib/clang/{18 → 19}/include/arm_bf16.h +0 -0
  104. /package/lib/clang/{18 → 19}/include/arm_cde.h +0 -0
  105. /package/lib/clang/{18 → 19}/include/arm_cmse.h +0 -0
  106. /package/lib/clang/{18 → 19}/include/arm_mve.h +0 -0
  107. /package/lib/clang/{18 → 19}/include/arm_neon_sve_bridge.h +0 -0
  108. /package/lib/clang/{18 → 19}/include/armintr.h +0 -0
  109. /package/lib/clang/{18 → 19}/include/avx2intrin.h +0 -0
  110. /package/lib/clang/{18 → 19}/include/avx512bf16intrin.h +0 -0
  111. /package/lib/clang/{18 → 19}/include/avx512bitalgintrin.h +0 -0
  112. /package/lib/clang/{18 → 19}/include/avx512bwintrin.h +0 -0
  113. /package/lib/clang/{18 → 19}/include/avx512cdintrin.h +0 -0
  114. /package/lib/clang/{18 → 19}/include/avx512dqintrin.h +0 -0
  115. /package/lib/clang/{18 → 19}/include/avx512fintrin.h +0 -0
  116. /package/lib/clang/{18 → 19}/include/avx512ifmaintrin.h +0 -0
  117. /package/lib/clang/{18 → 19}/include/avx512ifmavlintrin.h +0 -0
  118. /package/lib/clang/{18 → 19}/include/avx512vbmi2intrin.h +0 -0
  119. /package/lib/clang/{18 → 19}/include/avx512vbmiintrin.h +0 -0
  120. /package/lib/clang/{18 → 19}/include/avx512vbmivlintrin.h +0 -0
  121. /package/lib/clang/{18 → 19}/include/avx512vlbf16intrin.h +0 -0
  122. /package/lib/clang/{18 → 19}/include/avx512vlbitalgintrin.h +0 -0
  123. /package/lib/clang/{18 → 19}/include/avx512vlbwintrin.h +0 -0
  124. /package/lib/clang/{18 → 19}/include/avx512vlcdintrin.h +0 -0
  125. /package/lib/clang/{18 → 19}/include/avx512vldqintrin.h +0 -0
  126. /package/lib/clang/{18 → 19}/include/avx512vlfp16intrin.h +0 -0
  127. /package/lib/clang/{18 → 19}/include/avx512vlintrin.h +0 -0
  128. /package/lib/clang/{18 → 19}/include/avx512vlvbmi2intrin.h +0 -0
  129. /package/lib/clang/{18 → 19}/include/avx512vlvnniintrin.h +0 -0
  130. /package/lib/clang/{18 → 19}/include/avx512vlvp2intersectintrin.h +0 -0
  131. /package/lib/clang/{18 → 19}/include/avx512vnniintrin.h +0 -0
  132. /package/lib/clang/{18 → 19}/include/avx512vp2intersectintrin.h +0 -0
  133. /package/lib/clang/{18 → 19}/include/avx512vpopcntdqintrin.h +0 -0
  134. /package/lib/clang/{18 → 19}/include/avx512vpopcntdqvlintrin.h +0 -0
  135. /package/lib/clang/{18 → 19}/include/avxifmaintrin.h +0 -0
  136. /package/lib/clang/{18 → 19}/include/avxneconvertintrin.h +0 -0
  137. /package/lib/clang/{18 → 19}/include/avxvnniint16intrin.h +0 -0
  138. /package/lib/clang/{18 → 19}/include/avxvnniint8intrin.h +0 -0
  139. /package/lib/clang/{18 → 19}/include/avxvnniintrin.h +0 -0
  140. /package/lib/clang/{18 → 19}/include/bmi2intrin.h +0 -0
  141. /package/lib/clang/{18 → 19}/include/cet.h +0 -0
  142. /package/lib/clang/{18 → 19}/include/cetintrin.h +0 -0
  143. /package/lib/clang/{18 → 19}/include/cldemoteintrin.h +0 -0
  144. /package/lib/clang/{18 → 19}/include/clflushoptintrin.h +0 -0
  145. /package/lib/clang/{18 → 19}/include/clwbintrin.h +0 -0
  146. /package/lib/clang/{18 → 19}/include/clzerointrin.h +0 -0
  147. /package/lib/clang/{18 → 19}/include/cmpccxaddintrin.h +0 -0
  148. /package/lib/clang/{18 → 19}/include/crc32intrin.h +0 -0
  149. /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/basic_string.h +0 -0
  150. /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  151. /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  152. /package/lib/clang/{18 → 19}/include/cuda_wrappers/cmath +0 -0
  153. /package/lib/clang/{18 → 19}/include/cuda_wrappers/complex +0 -0
  154. /package/lib/clang/{18 → 19}/include/cuda_wrappers/new +0 -0
  155. /package/lib/clang/{18 → 19}/include/enqcmdintrin.h +0 -0
  156. /package/lib/clang/{18 → 19}/include/f16cintrin.h +0 -0
  157. /package/lib/clang/{18 → 19}/include/fma4intrin.h +0 -0
  158. /package/lib/clang/{18 → 19}/include/fxsrintrin.h +0 -0
  159. /package/lib/clang/{18 → 19}/include/gfniintrin.h +0 -0
  160. /package/lib/clang/{18 → 19}/include/hexagon_circ_brev_intrinsics.h +0 -0
  161. /package/lib/clang/{18 → 19}/include/hexagon_protos.h +0 -0
  162. /package/lib/clang/{18 → 19}/include/hexagon_types.h +0 -0
  163. /package/lib/clang/{18 → 19}/include/hlsl.h +0 -0
  164. /package/lib/clang/{18 → 19}/include/hresetintrin.h +0 -0
  165. /package/lib/clang/{18 → 19}/include/htmintrin.h +0 -0
  166. /package/lib/clang/{18 → 19}/include/htmxlintrin.h +0 -0
  167. /package/lib/clang/{18 → 19}/include/hvx_hexagon_protos.h +0 -0
  168. /package/lib/clang/{18 → 19}/include/invpcidintrin.h +0 -0
  169. /package/lib/clang/{18 → 19}/include/larchintrin.h +0 -0
  170. /package/lib/clang/{18 → 19}/include/lasxintrin.h +0 -0
  171. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/ctype.h +0 -0
  172. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/inttypes.h +0 -0
  173. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/stdio.h +0 -0
  174. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/stdlib.h +0 -0
  175. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/string.h +0 -0
  176. /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/time.h +0 -0
  177. /package/lib/clang/{18 → 19}/include/lsxintrin.h +0 -0
  178. /package/lib/clang/{18 → 19}/include/lwpintrin.h +0 -0
  179. /package/lib/clang/{18 → 19}/include/lzcntintrin.h +0 -0
  180. /package/lib/clang/{18 → 19}/include/mm_malloc.h +0 -0
  181. /package/lib/clang/{18 → 19}/include/movdirintrin.h +0 -0
  182. /package/lib/clang/{18 → 19}/include/msa.h +0 -0
  183. /package/lib/clang/{18 → 19}/include/mwaitxintrin.h +0 -0
  184. /package/lib/clang/{18 → 19}/include/nmmintrin.h +0 -0
  185. /package/lib/clang/{18 → 19}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  186. /package/lib/clang/{18 → 19}/include/openmp_wrappers/cmath +0 -0
  187. /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex +0 -0
  188. /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex.h +0 -0
  189. /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex_cmath.h +0 -0
  190. /package/lib/clang/{18 → 19}/include/openmp_wrappers/math.h +0 -0
  191. /package/lib/clang/{18 → 19}/include/openmp_wrappers/new +0 -0
  192. /package/lib/clang/{18 → 19}/include/pconfigintrin.h +0 -0
  193. /package/lib/clang/{18 → 19}/include/pkuintrin.h +0 -0
  194. /package/lib/clang/{18 → 19}/include/pmmintrin.h +0 -0
  195. /package/lib/clang/{18 → 19}/include/popcntintrin.h +0 -0
  196. /package/lib/clang/{18 → 19}/include/ppc_wrappers/bmi2intrin.h +0 -0
  197. /package/lib/clang/{18 → 19}/include/ppc_wrappers/bmiintrin.h +0 -0
  198. /package/lib/clang/{18 → 19}/include/ppc_wrappers/emmintrin.h +0 -0
  199. /package/lib/clang/{18 → 19}/include/ppc_wrappers/immintrin.h +0 -0
  200. /package/lib/clang/{18 → 19}/include/ppc_wrappers/mm_malloc.h +0 -0
  201. /package/lib/clang/{18 → 19}/include/ppc_wrappers/mmintrin.h +0 -0
  202. /package/lib/clang/{18 → 19}/include/ppc_wrappers/nmmintrin.h +0 -0
  203. /package/lib/clang/{18 → 19}/include/ppc_wrappers/pmmintrin.h +0 -0
  204. /package/lib/clang/{18 → 19}/include/ppc_wrappers/smmintrin.h +0 -0
  205. /package/lib/clang/{18 → 19}/include/ppc_wrappers/tmmintrin.h +0 -0
  206. /package/lib/clang/{18 → 19}/include/ppc_wrappers/x86gprintrin.h +0 -0
  207. /package/lib/clang/{18 → 19}/include/ppc_wrappers/x86intrin.h +0 -0
  208. /package/lib/clang/{18 → 19}/include/ppc_wrappers/xmmintrin.h +0 -0
  209. /package/lib/clang/{18 → 19}/include/prfchiintrin.h +0 -0
  210. /package/lib/clang/{18 → 19}/include/ptwriteintrin.h +0 -0
  211. /package/lib/clang/{18 → 19}/include/raointintrin.h +0 -0
  212. /package/lib/clang/{18 → 19}/include/rdpruintrin.h +0 -0
  213. /package/lib/clang/{18 → 19}/include/rdseedintrin.h +0 -0
  214. /package/lib/clang/{18 → 19}/include/riscv_bitmanip.h +0 -0
  215. /package/lib/clang/{18 → 19}/include/riscv_crypto.h +0 -0
  216. /package/lib/clang/{18 → 19}/include/riscv_ntlh.h +0 -0
  217. /package/lib/clang/{18 → 19}/include/rtmintrin.h +0 -0
  218. /package/lib/clang/{18 → 19}/include/s390intrin.h +0 -0
  219. /package/lib/clang/{18 → 19}/include/serializeintrin.h +0 -0
  220. /package/lib/clang/{18 → 19}/include/sgxintrin.h +0 -0
  221. /package/lib/clang/{18 → 19}/include/sha512intrin.h +0 -0
  222. /package/lib/clang/{18 → 19}/include/shaintrin.h +0 -0
  223. /package/lib/clang/{18 → 19}/include/sm3intrin.h +0 -0
  224. /package/lib/clang/{18 → 19}/include/sm4intrin.h +0 -0
  225. /package/lib/clang/{18 → 19}/include/stdckdint.h +0 -0
  226. /package/lib/clang/{18 → 19}/include/tbmintrin.h +0 -0
  227. /package/lib/clang/{18 → 19}/include/tgmath.h +0 -0
  228. /package/lib/clang/{18 → 19}/include/tsxldtrkintrin.h +0 -0
  229. /package/lib/clang/{18 → 19}/include/uintrintrin.h +0 -0
  230. /package/lib/clang/{18 → 19}/include/unwind.h +0 -0
  231. /package/lib/clang/{18 → 19}/include/usermsrintrin.h +0 -0
  232. /package/lib/clang/{18 → 19}/include/vadefs.h +0 -0
  233. /package/lib/clang/{18 → 19}/include/vaesintrin.h +0 -0
  234. /package/lib/clang/{18 → 19}/include/velintrin.h +0 -0
  235. /package/lib/clang/{18 → 19}/include/velintrin_approx.h +0 -0
  236. /package/lib/clang/{18 → 19}/include/velintrin_gen.h +0 -0
  237. /package/lib/clang/{18 → 19}/include/vpclmulqdqintrin.h +0 -0
  238. /package/lib/clang/{18 → 19}/include/waitpkgintrin.h +0 -0
  239. /package/lib/clang/{18 → 19}/include/wasm_simd128.h +0 -0
  240. /package/lib/clang/{18 → 19}/include/wbnoinvdintrin.h +0 -0
  241. /package/lib/clang/{18 → 19}/include/wmmintrin.h +0 -0
  242. /package/lib/clang/{18 → 19}/include/xopintrin.h +0 -0
  243. /package/lib/clang/{18 → 19}/include/xsavecintrin.h +0 -0
  244. /package/lib/clang/{18 → 19}/include/xsaveintrin.h +0 -0
  245. /package/lib/clang/{18 → 19}/include/xsaveoptintrin.h +0 -0
  246. /package/lib/clang/{18 → 19}/include/xsavesintrin.h +0 -0
  247. /package/lib/clang/{18 → 19}/include/xtestintrin.h +0 -0
@@ -15,8 +15,10 @@
15
15
  #ifndef __INTRIN_H
16
16
  #define __INTRIN_H
17
17
 
18
+ #include <intrin0.h>
19
+
18
20
  /* First include the standard intrinsics. */
19
- #if defined(__i386__) || defined(__x86_64__)
21
+ #if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
20
22
  #include <x86intrin.h>
21
23
  #endif
22
24
 
@@ -24,7 +26,7 @@
24
26
  #include <armintr.h>
25
27
  #endif
26
28
 
27
- #if defined(__aarch64__)
29
+ #if defined(__aarch64__) || defined(__arm64ec__)
28
30
  #include <arm64intr.h>
29
31
  #endif
30
32
 
@@ -131,8 +133,6 @@ void __writefsqword(unsigned long, unsigned __int64);
131
133
  void __writefsword(unsigned long, unsigned short);
132
134
  void __writemsr(unsigned long, unsigned __int64);
133
135
  void *_AddressOfReturnAddress(void);
134
- unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
135
- unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
136
136
  unsigned char _bittest(long const *, long);
137
137
  unsigned char _bittestandcomplement(long *, long);
138
138
  unsigned char _bittestandreset(long *, long);
@@ -151,7 +151,6 @@ long _InterlockedExchangeAdd_HLERelease(long volatile *, long);
151
151
  __int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *, __int64);
152
152
  __int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *, __int64);
153
153
  void _ReadBarrier(void);
154
- void _ReadWriteBarrier(void);
155
154
  unsigned int _rorx_u32(unsigned int, const unsigned int);
156
155
  int _sarx_i32(int, unsigned int);
157
156
  #if __STDC_HOSTED__
@@ -167,7 +166,7 @@ unsigned __int32 xbegin(void);
167
166
  void _xend(void);
168
167
 
169
168
  /* These additional intrinsics are turned on in x64/amd64/x86_64 mode. */
170
- #ifdef __x86_64__
169
+ #if defined(__x86_64__) && !defined(__arm64ec__)
171
170
  void __addgsbyte(unsigned long, unsigned char);
172
171
  void __addgsdword(unsigned long, unsigned long);
173
172
  void __addgsqword(unsigned long, unsigned __int64);
@@ -182,12 +181,6 @@ unsigned char __readgsbyte(unsigned long);
182
181
  unsigned long __readgsdword(unsigned long);
183
182
  unsigned __int64 __readgsqword(unsigned long);
184
183
  unsigned short __readgsword(unsigned long);
185
- unsigned __int64 __shiftleft128(unsigned __int64 _LowPart,
186
- unsigned __int64 _HighPart,
187
- unsigned char _Shift);
188
- unsigned __int64 __shiftright128(unsigned __int64 _LowPart,
189
- unsigned __int64 _HighPart,
190
- unsigned char _Shift);
191
184
  void __stosq(unsigned __int64 *, unsigned __int64, size_t);
192
185
  unsigned char __vmx_on(unsigned __int64 *);
193
186
  unsigned char __vmx_vmclear(unsigned __int64 *);
@@ -236,216 +229,15 @@ unsigned __int64 _shlx_u64(unsigned __int64, unsigned int);
236
229
  unsigned __int64 _shrx_u64(unsigned __int64, unsigned int);
237
230
  __int64 __mulh(__int64, __int64);
238
231
  unsigned __int64 __umulh(unsigned __int64, unsigned __int64);
239
- __int64 _mul128(__int64, __int64, __int64*);
240
- unsigned __int64 _umul128(unsigned __int64,
241
- unsigned __int64,
242
- unsigned __int64*);
232
+ __int64 _mul128(__int64, __int64, __int64 *);
243
233
 
244
234
  #endif /* __x86_64__ */
245
235
 
246
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
247
-
248
- unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
249
- unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
250
-
251
- #endif
252
-
253
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
254
- __int64 _InterlockedDecrement64(__int64 volatile *_Addend);
255
- __int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value);
256
- __int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value);
257
- __int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value);
258
- __int64 _InterlockedIncrement64(__int64 volatile *_Addend);
259
- __int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask);
260
- __int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask);
261
- __int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask);
262
-
263
- #endif
264
-
265
- /*----------------------------------------------------------------------------*\
266
- |* Interlocked Exchange Add
267
- \*----------------------------------------------------------------------------*/
268
- #if defined(__arm__) || defined(__aarch64__)
269
- char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value);
270
- char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value);
271
- char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value);
272
- short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value);
273
- short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value);
274
- short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value);
275
- long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value);
276
- long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value);
277
- long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value);
278
- __int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, __int64 _Value);
279
- __int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value);
280
- __int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, __int64 _Value);
281
- #endif
282
- /*----------------------------------------------------------------------------*\
283
- |* Interlocked Increment
284
- \*----------------------------------------------------------------------------*/
285
- #if defined(__arm__) || defined(__aarch64__)
286
- short _InterlockedIncrement16_acq(short volatile *_Value);
287
- short _InterlockedIncrement16_nf(short volatile *_Value);
288
- short _InterlockedIncrement16_rel(short volatile *_Value);
289
- long _InterlockedIncrement_acq(long volatile *_Value);
290
- long _InterlockedIncrement_nf(long volatile *_Value);
291
- long _InterlockedIncrement_rel(long volatile *_Value);
292
- __int64 _InterlockedIncrement64_acq(__int64 volatile *_Value);
293
- __int64 _InterlockedIncrement64_nf(__int64 volatile *_Value);
294
- __int64 _InterlockedIncrement64_rel(__int64 volatile *_Value);
295
- #endif
296
- /*----------------------------------------------------------------------------*\
297
- |* Interlocked Decrement
298
- \*----------------------------------------------------------------------------*/
299
- #if defined(__arm__) || defined(__aarch64__)
300
- short _InterlockedDecrement16_acq(short volatile *_Value);
301
- short _InterlockedDecrement16_nf(short volatile *_Value);
302
- short _InterlockedDecrement16_rel(short volatile *_Value);
303
- long _InterlockedDecrement_acq(long volatile *_Value);
304
- long _InterlockedDecrement_nf(long volatile *_Value);
305
- long _InterlockedDecrement_rel(long volatile *_Value);
306
- __int64 _InterlockedDecrement64_acq(__int64 volatile *_Value);
307
- __int64 _InterlockedDecrement64_nf(__int64 volatile *_Value);
308
- __int64 _InterlockedDecrement64_rel(__int64 volatile *_Value);
309
- #endif
310
- /*----------------------------------------------------------------------------*\
311
- |* Interlocked And
312
- \*----------------------------------------------------------------------------*/
313
- #if defined(__arm__) || defined(__aarch64__)
314
- char _InterlockedAnd8_acq(char volatile *_Value, char _Mask);
315
- char _InterlockedAnd8_nf(char volatile *_Value, char _Mask);
316
- char _InterlockedAnd8_rel(char volatile *_Value, char _Mask);
317
- short _InterlockedAnd16_acq(short volatile *_Value, short _Mask);
318
- short _InterlockedAnd16_nf(short volatile *_Value, short _Mask);
319
- short _InterlockedAnd16_rel(short volatile *_Value, short _Mask);
320
- long _InterlockedAnd_acq(long volatile *_Value, long _Mask);
321
- long _InterlockedAnd_nf(long volatile *_Value, long _Mask);
322
- long _InterlockedAnd_rel(long volatile *_Value, long _Mask);
323
- __int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask);
324
- __int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask);
325
- __int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask);
326
- #endif
327
- /*----------------------------------------------------------------------------*\
328
- |* Bit Counting and Testing
329
- \*----------------------------------------------------------------------------*/
330
- #if defined(__arm__) || defined(__aarch64__)
331
- unsigned char _interlockedbittestandset_acq(long volatile *_BitBase,
332
- long _BitPos);
333
- unsigned char _interlockedbittestandset_nf(long volatile *_BitBase,
334
- long _BitPos);
335
- unsigned char _interlockedbittestandset_rel(long volatile *_BitBase,
336
- long _BitPos);
337
- unsigned char _interlockedbittestandreset_acq(long volatile *_BitBase,
338
- long _BitPos);
339
- unsigned char _interlockedbittestandreset_nf(long volatile *_BitBase,
340
- long _BitPos);
341
- unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase,
342
- long _BitPos);
343
- #endif
344
- /*----------------------------------------------------------------------------*\
345
- |* Interlocked Or
346
- \*----------------------------------------------------------------------------*/
347
- #if defined(__arm__) || defined(__aarch64__)
348
- char _InterlockedOr8_acq(char volatile *_Value, char _Mask);
349
- char _InterlockedOr8_nf(char volatile *_Value, char _Mask);
350
- char _InterlockedOr8_rel(char volatile *_Value, char _Mask);
351
- short _InterlockedOr16_acq(short volatile *_Value, short _Mask);
352
- short _InterlockedOr16_nf(short volatile *_Value, short _Mask);
353
- short _InterlockedOr16_rel(short volatile *_Value, short _Mask);
354
- long _InterlockedOr_acq(long volatile *_Value, long _Mask);
355
- long _InterlockedOr_nf(long volatile *_Value, long _Mask);
356
- long _InterlockedOr_rel(long volatile *_Value, long _Mask);
357
- __int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask);
358
- __int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask);
359
- __int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask);
360
- #endif
361
- /*----------------------------------------------------------------------------*\
362
- |* Interlocked Xor
363
- \*----------------------------------------------------------------------------*/
364
- #if defined(__arm__) || defined(__aarch64__)
365
- char _InterlockedXor8_acq(char volatile *_Value, char _Mask);
366
- char _InterlockedXor8_nf(char volatile *_Value, char _Mask);
367
- char _InterlockedXor8_rel(char volatile *_Value, char _Mask);
368
- short _InterlockedXor16_acq(short volatile *_Value, short _Mask);
369
- short _InterlockedXor16_nf(short volatile *_Value, short _Mask);
370
- short _InterlockedXor16_rel(short volatile *_Value, short _Mask);
371
- long _InterlockedXor_acq(long volatile *_Value, long _Mask);
372
- long _InterlockedXor_nf(long volatile *_Value, long _Mask);
373
- long _InterlockedXor_rel(long volatile *_Value, long _Mask);
374
- __int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask);
375
- __int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask);
376
- __int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask);
377
- #endif
378
- /*----------------------------------------------------------------------------*\
379
- |* Interlocked Exchange
380
- \*----------------------------------------------------------------------------*/
381
- #if defined(__arm__) || defined(__aarch64__)
382
- char _InterlockedExchange8_acq(char volatile *_Target, char _Value);
383
- char _InterlockedExchange8_nf(char volatile *_Target, char _Value);
384
- char _InterlockedExchange8_rel(char volatile *_Target, char _Value);
385
- short _InterlockedExchange16_acq(short volatile *_Target, short _Value);
386
- short _InterlockedExchange16_nf(short volatile *_Target, short _Value);
387
- short _InterlockedExchange16_rel(short volatile *_Target, short _Value);
388
- long _InterlockedExchange_acq(long volatile *_Target, long _Value);
389
- long _InterlockedExchange_nf(long volatile *_Target, long _Value);
390
- long _InterlockedExchange_rel(long volatile *_Target, long _Value);
391
- __int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value);
392
- __int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value);
393
- __int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value);
394
- #endif
395
- /*----------------------------------------------------------------------------*\
396
- |* Interlocked Compare Exchange
397
- \*----------------------------------------------------------------------------*/
398
- #if defined(__arm__) || defined(__aarch64__)
399
- char _InterlockedCompareExchange8_acq(char volatile *_Destination,
400
- char _Exchange, char _Comparand);
401
- char _InterlockedCompareExchange8_nf(char volatile *_Destination,
402
- char _Exchange, char _Comparand);
403
- char _InterlockedCompareExchange8_rel(char volatile *_Destination,
404
- char _Exchange, char _Comparand);
405
- short _InterlockedCompareExchange16_acq(short volatile *_Destination,
406
- short _Exchange, short _Comparand);
407
- short _InterlockedCompareExchange16_nf(short volatile *_Destination,
408
- short _Exchange, short _Comparand);
409
- short _InterlockedCompareExchange16_rel(short volatile *_Destination,
410
- short _Exchange, short _Comparand);
411
- long _InterlockedCompareExchange_acq(long volatile *_Destination,
412
- long _Exchange, long _Comparand);
413
- long _InterlockedCompareExchange_nf(long volatile *_Destination,
414
- long _Exchange, long _Comparand);
415
- long _InterlockedCompareExchange_rel(long volatile *_Destination,
416
- long _Exchange, long _Comparand);
417
- __int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination,
418
- __int64 _Exchange, __int64 _Comparand);
419
- __int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination,
420
- __int64 _Exchange, __int64 _Comparand);
421
- __int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination,
422
- __int64 _Exchange, __int64 _Comparand);
423
- #endif
424
- #if defined(__x86_64__) || defined(__aarch64__)
425
- unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination,
426
- __int64 _ExchangeHigh,
427
- __int64 _ExchangeLow,
428
- __int64 *_ComparandResult);
429
- #endif
430
- #if defined(__aarch64__)
431
- unsigned char _InterlockedCompareExchange128_acq(__int64 volatile *_Destination,
432
- __int64 _ExchangeHigh,
433
- __int64 _ExchangeLow,
434
- __int64 *_ComparandResult);
435
- unsigned char _InterlockedCompareExchange128_nf(__int64 volatile *_Destination,
436
- __int64 _ExchangeHigh,
437
- __int64 _ExchangeLow,
438
- __int64 *_ComparandResult);
439
- unsigned char _InterlockedCompareExchange128_rel(__int64 volatile *_Destination,
440
- __int64 _ExchangeHigh,
441
- __int64 _ExchangeLow,
442
- __int64 *_ComparandResult);
443
- #endif
444
-
445
236
  /*----------------------------------------------------------------------------*\
446
237
  |* movs, stos
447
238
  \*----------------------------------------------------------------------------*/
448
- #if defined(__i386__) || defined(__x86_64__)
239
+
240
+ #if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
449
241
  static __inline__ void __DEFAULT_FN_ATTRS __movsb(unsigned char *__dst,
450
242
  unsigned char const *__src,
451
243
  size_t __n) {
@@ -514,7 +306,7 @@ static __inline__ void __DEFAULT_FN_ATTRS __stosw(unsigned short *__dst,
514
306
  : "memory");
515
307
  }
516
308
  #endif
517
- #ifdef __x86_64__
309
+ #if defined(__x86_64__) && !defined(__arm64ec__)
518
310
  static __inline__ void __DEFAULT_FN_ATTRS __movsq(
519
311
  unsigned long long *__dst, unsigned long long const *__src, size_t __n) {
520
312
  __asm__ __volatile__("rep movsq"
@@ -533,10 +325,40 @@ static __inline__ void __DEFAULT_FN_ATTRS __stosq(unsigned __int64 *__dst,
533
325
  /*----------------------------------------------------------------------------*\
534
326
  |* Misc
535
327
  \*----------------------------------------------------------------------------*/
536
- #if defined(__i386__) || defined(__x86_64__)
328
+ #if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
537
329
  static __inline__ void __DEFAULT_FN_ATTRS __halt(void) {
538
330
  __asm__ volatile("hlt");
539
331
  }
332
+
333
+ static inline unsigned char __inbyte(unsigned short port) {
334
+ unsigned char ret;
335
+ __asm__ __volatile__("inb %w1, %b0" : "=a"(ret) : "Nd"(port));
336
+ return ret;
337
+ }
338
+
339
+ static inline unsigned short __inword(unsigned short port) {
340
+ unsigned short ret;
341
+ __asm__ __volatile__("inw %w1, %w0" : "=a"(ret) : "Nd"(port));
342
+ return ret;
343
+ }
344
+
345
+ static inline unsigned long __indword(unsigned short port) {
346
+ unsigned long ret;
347
+ __asm__ __volatile__("inl %w1, %k0" : "=a"(ret) : "Nd"(port));
348
+ return ret;
349
+ }
350
+
351
+ static inline void __outbyte(unsigned short port, unsigned char data) {
352
+ __asm__ __volatile__("outb %b0, %w1" : : "a"(data), "Nd"(port));
353
+ }
354
+
355
+ static inline void __outword(unsigned short port, unsigned short data) {
356
+ __asm__ __volatile__("outw %w0, %w1" : : "a"(data), "Nd"(port));
357
+ }
358
+
359
+ static inline void __outdword(unsigned short port, unsigned long data) {
360
+ __asm__ __volatile__("outl %k0, %w1" : : "a"(data), "Nd"(port));
361
+ }
540
362
  #endif
541
363
 
542
364
  #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)
@@ -548,9 +370,10 @@ static __inline__ void __DEFAULT_FN_ATTRS __nop(void) {
548
370
  /*----------------------------------------------------------------------------*\
549
371
  |* MS AArch64 specific
550
372
  \*----------------------------------------------------------------------------*/
551
- #if defined(__aarch64__)
373
+ #if defined(__aarch64__) || defined(__arm64ec__)
552
374
  unsigned __int64 __getReg(int);
553
375
  long _InterlockedAdd(long volatile *Addend, long Value);
376
+ __int64 _InterlockedAdd64(__int64 volatile *Addend, __int64 Value);
554
377
  __int64 _ReadStatusReg(int);
555
378
  void _WriteStatusReg(int, __int64);
556
379
 
@@ -582,18 +405,19 @@ unsigned int _CountLeadingOnes(unsigned long);
582
405
  unsigned int _CountLeadingOnes64(unsigned __int64);
583
406
  unsigned int _CountLeadingSigns(long);
584
407
  unsigned int _CountLeadingSigns64(__int64);
585
- unsigned int _CountLeadingZeros(unsigned long);
586
- unsigned int _CountLeadingZeros64(unsigned _int64);
587
408
  unsigned int _CountOneBits(unsigned long);
588
409
  unsigned int _CountOneBits64(unsigned __int64);
589
410
 
590
- void __cdecl __prefetch(void *);
411
+ unsigned int __hlt(unsigned int, ...);
412
+
413
+ void __cdecl __prefetch(const void *);
414
+
591
415
  #endif
592
416
 
593
417
  /*----------------------------------------------------------------------------*\
594
418
  |* Privileged intrinsics
595
419
  \*----------------------------------------------------------------------------*/
596
- #if defined(__i386__) || defined(__x86_64__)
420
+ #if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
597
421
  static __inline__ unsigned __int64 __DEFAULT_FN_ATTRS
598
422
  __readmsr(unsigned long __register) {
599
423
  // Loads the contents of a 64-bit model specific register (MSR) specified in
@@ -607,7 +431,6 @@ __readmsr(unsigned long __register) {
607
431
  __asm__ ("rdmsr" : "=d"(__edx), "=a"(__eax) : "c"(__register));
608
432
  return (((unsigned __int64)__edx) << 32) | (unsigned __int64)__eax;
609
433
  }
610
- #endif
611
434
 
612
435
  static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS __readcr3(void) {
613
436
  unsigned __LPTRINT_TYPE__ __cr3_val;
@@ -623,6 +446,7 @@ static __inline__ void __DEFAULT_FN_ATTRS
623
446
  __writecr3(unsigned __INTPTR_TYPE__ __cr3_val) {
624
447
  __asm__ ("mov {%0, %%cr3|cr3, %0}" : : "r"(__cr3_val) : "memory");
625
448
  }
449
+ #endif
626
450
 
627
451
  #ifdef __cplusplus
628
452
  }
@@ -0,0 +1,247 @@
1
+ /* ===-------- intrin.h ---------------------------------------------------===
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
+ /* Only include this if we're compiling for the windows platform. */
11
+ #ifndef _MSC_VER
12
+ #include_next <intrin0.h>
13
+ #else
14
+
15
+ #ifndef __INTRIN0_H
16
+ #define __INTRIN0_H
17
+
18
+ #if defined(__x86_64__) && !defined(__arm64ec__)
19
+ #include <adcintrin.h>
20
+ #endif
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
27
+ unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
28
+ void _ReadWriteBarrier(void);
29
+
30
+ #if defined(__aarch64__) || defined(__arm64ec__)
31
+ unsigned int _CountLeadingZeros(unsigned long);
32
+ unsigned int _CountLeadingZeros64(unsigned _int64);
33
+ unsigned char _InterlockedCompareExchange128_acq(__int64 volatile *_Destination,
34
+ __int64 _ExchangeHigh,
35
+ __int64 _ExchangeLow,
36
+ __int64 *_ComparandResult);
37
+ unsigned char _InterlockedCompareExchange128_nf(__int64 volatile *_Destination,
38
+ __int64 _ExchangeHigh,
39
+ __int64 _ExchangeLow,
40
+ __int64 *_ComparandResult);
41
+ unsigned char _InterlockedCompareExchange128_rel(__int64 volatile *_Destination,
42
+ __int64 _ExchangeHigh,
43
+ __int64 _ExchangeLow,
44
+ __int64 *_ComparandResult);
45
+ #endif
46
+
47
+ #if defined(__x86_64__) && !defined(__arm64ec__)
48
+ unsigned __int64 _umul128(unsigned __int64, unsigned __int64,
49
+ unsigned __int64 *);
50
+ unsigned __int64 __shiftleft128(unsigned __int64 _LowPart,
51
+ unsigned __int64 _HighPart,
52
+ unsigned char _Shift);
53
+ unsigned __int64 __shiftright128(unsigned __int64 _LowPart,
54
+ unsigned __int64 _HighPart,
55
+ unsigned char _Shift);
56
+ #endif
57
+
58
+ #if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
59
+ void _mm_pause(void);
60
+ #endif
61
+
62
+ #if defined(__x86_64__) || defined(__aarch64__)
63
+ unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination,
64
+ __int64 _ExchangeHigh,
65
+ __int64 _ExchangeLow,
66
+ __int64 *_ComparandResult);
67
+ #endif
68
+
69
+ #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
70
+ unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
71
+ unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
72
+ #endif
73
+
74
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
75
+ defined(__aarch64__)
76
+ __int64 _InterlockedDecrement64(__int64 volatile *_Addend);
77
+ __int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value);
78
+ __int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value);
79
+ __int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value);
80
+ __int64 _InterlockedIncrement64(__int64 volatile *_Addend);
81
+ __int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask);
82
+ __int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask);
83
+ __int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask);
84
+ #endif
85
+
86
+ #if defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__)
87
+ /*----------------------------------------------------------------------------*\
88
+ |* Interlocked Exchange Add
89
+ \*----------------------------------------------------------------------------*/
90
+ char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value);
91
+ char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value);
92
+ char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value);
93
+ short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value);
94
+ short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value);
95
+ short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value);
96
+ long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value);
97
+ long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value);
98
+ long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value);
99
+ __int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend,
100
+ __int64 _Value);
101
+ __int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value);
102
+ __int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend,
103
+ __int64 _Value);
104
+
105
+ /*----------------------------------------------------------------------------*\
106
+ |* Interlocked Increment
107
+ \*----------------------------------------------------------------------------*/
108
+ short _InterlockedIncrement16_acq(short volatile *_Value);
109
+ short _InterlockedIncrement16_nf(short volatile *_Value);
110
+ short _InterlockedIncrement16_rel(short volatile *_Value);
111
+ long _InterlockedIncrement_acq(long volatile *_Value);
112
+ long _InterlockedIncrement_nf(long volatile *_Value);
113
+ long _InterlockedIncrement_rel(long volatile *_Value);
114
+ __int64 _InterlockedIncrement64_acq(__int64 volatile *_Value);
115
+ __int64 _InterlockedIncrement64_nf(__int64 volatile *_Value);
116
+ __int64 _InterlockedIncrement64_rel(__int64 volatile *_Value);
117
+
118
+ /*----------------------------------------------------------------------------*\
119
+ |* Interlocked Decrement
120
+ \*----------------------------------------------------------------------------*/
121
+ short _InterlockedDecrement16_acq(short volatile *_Value);
122
+ short _InterlockedDecrement16_nf(short volatile *_Value);
123
+ short _InterlockedDecrement16_rel(short volatile *_Value);
124
+ long _InterlockedDecrement_acq(long volatile *_Value);
125
+ long _InterlockedDecrement_nf(long volatile *_Value);
126
+ long _InterlockedDecrement_rel(long volatile *_Value);
127
+ __int64 _InterlockedDecrement64_acq(__int64 volatile *_Value);
128
+ __int64 _InterlockedDecrement64_nf(__int64 volatile *_Value);
129
+ __int64 _InterlockedDecrement64_rel(__int64 volatile *_Value);
130
+
131
+ /*----------------------------------------------------------------------------*\
132
+ |* Interlocked And
133
+ \*----------------------------------------------------------------------------*/
134
+ char _InterlockedAnd8_acq(char volatile *_Value, char _Mask);
135
+ char _InterlockedAnd8_nf(char volatile *_Value, char _Mask);
136
+ char _InterlockedAnd8_rel(char volatile *_Value, char _Mask);
137
+ short _InterlockedAnd16_acq(short volatile *_Value, short _Mask);
138
+ short _InterlockedAnd16_nf(short volatile *_Value, short _Mask);
139
+ short _InterlockedAnd16_rel(short volatile *_Value, short _Mask);
140
+ long _InterlockedAnd_acq(long volatile *_Value, long _Mask);
141
+ long _InterlockedAnd_nf(long volatile *_Value, long _Mask);
142
+ long _InterlockedAnd_rel(long volatile *_Value, long _Mask);
143
+ __int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask);
144
+ __int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask);
145
+ __int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask);
146
+
147
+ /*----------------------------------------------------------------------------*\
148
+ |* Bit Counting and Testing
149
+ \*----------------------------------------------------------------------------*/
150
+ unsigned char _interlockedbittestandset_acq(long volatile *_BitBase,
151
+ long _BitPos);
152
+ unsigned char _interlockedbittestandset_nf(long volatile *_BitBase,
153
+ long _BitPos);
154
+ unsigned char _interlockedbittestandset_rel(long volatile *_BitBase,
155
+ long _BitPos);
156
+ unsigned char _interlockedbittestandreset_acq(long volatile *_BitBase,
157
+ long _BitPos);
158
+ unsigned char _interlockedbittestandreset_nf(long volatile *_BitBase,
159
+ long _BitPos);
160
+ unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase,
161
+ long _BitPos);
162
+
163
+ /*----------------------------------------------------------------------------*\
164
+ |* Interlocked Or
165
+ \*----------------------------------------------------------------------------*/
166
+ char _InterlockedOr8_acq(char volatile *_Value, char _Mask);
167
+ char _InterlockedOr8_nf(char volatile *_Value, char _Mask);
168
+ char _InterlockedOr8_rel(char volatile *_Value, char _Mask);
169
+ short _InterlockedOr16_acq(short volatile *_Value, short _Mask);
170
+ short _InterlockedOr16_nf(short volatile *_Value, short _Mask);
171
+ short _InterlockedOr16_rel(short volatile *_Value, short _Mask);
172
+ long _InterlockedOr_acq(long volatile *_Value, long _Mask);
173
+ long _InterlockedOr_nf(long volatile *_Value, long _Mask);
174
+ long _InterlockedOr_rel(long volatile *_Value, long _Mask);
175
+ __int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask);
176
+ __int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask);
177
+ __int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask);
178
+
179
+ /*----------------------------------------------------------------------------*\
180
+ |* Interlocked Xor
181
+ \*----------------------------------------------------------------------------*/
182
+ char _InterlockedXor8_acq(char volatile *_Value, char _Mask);
183
+ char _InterlockedXor8_nf(char volatile *_Value, char _Mask);
184
+ char _InterlockedXor8_rel(char volatile *_Value, char _Mask);
185
+ short _InterlockedXor16_acq(short volatile *_Value, short _Mask);
186
+ short _InterlockedXor16_nf(short volatile *_Value, short _Mask);
187
+ short _InterlockedXor16_rel(short volatile *_Value, short _Mask);
188
+ long _InterlockedXor_acq(long volatile *_Value, long _Mask);
189
+ long _InterlockedXor_nf(long volatile *_Value, long _Mask);
190
+ long _InterlockedXor_rel(long volatile *_Value, long _Mask);
191
+ __int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask);
192
+ __int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask);
193
+ __int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask);
194
+
195
+ /*----------------------------------------------------------------------------*\
196
+ |* Interlocked Exchange
197
+ \*----------------------------------------------------------------------------*/
198
+ char _InterlockedExchange8_acq(char volatile *_Target, char _Value);
199
+ char _InterlockedExchange8_nf(char volatile *_Target, char _Value);
200
+ char _InterlockedExchange8_rel(char volatile *_Target, char _Value);
201
+ short _InterlockedExchange16_acq(short volatile *_Target, short _Value);
202
+ short _InterlockedExchange16_nf(short volatile *_Target, short _Value);
203
+ short _InterlockedExchange16_rel(short volatile *_Target, short _Value);
204
+ long _InterlockedExchange_acq(long volatile *_Target, long _Value);
205
+ long _InterlockedExchange_nf(long volatile *_Target, long _Value);
206
+ long _InterlockedExchange_rel(long volatile *_Target, long _Value);
207
+ __int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value);
208
+ __int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value);
209
+ __int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value);
210
+
211
+ /*----------------------------------------------------------------------------*\
212
+ |* Interlocked Compare Exchange
213
+ \*----------------------------------------------------------------------------*/
214
+ char _InterlockedCompareExchange8_acq(char volatile *_Destination,
215
+ char _Exchange, char _Comparand);
216
+ char _InterlockedCompareExchange8_nf(char volatile *_Destination,
217
+ char _Exchange, char _Comparand);
218
+ char _InterlockedCompareExchange8_rel(char volatile *_Destination,
219
+ char _Exchange, char _Comparand);
220
+ short _InterlockedCompareExchange16_acq(short volatile *_Destination,
221
+ short _Exchange, short _Comparand);
222
+ short _InterlockedCompareExchange16_nf(short volatile *_Destination,
223
+ short _Exchange, short _Comparand);
224
+ short _InterlockedCompareExchange16_rel(short volatile *_Destination,
225
+ short _Exchange, short _Comparand);
226
+ long _InterlockedCompareExchange_acq(long volatile *_Destination,
227
+ long _Exchange, long _Comparand);
228
+ long _InterlockedCompareExchange_nf(long volatile *_Destination, long _Exchange,
229
+ long _Comparand);
230
+ long _InterlockedCompareExchange_rel(long volatile *_Destination,
231
+ long _Exchange, long _Comparand);
232
+ __int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination,
233
+ __int64 _Exchange,
234
+ __int64 _Comparand);
235
+ __int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination,
236
+ __int64 _Exchange, __int64 _Comparand);
237
+ __int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination,
238
+ __int64 _Exchange,
239
+ __int64 _Comparand);
240
+ #endif
241
+
242
+ #ifdef __cplusplus
243
+ }
244
+ #endif
245
+
246
+ #endif /* __INTRIN0_H */
247
+ #endif /* _MSC_VER */
@@ -13,6 +13,9 @@
13
13
  #if !defined(_AIX) || !defined(_STD_TYPES_T)
14
14
  #define __CLANG_INTTYPES_H
15
15
  #endif
16
+ #if defined(__MVS__) && __has_include_next(<inttypes.h>)
17
+ #include_next <inttypes.h>
18
+ #else
16
19
 
17
20
  #if defined(_MSC_VER) && _MSC_VER < 1800
18
21
  #error MSVC does not have inttypes.h prior to Visual Studio 2013
@@ -94,4 +97,5 @@
94
97
  #define SCNxFAST32 "x"
95
98
  #endif
96
99
 
100
+ #endif /* __MVS__ */
97
101
  #endif /* __CLANG_INTTYPES_H */
@@ -9,6 +9,9 @@
9
9
 
10
10
  #ifndef __ISO646_H
11
11
  #define __ISO646_H
12
+ #if defined(__MVS__) && __has_include_next(<iso646.h>)
13
+ #include_next <iso646.h>
14
+ #else
12
15
 
13
16
  #ifndef __cplusplus
14
17
  #define and &&
@@ -24,4 +27,5 @@
24
27
  #define xor_eq ^=
25
28
  #endif
26
29
 
30
+ #endif /* __MVS__ */
27
31
  #endif /* __ISO646_H */