@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.215

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 (673) hide show
  1. package/c/stdlib.zig +32 -22
  2. package/compiler/aro/aro/Compilation.zig +0 -3
  3. package/compiler/translate-c/ast.zig +5 -2
  4. package/compiler_rt/arm.zig +3 -3
  5. package/compiler_rt/trunctfhf2.zig +3 -0
  6. package/compiler_rt.zig +1 -22
  7. package/docs/wasm/markdown/Parser.zig +5 -9
  8. package/include/__clang_spirv_builtins.h +12 -12
  9. package/include/__float_float.h +176 -0
  10. package/include/__float_header_macro.h +12 -0
  11. package/include/__float_infinity_nan.h +20 -0
  12. package/include/amo.h +131 -0
  13. package/include/amxavx512intrin.h +215 -1
  14. package/include/amxintrin.h +0 -2
  15. package/include/arm_acle.h +37 -27
  16. package/include/arm_neon.h +218 -82
  17. package/include/arm_sme.h +8 -8
  18. package/include/arm_sve.h +4162 -3782
  19. package/include/avx10_2_512bf16intrin.h +19 -12
  20. package/include/avx10_2_512convertintrin.h +1 -1
  21. package/include/avx10_2_512niintrin.h +31 -31
  22. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  23. package/include/avx10_2bf16intrin.h +54 -45
  24. package/include/avx10_2convertintrin.h +2 -2
  25. package/include/avx10_2copyintrin.h +1 -1
  26. package/include/avx10_2niintrin.h +14 -14
  27. package/include/avx10_2satcvtdsintrin.h +2 -2
  28. package/include/avx2intrin.h +275 -377
  29. package/include/avx512bf16intrin.h +25 -16
  30. package/include/avx512bitalgintrin.h +19 -30
  31. package/include/avx512bwintrin.h +386 -505
  32. package/include/avx512cdintrin.h +42 -55
  33. package/include/avx512dqintrin.h +132 -161
  34. package/include/avx512fintrin.h +1015 -1424
  35. package/include/avx512fp16intrin.h +112 -110
  36. package/include/avx512ifmaintrin.h +32 -34
  37. package/include/avx512ifmavlintrin.h +73 -46
  38. package/include/avx512vbmi2intrin.h +43 -32
  39. package/include/avx512vbmiintrin.h +19 -27
  40. package/include/avx512vbmivlintrin.h +35 -49
  41. package/include/avx512vlbf16intrin.h +32 -22
  42. package/include/avx512vlbitalgintrin.h +37 -53
  43. package/include/avx512vlbwintrin.h +470 -573
  44. package/include/avx512vlcdintrin.h +74 -102
  45. package/include/avx512vldqintrin.h +110 -127
  46. package/include/avx512vlfp16intrin.h +130 -111
  47. package/include/avx512vlintrin.h +945 -1299
  48. package/include/avx512vlvbmi2intrin.h +78 -63
  49. package/include/avx512vlvnniintrin.h +21 -18
  50. package/include/avx512vlvp2intersectintrin.h +2 -2
  51. package/include/avx512vnniintrin.h +10 -10
  52. package/include/avx512vp2intersectintrin.h +1 -2
  53. package/include/avx512vpopcntdqintrin.h +8 -10
  54. package/include/avx512vpopcntdqvlintrin.h +17 -15
  55. package/include/avxifmaintrin.h +16 -0
  56. package/include/avxintrin.h +165 -241
  57. package/include/avxvnniint16intrin.h +118 -99
  58. package/include/avxvnniint8intrin.h +56 -32
  59. package/include/avxvnniintrin.h +16 -8
  60. package/include/cpuid.h +101 -4
  61. package/include/emmintrin.h +168 -168
  62. package/include/f16cintrin.h +23 -9
  63. package/include/float.h +16 -155
  64. package/include/fma4intrin.h +98 -96
  65. package/include/fmaintrin.h +96 -66
  66. package/include/gfniintrin.h +21 -16
  67. package/include/hexagon_types.h +23 -20
  68. package/include/hvx_hexagon_protos.h +649 -860
  69. package/include/immintrin.h +0 -12
  70. package/include/intrin.h +4 -0
  71. package/include/lasxintrin.h +113 -0
  72. package/include/llvm_libc_wrappers/assert.h +3 -5
  73. package/include/llvm_libc_wrappers/ctype.h +3 -115
  74. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  75. package/include/llvm_libc_wrappers/stdio.h +10 -38
  76. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  77. package/include/llvm_libc_wrappers/string.h +2 -70
  78. package/include/llvm_libc_wrappers/time.h +4 -10
  79. package/include/mmintrin.h +188 -257
  80. package/include/module.modulemap +23 -4
  81. package/include/movrs_avx10_2_512intrin.h +2 -2
  82. package/include/movrs_avx10_2intrin.h +4 -4
  83. package/include/pmmintrin.h +12 -24
  84. package/include/ptrauth.h +16 -2
  85. package/include/riscv_mips.h +34 -0
  86. package/include/riscv_nds.h +89 -0
  87. package/include/sifive_vector.h +58 -2
  88. package/include/sm4evexintrin.h +2 -2
  89. package/include/smmintrin.h +77 -59
  90. package/include/spirvintrin.h +194 -0
  91. package/include/stddefer.h +19 -0
  92. package/include/tmmintrin.h +116 -147
  93. package/include/vaesintrin.h +1 -2
  94. package/include/xmmintrin.h +44 -70
  95. package/include/xopintrin.h +20 -10
  96. package/libcxx/include/__algorithm/all_of.h +11 -5
  97. package/libcxx/include/__algorithm/comp.h +4 -0
  98. package/libcxx/include/__algorithm/copy.h +28 -147
  99. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  100. package/libcxx/include/__algorithm/copy_n.h +50 -16
  101. package/libcxx/include/__algorithm/count.h +2 -2
  102. package/libcxx/include/__algorithm/equal.h +43 -55
  103. package/libcxx/include/__algorithm/fill.h +26 -8
  104. package/libcxx/include/__algorithm/fill_n.h +32 -46
  105. package/libcxx/include/__algorithm/find.h +96 -39
  106. package/libcxx/include/__algorithm/find_end.h +105 -0
  107. package/libcxx/include/__algorithm/for_each.h +18 -24
  108. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  109. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  110. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  111. package/libcxx/include/__algorithm/generate.h +4 -2
  112. package/libcxx/include/__algorithm/generate_n.h +19 -6
  113. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  114. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  115. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  116. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  117. package/libcxx/include/__algorithm/make_heap.h +16 -4
  118. package/libcxx/include/__algorithm/mismatch.h +2 -2
  119. package/libcxx/include/__algorithm/move.h +8 -19
  120. package/libcxx/include/__algorithm/move_backward.h +9 -24
  121. package/libcxx/include/__algorithm/none_of.h +4 -4
  122. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  123. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  124. package/libcxx/include/__algorithm/pstl.h +9 -9
  125. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  126. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  127. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  128. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  129. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  130. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  131. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  132. package/libcxx/include/__algorithm/rotate.h +27 -44
  133. package/libcxx/include/__algorithm/search_n.h +49 -37
  134. package/libcxx/include/__algorithm/sift_down.h +19 -18
  135. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  136. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  137. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  138. package/libcxx/include/__assertion_handler +31 -4
  139. package/libcxx/include/__atomic/atomic.h +36 -60
  140. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  141. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  142. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  143. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  144. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  145. package/libcxx/include/__atomic/contention_t.h +27 -3
  146. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  147. package/libcxx/include/__bit/countl.h +1 -2
  148. package/libcxx/include/__bit/countr.h +1 -2
  149. package/libcxx/include/__bit/has_single_bit.h +1 -1
  150. package/libcxx/include/__bit/popcount.h +0 -1
  151. package/libcxx/include/__bit/rotate.h +15 -26
  152. package/libcxx/include/__bit_reference +207 -18
  153. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  154. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  155. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  156. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  157. package/libcxx/include/__charconv/traits.h +3 -24
  158. package/libcxx/include/__chrono/day.h +11 -0
  159. package/libcxx/include/__chrono/duration.h +58 -33
  160. package/libcxx/include/__chrono/file_clock.h +4 -2
  161. package/libcxx/include/__chrono/is_clock.h +72 -0
  162. package/libcxx/include/__chrono/leap_second.h +13 -0
  163. package/libcxx/include/__chrono/month.h +13 -0
  164. package/libcxx/include/__chrono/month_weekday.h +22 -0
  165. package/libcxx/include/__chrono/monthday.h +20 -0
  166. package/libcxx/include/__chrono/steady_clock.h +1 -1
  167. package/libcxx/include/__chrono/system_clock.h +3 -3
  168. package/libcxx/include/__chrono/time_point.h +37 -13
  169. package/libcxx/include/__chrono/weekday.h +25 -0
  170. package/libcxx/include/__chrono/year.h +11 -0
  171. package/libcxx/include/__chrono/year_month.h +13 -0
  172. package/libcxx/include/__chrono/year_month_day.h +23 -0
  173. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  174. package/libcxx/include/__chrono/zoned_time.h +16 -0
  175. package/libcxx/include/__compare/is_eq.h +6 -6
  176. package/libcxx/include/__compare/strong_order.h +12 -30
  177. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  178. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  179. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  180. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  181. package/libcxx/include/__config +63 -280
  182. package/libcxx/include/__configuration/abi.h +14 -24
  183. package/libcxx/include/__configuration/availability.h +65 -118
  184. package/libcxx/include/__configuration/compiler.h +6 -6
  185. package/libcxx/include/__configuration/experimental.h +38 -0
  186. package/libcxx/include/__configuration/hardening.h +215 -0
  187. package/libcxx/include/__configuration/language.h +3 -0
  188. package/libcxx/include/__configuration/platform.h +9 -16
  189. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  190. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  191. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  192. package/libcxx/include/__exception/exception.h +6 -4
  193. package/libcxx/include/__exception/exception_ptr.h +27 -5
  194. package/libcxx/include/__exception/nested_exception.h +2 -2
  195. package/libcxx/include/__exception/operations.h +5 -5
  196. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  197. package/libcxx/include/__expected/expected.h +62 -64
  198. package/libcxx/include/__expected/unexpected.h +4 -4
  199. package/libcxx/include/__filesystem/copy_options.h +4 -4
  200. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  201. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  202. package/libcxx/include/__filesystem/directory_options.h +7 -4
  203. package/libcxx/include/__filesystem/file_status.h +3 -3
  204. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  205. package/libcxx/include/__filesystem/operations.h +97 -66
  206. package/libcxx/include/__filesystem/path.h +68 -64
  207. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  208. package/libcxx/include/__filesystem/perm_options.h +4 -4
  209. package/libcxx/include/__filesystem/perms.h +4 -4
  210. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  211. package/libcxx/include/__filesystem/space_info.h +1 -1
  212. package/libcxx/include/__filesystem/u8path.h +12 -14
  213. package/libcxx/include/__flat_map/flat_map.h +88 -71
  214. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  215. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  216. package/libcxx/include/__flat_map/utils.h +1 -0
  217. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  218. package/libcxx/include/__flat_set/flat_set.h +86 -68
  219. package/libcxx/include/__format/concepts.h +0 -14
  220. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  221. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  222. package/libcxx/include/__format/format_arg.h +7 -10
  223. package/libcxx/include/__format/format_args.h +1 -1
  224. package/libcxx/include/__format/format_context.h +5 -5
  225. package/libcxx/include/__format/format_parse_context.h +2 -2
  226. package/libcxx/include/__format/formatter_output.h +30 -34
  227. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  228. package/libcxx/include/__format/range_default_formatter.h +2 -41
  229. package/libcxx/include/__format/range_format.h +71 -0
  230. package/libcxx/include/__format/range_formatter.h +1 -0
  231. package/libcxx/include/__format/width_estimation_table.h +4 -2
  232. package/libcxx/include/__functional/bind.h +10 -15
  233. package/libcxx/include/__functional/bind_back.h +1 -1
  234. package/libcxx/include/__functional/bind_front.h +1 -1
  235. package/libcxx/include/__functional/function.h +57 -75
  236. package/libcxx/include/__functional/hash.h +1 -10
  237. package/libcxx/include/__functional/identity.h +1 -1
  238. package/libcxx/include/__functional/is_transparent.h +8 -0
  239. package/libcxx/include/__functional/mem_fn.h +2 -1
  240. package/libcxx/include/__functional/operations.h +18 -0
  241. package/libcxx/include/__functional/ranges_operations.h +7 -0
  242. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  243. package/libcxx/include/__functional/weak_result_type.h +14 -28
  244. package/libcxx/include/__fwd/ios.h +1 -1
  245. package/libcxx/include/__fwd/tuple.h +14 -0
  246. package/libcxx/include/__hash_table +371 -357
  247. package/libcxx/include/__ios/fpos.h +4 -4
  248. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  249. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  250. package/libcxx/include/__iterator/concepts.h +6 -9
  251. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  252. package/libcxx/include/__iterator/distance.h +40 -18
  253. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  254. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  255. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  256. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  257. package/libcxx/include/__iterator/iter_move.h +1 -1
  258. package/libcxx/include/__iterator/iterator.h +13 -0
  259. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  260. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  261. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  262. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  263. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  264. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  265. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  266. package/libcxx/include/__locale +3 -10
  267. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  268. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  269. package/libcxx/include/__locale_dir/messages.h +1 -1
  270. package/libcxx/include/__locale_dir/money.h +2 -2
  271. package/libcxx/include/__locale_dir/num.h +190 -243
  272. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  273. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  274. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  275. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  276. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  277. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  278. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  279. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  280. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  281. package/libcxx/include/__locale_dir/time.h +3 -7
  282. package/libcxx/include/__math/hypot.h +1 -1
  283. package/libcxx/include/__math/logarithms.h +1 -1
  284. package/libcxx/include/__math/traits.h +80 -11
  285. package/libcxx/include/__mdspan/extents.h +7 -4
  286. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  287. package/libcxx/include/__mdspan/mdspan.h +29 -23
  288. package/libcxx/include/__memory/addressof.h +7 -5
  289. package/libcxx/include/__memory/align.h +18 -1
  290. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  291. package/libcxx/include/__memory/allocator.h +14 -26
  292. package/libcxx/include/__memory/allocator_traits.h +6 -4
  293. package/libcxx/include/__memory/compressed_pair.h +15 -9
  294. package/libcxx/include/__memory/construct_at.h +12 -23
  295. package/libcxx/include/__memory/inout_ptr.h +1 -1
  296. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  297. package/libcxx/include/__memory/out_ptr.h +1 -1
  298. package/libcxx/include/__memory/pointer_traits.h +1 -1
  299. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  300. package/libcxx/include/__memory/shared_count.h +9 -30
  301. package/libcxx/include/__memory/shared_ptr.h +100 -145
  302. package/libcxx/include/__memory/temp_value.h +1 -2
  303. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  304. package/libcxx/include/__memory/unique_ptr.h +14 -16
  305. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  306. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  307. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  308. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  309. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  310. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  311. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  312. package/libcxx/include/__mutex/mutex.h +2 -2
  313. package/libcxx/include/__mutex/once_flag.h +14 -11
  314. package/libcxx/include/__mutex/tag_types.h +3 -3
  315. package/libcxx/include/__mutex/unique_lock.h +8 -7
  316. package/libcxx/include/__new/align_val_t.h +6 -0
  317. package/libcxx/include/__new/allocate.h +1 -2
  318. package/libcxx/include/__new/exceptions.h +8 -2
  319. package/libcxx/include/__new/global_new_delete.h +4 -11
  320. package/libcxx/include/__new/interference_size.h +0 -4
  321. package/libcxx/include/__new/launder.h +3 -5
  322. package/libcxx/include/__new/nothrow_t.h +1 -1
  323. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  324. package/libcxx/include/__numeric/midpoint.h +9 -14
  325. package/libcxx/include/__numeric/pstl.h +2 -2
  326. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  327. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  328. package/libcxx/include/__pstl/backends/default.h +14 -14
  329. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  330. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  331. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  332. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  333. package/libcxx/include/__random/binomial_distribution.h +10 -4
  334. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  335. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  336. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  337. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  338. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  339. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  340. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  341. package/libcxx/include/__ranges/common_view.h +7 -7
  342. package/libcxx/include/__ranges/drop_view.h +8 -8
  343. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  344. package/libcxx/include/__ranges/elements_of.h +49 -0
  345. package/libcxx/include/__ranges/empty_view.h +5 -5
  346. package/libcxx/include/__ranges/filter_view.h +10 -10
  347. package/libcxx/include/__ranges/iota_view.h +41 -22
  348. package/libcxx/include/__ranges/owning_view.h +15 -15
  349. package/libcxx/include/__ranges/ref_view.h +6 -6
  350. package/libcxx/include/__ranges/repeat_view.h +17 -10
  351. package/libcxx/include/__ranges/single_view.h +8 -8
  352. package/libcxx/include/__ranges/take_view.h +9 -9
  353. package/libcxx/include/__ranges/transform_view.h +1 -2
  354. package/libcxx/include/__ranges/view_interface.h +10 -10
  355. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  356. package/libcxx/include/__ranges/zip_view.h +20 -20
  357. package/libcxx/include/__split_buffer +612 -240
  358. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  359. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  360. package/libcxx/include/__stop_token/stop_source.h +1 -1
  361. package/libcxx/include/__stop_token/stop_state.h +4 -4
  362. package/libcxx/include/__stop_token/stop_token.h +1 -1
  363. package/libcxx/include/__string/char_traits.h +51 -31
  364. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  365. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  366. package/libcxx/include/__system_error/error_category.h +8 -8
  367. package/libcxx/include/__system_error/error_code.h +5 -5
  368. package/libcxx/include/__system_error/error_condition.h +4 -4
  369. package/libcxx/include/__system_error/system_error.h +1 -1
  370. package/libcxx/include/__thread/id.h +1 -1
  371. package/libcxx/include/__thread/jthread.h +1 -1
  372. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  373. package/libcxx/include/__thread/support/c11.h +8 -8
  374. package/libcxx/include/__thread/support/pthread.h +8 -8
  375. package/libcxx/include/__thread/support/windows.h +8 -8
  376. package/libcxx/include/__thread/thread.h +13 -8
  377. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  378. package/libcxx/include/__tree +849 -701
  379. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  380. package/libcxx/include/__tuple/tuple_element.h +0 -12
  381. package/libcxx/include/__tuple/tuple_size.h +0 -4
  382. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  383. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  384. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  385. package/libcxx/include/__type_traits/invoke.h +8 -0
  386. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  387. package/libcxx/include/__type_traits/is_array.h +26 -0
  388. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  389. package/libcxx/include/__type_traits/is_final.h +1 -1
  390. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  391. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  392. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  393. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  394. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  395. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  396. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  397. package/libcxx/include/__utility/cmp.h +19 -7
  398. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  399. package/libcxx/include/__utility/in_place.h +1 -1
  400. package/libcxx/include/__utility/integer_sequence.h +56 -41
  401. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  402. package/libcxx/include/__utility/pair.h +22 -25
  403. package/libcxx/include/__utility/scope_guard.h +2 -0
  404. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  405. package/libcxx/include/__vector/vector.h +187 -160
  406. package/libcxx/include/__vector/vector_bool.h +76 -83
  407. package/libcxx/include/any +118 -155
  408. package/libcxx/include/array +88 -56
  409. package/libcxx/include/atomic +2 -0
  410. package/libcxx/include/barrier +20 -24
  411. package/libcxx/include/bitset +49 -30
  412. package/libcxx/include/ccomplex +3 -11
  413. package/libcxx/include/chrono +47 -0
  414. package/libcxx/include/ciso646 +3 -6
  415. package/libcxx/include/complex +77 -65
  416. package/libcxx/include/complex.h +10 -10
  417. package/libcxx/include/condition_variable +3 -3
  418. package/libcxx/include/cstdalign +3 -10
  419. package/libcxx/include/cstdbool +3 -10
  420. package/libcxx/include/ctgmath +2 -11
  421. package/libcxx/include/ctype.h +24 -24
  422. package/libcxx/include/cwchar +2 -2
  423. package/libcxx/include/deque +109 -225
  424. package/libcxx/include/errno.h +269 -269
  425. package/libcxx/include/exception +4 -1
  426. package/libcxx/include/ext/hash_map +7 -48
  427. package/libcxx/include/ext/hash_set +2 -8
  428. package/libcxx/include/fenv.h +43 -43
  429. package/libcxx/include/flat_map +663 -11
  430. package/libcxx/include/flat_set +543 -8
  431. package/libcxx/include/float.h +16 -16
  432. package/libcxx/include/forward_list +33 -53
  433. package/libcxx/include/fstream +57 -42
  434. package/libcxx/include/future +41 -51
  435. package/libcxx/include/initializer_list +9 -3
  436. package/libcxx/include/inttypes.h +16 -16
  437. package/libcxx/include/ios +28 -28
  438. package/libcxx/include/istream +19 -13
  439. package/libcxx/include/iterator +10 -0
  440. package/libcxx/include/latch +7 -5
  441. package/libcxx/include/limits +4 -4
  442. package/libcxx/include/list +61 -79
  443. package/libcxx/include/map +386 -274
  444. package/libcxx/include/math.h +19 -0
  445. package/libcxx/include/mdspan +1 -5
  446. package/libcxx/include/mutex +29 -19
  447. package/libcxx/include/optional +644 -149
  448. package/libcxx/include/print +9 -5
  449. package/libcxx/include/queue +39 -37
  450. package/libcxx/include/ranges +48 -0
  451. package/libcxx/include/regex +33 -31
  452. package/libcxx/include/scoped_allocator +16 -11
  453. package/libcxx/include/semaphore +15 -18
  454. package/libcxx/include/set +220 -192
  455. package/libcxx/include/shared_mutex +3 -8
  456. package/libcxx/include/span +53 -37
  457. package/libcxx/include/sstream +34 -28
  458. package/libcxx/include/stack +13 -15
  459. package/libcxx/include/stddef.h +10 -10
  460. package/libcxx/include/stdexcept +2 -2
  461. package/libcxx/include/stdio.h +20 -21
  462. package/libcxx/include/streambuf +59 -19
  463. package/libcxx/include/string +574 -573
  464. package/libcxx/include/string_view +113 -89
  465. package/libcxx/include/strstream +10 -10
  466. package/libcxx/include/syncstream +4 -4
  467. package/libcxx/include/tgmath.h +12 -12
  468. package/libcxx/include/tuple +242 -212
  469. package/libcxx/include/type_traits +8 -2
  470. package/libcxx/include/typeindex +5 -3
  471. package/libcxx/include/typeinfo +92 -89
  472. package/libcxx/include/unordered_map +179 -304
  473. package/libcxx/include/unordered_set +168 -195
  474. package/libcxx/include/utility +12 -0
  475. package/libcxx/include/valarray +106 -161
  476. package/libcxx/include/variant +25 -33
  477. package/libcxx/include/version +41 -24
  478. package/libcxx/include/wctype.h +29 -29
  479. package/libcxx/src/any.cpp +4 -0
  480. package/libcxx/src/atomic.cpp +365 -80
  481. package/libcxx/src/barrier.cpp +4 -3
  482. package/libcxx/src/charconv.cpp +6 -3
  483. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  484. package/libcxx/src/error_category.cpp +3 -1
  485. package/libcxx/src/exception.cpp +2 -10
  486. package/libcxx/src/experimental/time_zone.cpp +1 -1
  487. package/libcxx/src/experimental/tzdb.cpp +4 -1
  488. package/libcxx/src/filesystem/error.h +4 -22
  489. package/libcxx/src/filesystem/format_string.h +9 -18
  490. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  491. package/libcxx/src/filesystem/operations.cpp +2 -9
  492. package/libcxx/src/filesystem/path.cpp +3 -1
  493. package/libcxx/src/include/aligned_alloc.h +65 -0
  494. package/libcxx/src/include/config_elast.h +1 -1
  495. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  496. package/libcxx/src/include/overridable_function.h +8 -10
  497. package/libcxx/src/iostream.cpp +56 -37
  498. package/libcxx/src/locale.cpp +213 -196
  499. package/libcxx/src/memory.cpp +12 -14
  500. package/libcxx/src/mutex_destructor.cpp +1 -1
  501. package/libcxx/src/new.cpp +5 -5
  502. package/libcxx/src/optional.cpp +4 -0
  503. package/libcxx/src/print.cpp +9 -1
  504. package/libcxx/src/random.cpp +0 -26
  505. package/libcxx/src/string.cpp +10 -25
  506. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  507. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  508. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  509. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  510. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  511. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  512. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  513. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  514. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  515. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  516. package/libcxx/src/system_error.cpp +2 -0
  517. package/libcxx/src/thread.cpp +1 -3
  518. package/libcxx/src/valarray.cpp +1 -2
  519. package/libcxx/src/vector.cpp +2 -2
  520. package/libcxxabi/include/__cxxabi_config.h +42 -23
  521. package/libcxxabi/src/cxa_exception.cpp +4 -2
  522. package/libcxxabi/src/cxa_exception.h +16 -14
  523. package/libcxxabi/src/cxa_personality.cpp +126 -9
  524. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  525. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  526. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  527. package/libcxxabi/src/demangle/Utility.h +21 -7
  528. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  529. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  530. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  531. package/libtsan/LICENSE.TXT +311 -0
  532. package/libtsan/builtins/assembly.h +41 -8
  533. package/libtsan/interception/interception_win.cpp +4 -0
  534. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  535. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  536. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  537. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  538. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  539. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  540. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  541. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  542. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  543. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  544. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  545. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  546. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  547. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  548. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  549. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  550. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  551. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  552. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  553. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  554. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  555. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  556. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  557. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  558. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  559. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  560. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  561. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  562. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  563. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  564. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  565. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  566. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  567. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  568. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  569. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  570. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  571. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  572. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  573. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  574. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  575. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  576. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  577. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  578. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  579. package/libtsan/tsan_debugging.cpp +2 -2
  580. package/libtsan/tsan_flags.cpp +37 -0
  581. package/libtsan/tsan_flags.h +8 -0
  582. package/libtsan/tsan_flags.inc +12 -0
  583. package/libtsan/tsan_interceptors.h +9 -1
  584. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  585. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  586. package/libtsan/tsan_interface.h +3 -3
  587. package/libtsan/tsan_interface_ann.cpp +23 -9
  588. package/libtsan/tsan_mman.cpp +18 -4
  589. package/libtsan/tsan_platform.h +44 -7
  590. package/libtsan/tsan_platform_linux.cpp +42 -14
  591. package/libtsan/tsan_platform_mac.cpp +16 -3
  592. package/libtsan/tsan_report.h +14 -1
  593. package/libtsan/tsan_rtl.cpp +14 -0
  594. package/libtsan/tsan_rtl.h +7 -2
  595. package/libtsan/tsan_rtl_aarch64.S +3 -5
  596. package/libtsan/tsan_rtl_access.cpp +8 -3
  597. package/libtsan/tsan_rtl_amd64.S +2 -0
  598. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  599. package/libtsan/tsan_rtl_report.cpp +132 -65
  600. package/libtsan/tsan_rtl_thread.cpp +31 -9
  601. package/libtsan/tsan_symbolize.cpp +1 -1
  602. package/libtsan/tsan_symbolize.h +1 -1
  603. package/libtsan/tsan_trace.h +1 -1
  604. package/libunwind/include/__libunwind_config.h +11 -2
  605. package/libunwind/include/libunwind.h +117 -11
  606. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  607. package/libunwind/src/AddressSpace.hpp +40 -19
  608. package/libunwind/src/CompactUnwinder.hpp +16 -5
  609. package/libunwind/src/DwarfInstructions.hpp +24 -13
  610. package/libunwind/src/DwarfParser.hpp +60 -22
  611. package/libunwind/src/EHHeaderParser.hpp +7 -4
  612. package/libunwind/src/Registers.hpp +226 -22
  613. package/libunwind/src/Unwind-seh.cpp +6 -7
  614. package/libunwind/src/Unwind-wasm.c +7 -7
  615. package/libunwind/src/UnwindCursor.hpp +167 -49
  616. package/libunwind/src/UnwindLevel1.c +46 -17
  617. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  618. package/libunwind/src/UnwindRegistersSave.S +86 -2
  619. package/libunwind/src/assembly.h +5 -1
  620. package/libunwind/src/config.h +9 -0
  621. package/libunwind/src/gcc_personality_v0.c +79 -6
  622. package/libunwind/src/libunwind.cpp +104 -4
  623. package/libunwind/src/libunwind_ext.h +7 -1
  624. package/libunwind/src/shadow_stack_unwind.h +2 -2
  625. package/lldb/pretty_printers.py +948 -0
  626. package/package.json +1 -1
  627. package/std/Build/Step/Compile.zig +18 -19
  628. package/std/Build/Step/Run.zig +13 -6
  629. package/std/Build/Step.zig +0 -3
  630. package/std/Io/Threaded.zig +3 -0
  631. package/std/Target/aarch64.zig +620 -77
  632. package/std/Target/amdgcn.zig +421 -21
  633. package/std/Target/arm.zig +40 -6
  634. package/std/Target/bpf.zig +6 -0
  635. package/std/Target/hexagon.zig +41 -6
  636. package/std/Target/loongarch.zig +18 -0
  637. package/std/Target/mips.zig +6 -0
  638. package/std/Target/nvptx.zig +58 -35
  639. package/std/Target/powerpc.zig +27 -19
  640. package/std/Target/riscv.zig +415 -177
  641. package/std/Target/sparc.zig +17 -0
  642. package/std/Target/wasm.zig +7 -0
  643. package/std/Target/x86.zig +200 -31
  644. package/std/Target/xtensa.zig +65 -0
  645. package/std/Target.zig +11 -2
  646. package/std/c.zig +7 -0
  647. package/std/debug/Dwarf.zig +14 -11
  648. package/std/debug/Pdb.zig +24 -16
  649. package/std/hash/xxhash.zig +0 -6
  650. package/std/math/log10.zig +0 -2
  651. package/std/math/modf.zig +0 -1
  652. package/std/mem.zig +1 -2
  653. package/std/os/linux/x86.zig +2 -2
  654. package/std/os/windows.zig +130 -1
  655. package/std/simd.zig +4 -21
  656. package/std/start.zig +4 -3
  657. package/std/zig/Ast.zig +5 -7
  658. package/std/zig/AstGen.zig +20 -14
  659. package/std/zig/ErrorBundle.zig +6 -2
  660. package/std/zig/ZonGen.zig +13 -21
  661. package/std/zig/llvm/Builder.zig +2 -2
  662. package/std/zig/system/arm.zig +56 -2
  663. package/std/zig/system/windows.zig +34 -1
  664. package/std/zig/system/x86.zig +60 -16
  665. package/std/zig/system.zig +0 -10
  666. package/include/amxbf16transposeintrin.h +0 -94
  667. package/include/amxcomplextransposeintrin.h +0 -303
  668. package/include/amxfp16transposeintrin.h +0 -94
  669. package/include/amxmovrstransposeintrin.h +0 -200
  670. package/include/amxtf32transposeintrin.h +0 -105
  671. package/include/amxtransposeintrin.h +0 -248
  672. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  673. package/std/Build/Step/CheckObject.zig +0 -2764
@@ -5,6 +5,7 @@ const CpuFeature = std.Target.Cpu.Feature;
5
5
  const CpuModel = std.Target.Cpu.Model;
6
6
 
7
7
  pub const Feature = enum {
8
+ @"64bit",
8
9
  crypto,
9
10
  deprecated_v8,
10
11
  detectroundchange,
@@ -23,6 +24,7 @@ pub const Feature = enum {
23
24
  leonpwrpsr,
24
25
  no_fmuls,
25
26
  no_fsmuld,
27
+ no_predictor,
26
28
  osa2011,
27
29
  popc,
28
30
  reserve_g1,
@@ -73,6 +75,13 @@ pub const all_features = blk: {
73
75
  const len = @typeInfo(Feature).@"enum".fields.len;
74
76
  std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
75
77
  var result: [len]CpuFeature = undefined;
78
+ result[@intFromEnum(Feature.@"64bit")] = .{
79
+ .llvm_name = "64bit",
80
+ .description = "Enable 64-bit mode",
81
+ .dependencies = featureSet(&[_]Feature{
82
+ .v9,
83
+ }),
84
+ };
76
85
  result[@intFromEnum(Feature.crypto)] = .{
77
86
  .llvm_name = "crypto",
78
87
  .description = "Enable cryptographic extensions",
@@ -165,6 +174,11 @@ pub const all_features = blk: {
165
174
  .description = "Disable the fsmuld instruction.",
166
175
  .dependencies = featureSet(&[_]Feature{}),
167
176
  };
177
+ result[@intFromEnum(Feature.no_predictor)] = .{
178
+ .llvm_name = "no-predictor",
179
+ .description = "Processor has no branch predictor, branches stall execution",
180
+ .dependencies = featureSet(&[_]Feature{}),
181
+ };
168
182
  result[@intFromEnum(Feature.osa2011)] = .{
169
183
  .llvm_name = "osa2011",
170
184
  .description = "Enable Oracle SPARC Architecture 2011 extensions",
@@ -586,6 +600,7 @@ pub const cpu = struct {
586
600
  .llvm_name = "niagara",
587
601
  .features = featureSet(&[_]Feature{
588
602
  .deprecated_v8,
603
+ .no_predictor,
589
604
  .ua2005,
590
605
  }),
591
606
  };
@@ -594,6 +609,7 @@ pub const cpu = struct {
594
609
  .llvm_name = "niagara2",
595
610
  .features = featureSet(&[_]Feature{
596
611
  .deprecated_v8,
612
+ .no_predictor,
597
613
  .popc,
598
614
  .ua2005,
599
615
  }),
@@ -603,6 +619,7 @@ pub const cpu = struct {
603
619
  .llvm_name = "niagara3",
604
620
  .features = featureSet(&[_]Feature{
605
621
  .deprecated_v8,
622
+ .no_predictor,
606
623
  .popc,
607
624
  .ua2005,
608
625
  .ua2007,
@@ -12,6 +12,7 @@ pub const Feature = enum {
12
12
  exception_handling,
13
13
  extended_const,
14
14
  fp16,
15
+ gc,
15
16
  multimemory,
16
17
  multivalue,
17
18
  mutable_globals,
@@ -71,6 +72,11 @@ pub const all_features = blk: {
71
72
  .description = "Enable FP16 instructions",
72
73
  .dependencies = featureSet(&[_]Feature{}),
73
74
  };
75
+ result[@intFromEnum(Feature.gc)] = .{
76
+ .llvm_name = "gc",
77
+ .description = "Enable wasm gc",
78
+ .dependencies = featureSet(&[_]Feature{}),
79
+ };
74
80
  result[@intFromEnum(Feature.multimemory)] = .{
75
81
  .llvm_name = "multimemory",
76
82
  .description = "Enable multiple memories",
@@ -148,6 +154,7 @@ pub const cpu = struct {
148
154
  .exception_handling,
149
155
  .extended_const,
150
156
  .fp16,
157
+ .gc,
151
158
  .multimemory,
152
159
  .multivalue,
153
160
  .mutable_globals,
@@ -22,7 +22,6 @@ pub const Feature = enum {
22
22
  amx_movrs,
23
23
  amx_tf32,
24
24
  amx_tile,
25
- amx_transpose,
26
25
  avx,
27
26
  avx10_1,
28
27
  avx10_2,
@@ -67,7 +66,6 @@ pub const Feature = enum {
67
66
  egpr,
68
67
  enqcmd,
69
68
  ermsb,
70
- evex512,
71
69
  f16c,
72
70
  false_deps_getmant,
73
71
  false_deps_lzcnt_tzcnt,
@@ -136,6 +134,7 @@ pub const Feature = enum {
136
134
  ppx,
137
135
  prefer_128_bit,
138
136
  prefer_256_bit,
137
+ prefer_legacy_setcc,
139
138
  prefer_mask_registers,
140
139
  prefer_movmsk_over_vtest,
141
140
  prefer_no_gather,
@@ -168,6 +167,7 @@ pub const Feature = enum {
168
167
  slow_lea,
169
168
  slow_pmaddwd,
170
169
  slow_pmulld,
170
+ slow_pmullq,
171
171
  slow_shld,
172
172
  slow_two_mem_ops,
173
173
  slow_unaligned_mem_16,
@@ -199,6 +199,7 @@ pub const Feature = enum {
199
199
  waitpkg,
200
200
  wbnoinvd,
201
201
  widekl,
202
+ x32,
202
203
  x87,
203
204
  xop,
204
205
  xsave,
@@ -324,13 +325,6 @@ pub const all_features = blk: {
324
325
  .description = "Support AMX-TILE instructions",
325
326
  .dependencies = featureSet(&[_]Feature{}),
326
327
  };
327
- result[@intFromEnum(Feature.amx_transpose)] = .{
328
- .llvm_name = "amx-transpose",
329
- .description = "Support AMX amx-transpose instructions",
330
- .dependencies = featureSet(&[_]Feature{
331
- .amx_tile,
332
- }),
333
- };
334
328
  result[@intFromEnum(Feature.avx)] = .{
335
329
  .llvm_name = "avx",
336
330
  .description = "Enable AVX instructions",
@@ -339,8 +333,8 @@ pub const all_features = blk: {
339
333
  }),
340
334
  };
341
335
  result[@intFromEnum(Feature.avx10_1)] = .{
342
- .llvm_name = "avx10.1-512",
343
- .description = "Support AVX10.1 up to 512-bit instruction",
336
+ .llvm_name = "avx10.1",
337
+ .description = "Support AVX10.1 instruction",
344
338
  .dependencies = featureSet(&[_]Feature{
345
339
  .avx512bf16,
346
340
  .avx512bitalg,
@@ -356,8 +350,8 @@ pub const all_features = blk: {
356
350
  }),
357
351
  };
358
352
  result[@intFromEnum(Feature.avx10_2)] = .{
359
- .llvm_name = "avx10.2-512",
360
- .description = "Support AVX10.2 up to 512-bit instruction",
353
+ .llvm_name = "avx10.2",
354
+ .description = "Support AVX10.2 instruction",
361
355
  .dependencies = featureSet(&[_]Feature{
362
356
  .avx10_1,
363
357
  }),
@@ -416,7 +410,6 @@ pub const all_features = blk: {
416
410
  .description = "Enable AVX-512 instructions",
417
411
  .dependencies = featureSet(&[_]Feature{
418
412
  .avx2,
419
- .evex512,
420
413
  .f16c,
421
414
  .fma,
422
415
  }),
@@ -616,11 +609,6 @@ pub const all_features = blk: {
616
609
  .description = "REP MOVS/STOS are fast",
617
610
  .dependencies = featureSet(&[_]Feature{}),
618
611
  };
619
- result[@intFromEnum(Feature.evex512)] = .{
620
- .llvm_name = "evex512",
621
- .description = "Support ZMM and 64-bit mask instructions",
622
- .dependencies = featureSet(&[_]Feature{}),
623
- };
624
612
  result[@intFromEnum(Feature.f16c)] = .{
625
613
  .llvm_name = "f16c",
626
614
  .description = "Support 16-bit floating point conversion instructions",
@@ -974,6 +962,11 @@ pub const all_features = blk: {
974
962
  .description = "Prefer 256-bit AVX instructions",
975
963
  .dependencies = featureSet(&[_]Feature{}),
976
964
  };
965
+ result[@intFromEnum(Feature.prefer_legacy_setcc)] = .{
966
+ .llvm_name = "prefer-legacy-setcc",
967
+ .description = "Prefer to emit legacy SetCC.",
968
+ .dependencies = featureSet(&[_]Feature{}),
969
+ };
977
970
  result[@intFromEnum(Feature.prefer_mask_registers)] = .{
978
971
  .llvm_name = "prefer-mask-registers",
979
972
  .description = "Prefer AVX512 mask registers over PTEST/MOVMSK",
@@ -1145,6 +1138,11 @@ pub const all_features = blk: {
1145
1138
  .description = "PMULLD instruction is slow (compared to PMULLW/PMULHW and PMULUDQ)",
1146
1139
  .dependencies = featureSet(&[_]Feature{}),
1147
1140
  };
1141
+ result[@intFromEnum(Feature.slow_pmullq)] = .{
1142
+ .llvm_name = "slow-pmullq",
1143
+ .description = "PMULLQ instruction is slow",
1144
+ .dependencies = featureSet(&[_]Feature{}),
1145
+ };
1148
1146
  result[@intFromEnum(Feature.slow_shld)] = .{
1149
1147
  .llvm_name = "slow-shld",
1150
1148
  .description = "SHLD instruction is slow",
@@ -1325,6 +1323,11 @@ pub const all_features = blk: {
1325
1323
  .kl,
1326
1324
  }),
1327
1325
  };
1326
+ result[@intFromEnum(Feature.x32)] = .{
1327
+ .llvm_name = "x32",
1328
+ .description = "64-bit with ILP32 programming model (e.g. x32 ABI)",
1329
+ .dependencies = featureSet(&[_]Feature{}),
1330
+ };
1328
1331
  result[@intFromEnum(Feature.x87)] = .{
1329
1332
  .llvm_name = "x87",
1330
1333
  .description = "Enable X87 float instructions",
@@ -1393,7 +1396,6 @@ pub const cpu = struct {
1393
1396
  .cx16,
1394
1397
  .f16c,
1395
1398
  .false_deps_perm,
1396
- .false_deps_popcnt,
1397
1399
  .fast_15bytenop,
1398
1400
  .fast_gather,
1399
1401
  .fast_scalar_fsqrt,
@@ -1432,6 +1434,7 @@ pub const cpu = struct {
1432
1434
  .sha,
1433
1435
  .shstk,
1434
1436
  .slow_3ops_lea,
1437
+ .slow_pmullq,
1435
1438
  .smap,
1436
1439
  .smep,
1437
1440
  .tuning_fast_imm_vector_shift,
@@ -1490,7 +1493,6 @@ pub const cpu = struct {
1490
1493
  .enqcmd,
1491
1494
  .f16c,
1492
1495
  .false_deps_perm,
1493
- .false_deps_popcnt,
1494
1496
  .fast_15bytenop,
1495
1497
  .fast_gather,
1496
1498
  .fast_scalar_fsqrt,
@@ -1529,6 +1531,7 @@ pub const cpu = struct {
1529
1531
  .sha,
1530
1532
  .shstk,
1531
1533
  .slow_3ops_lea,
1534
+ .slow_pmullq,
1532
1535
  .smap,
1533
1536
  .smep,
1534
1537
  .tuning_fast_imm_vector_shift,
@@ -1566,7 +1569,6 @@ pub const cpu = struct {
1566
1569
  .enqcmd,
1567
1570
  .f16c,
1568
1571
  .false_deps_perm,
1569
- .false_deps_popcnt,
1570
1572
  .fast_15bytenop,
1571
1573
  .fast_gather,
1572
1574
  .fast_scalar_fsqrt,
@@ -1606,6 +1608,7 @@ pub const cpu = struct {
1606
1608
  .sha512,
1607
1609
  .shstk,
1608
1610
  .slow_3ops_lea,
1611
+ .slow_pmullq,
1609
1612
  .sm3,
1610
1613
  .sm4,
1611
1614
  .smap,
@@ -2204,6 +2207,7 @@ pub const cpu = struct {
2204
2207
  .sahf,
2205
2208
  .sha,
2206
2209
  .slow_3ops_lea,
2210
+ .slow_pmullq,
2207
2211
  .smap,
2208
2212
  .smep,
2209
2213
  .tuning_fast_imm_vector_shift,
@@ -2297,7 +2301,6 @@ pub const cpu = struct {
2297
2301
  .enqcmd,
2298
2302
  .f16c,
2299
2303
  .false_deps_perm,
2300
- .false_deps_popcnt,
2301
2304
  .fast_15bytenop,
2302
2305
  .fast_gather,
2303
2306
  .fast_scalar_fsqrt,
@@ -2338,6 +2341,7 @@ pub const cpu = struct {
2338
2341
  .sha512,
2339
2342
  .shstk,
2340
2343
  .slow_3ops_lea,
2344
+ .slow_pmullq,
2341
2345
  .sm3,
2342
2346
  .sm4,
2343
2347
  .tuning_fast_imm_vector_shift,
@@ -2464,7 +2468,6 @@ pub const cpu = struct {
2464
2468
  .amx_int8,
2465
2469
  .amx_movrs,
2466
2470
  .amx_tf32,
2467
- .amx_transpose,
2468
2471
  .avx10_2,
2469
2472
  .avxifma,
2470
2473
  .avxneconvert,
@@ -2475,7 +2478,6 @@ pub const cpu = struct {
2475
2478
  .bmi2,
2476
2479
  .branch_hint,
2477
2480
  .ccmp,
2478
- .cf,
2479
2481
  .cldemote,
2480
2482
  .clflushopt,
2481
2483
  .clwb,
@@ -2533,12 +2535,12 @@ pub const cpu = struct {
2533
2535
  .sha,
2534
2536
  .sha512,
2535
2537
  .shstk,
2538
+ .slow_pmullq,
2536
2539
  .sm3,
2537
2540
  .sm4,
2538
2541
  .tsxldtrk,
2539
2542
  .tuning_fast_imm_vector_shift,
2540
2543
  .uintr,
2541
- .usermsr,
2542
2544
  .vaes,
2543
2545
  .vpclmulqdq,
2544
2546
  .vzeroupper,
@@ -2622,6 +2624,7 @@ pub const cpu = struct {
2622
2624
  .serialize,
2623
2625
  .sha,
2624
2626
  .shstk,
2627
+ .slow_pmullq,
2625
2628
  .smap,
2626
2629
  .smep,
2627
2630
  .tsxldtrk,
@@ -2935,6 +2938,7 @@ pub const cpu = struct {
2935
2938
  .serialize,
2936
2939
  .sha,
2937
2940
  .shstk,
2941
+ .slow_pmullq,
2938
2942
  .tsxldtrk,
2939
2943
  .tuning_fast_imm_vector_shift,
2940
2944
  .uintr,
@@ -3024,6 +3028,7 @@ pub const cpu = struct {
3024
3028
  .serialize,
3025
3029
  .sha,
3026
3030
  .shstk,
3031
+ .slow_pmullq,
3027
3032
  .tsxldtrk,
3028
3033
  .tuning_fast_imm_vector_shift,
3029
3034
  .uintr,
@@ -3181,6 +3186,7 @@ pub const cpu = struct {
3181
3186
  .rdseed,
3182
3187
  .sahf,
3183
3188
  .sha,
3189
+ .slow_pmullq,
3184
3190
  .tuning_fast_imm_vector_shift,
3185
3191
  .vaes,
3186
3192
  .vpclmulqdq,
@@ -3245,6 +3251,7 @@ pub const cpu = struct {
3245
3251
  .rdseed,
3246
3252
  .sahf,
3247
3253
  .sha,
3254
+ .slow_pmullq,
3248
3255
  .tuning_fast_imm_vector_shift,
3249
3256
  .vaes,
3250
3257
  .vpclmulqdq,
@@ -3475,7 +3482,6 @@ pub const cpu = struct {
3475
3482
  .enqcmd,
3476
3483
  .f16c,
3477
3484
  .false_deps_perm,
3478
- .false_deps_popcnt,
3479
3485
  .fast_15bytenop,
3480
3486
  .fast_gather,
3481
3487
  .fast_scalar_fsqrt,
@@ -3515,6 +3521,7 @@ pub const cpu = struct {
3515
3521
  .sha512,
3516
3522
  .shstk,
3517
3523
  .slow_3ops_lea,
3524
+ .slow_pmullq,
3518
3525
  .sm3,
3519
3526
  .sm4,
3520
3527
  .tuning_fast_imm_vector_shift,
@@ -3546,7 +3553,6 @@ pub const cpu = struct {
3546
3553
  .cx16,
3547
3554
  .f16c,
3548
3555
  .false_deps_perm,
3549
- .false_deps_popcnt,
3550
3556
  .fast_15bytenop,
3551
3557
  .fast_gather,
3552
3558
  .fast_scalar_fsqrt,
@@ -3585,6 +3591,7 @@ pub const cpu = struct {
3585
3591
  .sha,
3586
3592
  .shstk,
3587
3593
  .slow_3ops_lea,
3594
+ .slow_pmullq,
3588
3595
  .smap,
3589
3596
  .smep,
3590
3597
  .tuning_fast_imm_vector_shift,
@@ -3635,6 +3642,90 @@ pub const cpu = struct {
3635
3642
  .x87,
3636
3643
  }),
3637
3644
  };
3645
+ pub const novalake: CpuModel = .{
3646
+ .name = "novalake",
3647
+ .llvm_name = "novalake",
3648
+ .features = featureSet(&[_]Feature{
3649
+ .@"64bit",
3650
+ .adx,
3651
+ .allow_light_256_bit,
3652
+ .avx10_2,
3653
+ .avxifma,
3654
+ .avxneconvert,
3655
+ .avxvnni,
3656
+ .avxvnniint16,
3657
+ .avxvnniint8,
3658
+ .bmi,
3659
+ .bmi2,
3660
+ .ccmp,
3661
+ .clflushopt,
3662
+ .clwb,
3663
+ .cmov,
3664
+ .cmpccxadd,
3665
+ .cx16,
3666
+ .egpr,
3667
+ .enqcmd,
3668
+ .false_deps_perm,
3669
+ .fast_15bytenop,
3670
+ .fast_gather,
3671
+ .fast_scalar_fsqrt,
3672
+ .fast_shld_rotate,
3673
+ .fast_variable_crosslane_shuffle,
3674
+ .fast_variable_perlane_shuffle,
3675
+ .fast_vector_fsqrt,
3676
+ .fsgsbase,
3677
+ .fxsr,
3678
+ .gfni,
3679
+ .hreset,
3680
+ .idivq_to_divl,
3681
+ .invpcid,
3682
+ .lzcnt,
3683
+ .macrofusion,
3684
+ .mmx,
3685
+ .movbe,
3686
+ .movdir64b,
3687
+ .movdiri,
3688
+ .movrs,
3689
+ .ndd,
3690
+ .nf,
3691
+ .no_bypass_delay_blend,
3692
+ .no_bypass_delay_mov,
3693
+ .no_bypass_delay_shuffle,
3694
+ .nopl,
3695
+ .pconfig,
3696
+ .pku,
3697
+ .popcnt,
3698
+ .ppx,
3699
+ .prefer_movmsk_over_vtest,
3700
+ .prefetchi,
3701
+ .prfchw,
3702
+ .ptwrite,
3703
+ .push2pop2,
3704
+ .rdpid,
3705
+ .rdrnd,
3706
+ .rdseed,
3707
+ .sahf,
3708
+ .serialize,
3709
+ .sha,
3710
+ .sha512,
3711
+ .shstk,
3712
+ .slow_3ops_lea,
3713
+ .slow_pmullq,
3714
+ .sm3,
3715
+ .sm4,
3716
+ .tuning_fast_imm_vector_shift,
3717
+ .uintr,
3718
+ .vaes,
3719
+ .vpclmulqdq,
3720
+ .vzeroupper,
3721
+ .waitpkg,
3722
+ .x87,
3723
+ .xsavec,
3724
+ .xsaveopt,
3725
+ .xsaves,
3726
+ .zu,
3727
+ }),
3728
+ };
3638
3729
  pub const opteron: CpuModel = .{
3639
3730
  .name = "opteron",
3640
3731
  .llvm_name = "opteron",
@@ -3697,7 +3788,6 @@ pub const cpu = struct {
3697
3788
  .enqcmd,
3698
3789
  .f16c,
3699
3790
  .false_deps_perm,
3700
- .false_deps_popcnt,
3701
3791
  .fast_15bytenop,
3702
3792
  .fast_gather,
3703
3793
  .fast_scalar_fsqrt,
@@ -3726,7 +3816,6 @@ pub const cpu = struct {
3726
3816
  .pku,
3727
3817
  .popcnt,
3728
3818
  .prefer_movmsk_over_vtest,
3729
- .prefetchi,
3730
3819
  .prfchw,
3731
3820
  .ptwrite,
3732
3821
  .rdpid,
@@ -3738,6 +3827,7 @@ pub const cpu = struct {
3738
3827
  .sha512,
3739
3828
  .shstk,
3740
3829
  .slow_3ops_lea,
3830
+ .slow_pmullq,
3741
3831
  .sm3,
3742
3832
  .sm4,
3743
3833
  .tuning_fast_imm_vector_shift,
@@ -3908,7 +3998,6 @@ pub const cpu = struct {
3908
3998
  .cx16,
3909
3999
  .f16c,
3910
4000
  .false_deps_perm,
3911
- .false_deps_popcnt,
3912
4001
  .fast_15bytenop,
3913
4002
  .fast_gather,
3914
4003
  .fast_scalar_fsqrt,
@@ -3947,6 +4036,7 @@ pub const cpu = struct {
3947
4036
  .sha,
3948
4037
  .shstk,
3949
4038
  .slow_3ops_lea,
4039
+ .slow_pmullq,
3950
4040
  .smap,
3951
4041
  .smep,
3952
4042
  .tuning_fast_imm_vector_shift,
@@ -4013,6 +4103,7 @@ pub const cpu = struct {
4013
4103
  .rdseed,
4014
4104
  .sahf,
4015
4105
  .sha,
4106
+ .slow_pmullq,
4016
4107
  .smap,
4017
4108
  .smep,
4018
4109
  .tuning_fast_imm_vector_shift,
@@ -4124,6 +4215,7 @@ pub const cpu = struct {
4124
4215
  .serialize,
4125
4216
  .sha,
4126
4217
  .shstk,
4218
+ .slow_pmullq,
4127
4219
  .smap,
4128
4220
  .smep,
4129
4221
  .tsxldtrk,
@@ -4494,6 +4586,7 @@ pub const cpu = struct {
4494
4586
  .sahf,
4495
4587
  .sha,
4496
4588
  .shstk,
4589
+ .slow_pmullq,
4497
4590
  .smap,
4498
4591
  .smep,
4499
4592
  .tuning_fast_imm_vector_shift,
@@ -4567,6 +4660,82 @@ pub const cpu = struct {
4567
4660
  .x87,
4568
4661
  }),
4569
4662
  };
4663
+ pub const wildcatlake: CpuModel = .{
4664
+ .name = "wildcatlake",
4665
+ .llvm_name = "wildcatlake",
4666
+ .features = featureSet(&[_]Feature{
4667
+ .@"64bit",
4668
+ .adx,
4669
+ .allow_light_256_bit,
4670
+ .avxifma,
4671
+ .avxneconvert,
4672
+ .avxvnni,
4673
+ .avxvnniint16,
4674
+ .avxvnniint8,
4675
+ .bmi,
4676
+ .bmi2,
4677
+ .clflushopt,
4678
+ .clwb,
4679
+ .cmov,
4680
+ .cmpccxadd,
4681
+ .cx16,
4682
+ .enqcmd,
4683
+ .f16c,
4684
+ .false_deps_perm,
4685
+ .fast_15bytenop,
4686
+ .fast_gather,
4687
+ .fast_scalar_fsqrt,
4688
+ .fast_shld_rotate,
4689
+ .fast_variable_crosslane_shuffle,
4690
+ .fast_variable_perlane_shuffle,
4691
+ .fast_vector_fsqrt,
4692
+ .fma,
4693
+ .fsgsbase,
4694
+ .fxsr,
4695
+ .gfni,
4696
+ .hreset,
4697
+ .idivq_to_divl,
4698
+ .invpcid,
4699
+ .lzcnt,
4700
+ .macrofusion,
4701
+ .mmx,
4702
+ .movbe,
4703
+ .movdir64b,
4704
+ .movdiri,
4705
+ .no_bypass_delay_blend,
4706
+ .no_bypass_delay_mov,
4707
+ .no_bypass_delay_shuffle,
4708
+ .nopl,
4709
+ .pconfig,
4710
+ .pku,
4711
+ .popcnt,
4712
+ .prefer_movmsk_over_vtest,
4713
+ .prfchw,
4714
+ .ptwrite,
4715
+ .rdpid,
4716
+ .rdrnd,
4717
+ .rdseed,
4718
+ .sahf,
4719
+ .serialize,
4720
+ .sha,
4721
+ .sha512,
4722
+ .shstk,
4723
+ .slow_3ops_lea,
4724
+ .slow_pmullq,
4725
+ .sm3,
4726
+ .sm4,
4727
+ .tuning_fast_imm_vector_shift,
4728
+ .uintr,
4729
+ .vaes,
4730
+ .vpclmulqdq,
4731
+ .vzeroupper,
4732
+ .waitpkg,
4733
+ .x87,
4734
+ .xsavec,
4735
+ .xsaveopt,
4736
+ .xsaves,
4737
+ }),
4738
+ };
4570
4739
  pub const winchip2: CpuModel = .{
4571
4740
  .name = "winchip2",
4572
4741
  .llvm_name = "winchip2",
@@ -15,6 +15,7 @@ pub const Feature = enum {
15
15
  div32,
16
16
  exception,
17
17
  extendedl32r,
18
+ forced_atomics,
18
19
  fp,
19
20
  highpriinterrupts,
20
21
  highpriinterrupts_level3,
@@ -34,6 +35,7 @@ pub const Feature = enum {
34
35
  prid,
35
36
  regprotect,
36
37
  rvector,
38
+ s32c1i,
37
39
  sext,
38
40
  threadptr,
39
41
  timers1,
@@ -101,6 +103,11 @@ pub const all_features = blk: {
101
103
  .description = "Enable Xtensa Extended L32R option",
102
104
  .dependencies = featureSet(&[_]Feature{}),
103
105
  };
106
+ result[@intFromEnum(Feature.forced_atomics)] = .{
107
+ .llvm_name = "forced-atomics",
108
+ .description = "Assume that lock-free native-width atomics are available",
109
+ .dependencies = featureSet(&[_]Feature{}),
110
+ };
104
111
  result[@intFromEnum(Feature.fp)] = .{
105
112
  .llvm_name = "fp",
106
113
  .description = "Enable Xtensa Single FP instructions",
@@ -206,6 +213,11 @@ pub const all_features = blk: {
206
213
  .description = "Enable Xtensa Relocatable Vector option",
207
214
  .dependencies = featureSet(&[_]Feature{}),
208
215
  };
216
+ result[@intFromEnum(Feature.s32c1i)] = .{
217
+ .llvm_name = "s32c1i",
218
+ .description = "Enable Xtensa S32C1I option",
219
+ .dependencies = featureSet(&[_]Feature{}),
220
+ };
209
221
  result[@intFromEnum(Feature.sext)] = .{
210
222
  .llvm_name = "sext",
211
223
  .description = "Enable Xtensa Sign Extend option",
@@ -245,6 +257,59 @@ pub const all_features = blk: {
245
257
  };
246
258
 
247
259
  pub const cpu = struct {
260
+ pub const esp32: CpuModel = .{
261
+ .name = "esp32",
262
+ .llvm_name = "esp32",
263
+ .features = featureSet(&[_]Feature{
264
+ .bool,
265
+ .clamps,
266
+ .coprocessor,
267
+ .dcache,
268
+ .debug,
269
+ .density,
270
+ .dfpaccel,
271
+ .div32,
272
+ .exception,
273
+ .fp,
274
+ .highpriinterrupts_level7,
275
+ .interrupt,
276
+ .loop,
277
+ .mac16,
278
+ .minmax,
279
+ .miscsr,
280
+ .mul16,
281
+ .mul32,
282
+ .mul32high,
283
+ .nsa,
284
+ .prid,
285
+ .regprotect,
286
+ .rvector,
287
+ .s32c1i,
288
+ .sext,
289
+ .threadptr,
290
+ .timers3,
291
+ .windowed,
292
+ }),
293
+ };
294
+ pub const esp8266: CpuModel = .{
295
+ .name = "esp8266",
296
+ .llvm_name = "esp8266",
297
+ .features = featureSet(&[_]Feature{
298
+ .debug,
299
+ .density,
300
+ .exception,
301
+ .extendedl32r,
302
+ .highpriinterrupts_level3,
303
+ .interrupt,
304
+ .mul16,
305
+ .mul32,
306
+ .nsa,
307
+ .prid,
308
+ .regprotect,
309
+ .rvector,
310
+ .timers1,
311
+ }),
312
+ };
248
313
  pub const generic: CpuModel = .{
249
314
  .name = "generic",
250
315
  .llvm_name = "generic",