@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.
- package/c/stdlib.zig +32 -22
- package/compiler/aro/aro/Compilation.zig +0 -3
- package/compiler/translate-c/ast.zig +5 -2
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +1 -22
- package/docs/wasm/markdown/Parser.zig +5 -9
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +40 -19
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +60 -22
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Step/Compile.zig +18 -19
- package/std/Build/Step/Run.zig +13 -6
- package/std/Build/Step.zig +0 -3
- package/std/Io/Threaded.zig +3 -0
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +415 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +11 -2
- package/std/c.zig +7 -0
- package/std/debug/Dwarf.zig +14 -11
- package/std/debug/Pdb.zig +24 -16
- package/std/hash/xxhash.zig +0 -6
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +0 -1
- package/std/mem.zig +1 -2
- package/std/os/linux/x86.zig +2 -2
- package/std/os/windows.zig +130 -1
- package/std/simd.zig +4 -21
- package/std/start.zig +4 -3
- package/std/zig/Ast.zig +5 -7
- package/std/zig/AstGen.zig +20 -14
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/ZonGen.zig +13 -21
- package/std/zig/llvm/Builder.zig +2 -2
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
package/c/stdlib.zig
CHANGED
|
@@ -158,29 +158,40 @@ fn stringToInteger(comptime T: type, noalias buf: [*:0]const u8, noalias maybe_e
|
|
|
158
158
|
};
|
|
159
159
|
|
|
160
160
|
// The prefix is allowed iff base == 0 or base == base of the prefix
|
|
161
|
-
const real_base: u6
|
|
162
|
-
current
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
161
|
+
const real_base: u6, const digits = blk: {
|
|
162
|
+
if (current[0] == '0') {
|
|
163
|
+
if ((base == 0 or base == 16) and std.ascii.toLower(current[1]) == 'x' and std.ascii.isHex(current[2])) {
|
|
164
|
+
break :blk .{ 16, current[2..] };
|
|
165
|
+
} else if (base == 0) {
|
|
166
|
+
break :blk .{ 8, current };
|
|
167
|
+
} else {
|
|
168
|
+
break :blk .{
|
|
169
|
+
switch (base) {
|
|
170
|
+
0 => 10,
|
|
171
|
+
else => @intCast(base),
|
|
172
|
+
},
|
|
173
|
+
current,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
} else {
|
|
177
|
+
const real_base: u6 = switch (base) {
|
|
178
|
+
0 => 10,
|
|
179
|
+
else => @intCast(base),
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
_ = std.fmt.charToDigit(current[0], real_base) catch {
|
|
183
|
+
// No digits to parse. Setting errno to .INVAL is optional in this case.
|
|
184
|
+
if (maybe_end) |end| {
|
|
185
|
+
end.* = buf;
|
|
186
|
+
}
|
|
187
|
+
return 0;
|
|
188
|
+
};
|
|
189
|
+
break :blk .{ real_base, current };
|
|
171
190
|
}
|
|
172
|
-
|
|
173
|
-
break :blk switch (base) {
|
|
174
|
-
0 => 10,
|
|
175
|
-
else => @intCast(base),
|
|
176
|
-
};
|
|
177
|
-
} else switch (base) {
|
|
178
|
-
0 => 10,
|
|
179
|
-
else => @intCast(base),
|
|
180
191
|
};
|
|
181
192
|
|
|
182
193
|
if (@typeInfo(T).int.signedness == .unsigned) {
|
|
183
|
-
const result = parseDigitsWithSignGenericCharacter(T, u8,
|
|
194
|
+
const result = parseDigitsWithSignGenericCharacter(T, u8, digits, maybe_end, real_base, .pos) catch {
|
|
184
195
|
std.c._errno().* = @intFromEnum(std.c.E.RANGE);
|
|
185
196
|
return std.math.maxInt(T);
|
|
186
197
|
};
|
|
@@ -188,12 +199,12 @@ fn stringToInteger(comptime T: type, noalias buf: [*:0]const u8, noalias maybe_e
|
|
|
188
199
|
return if (negative) -%result else result;
|
|
189
200
|
}
|
|
190
201
|
|
|
191
|
-
if (negative) return parseDigitsWithSignGenericCharacter(T, u8,
|
|
202
|
+
if (negative) return parseDigitsWithSignGenericCharacter(T, u8, digits, maybe_end, real_base, .neg) catch blk: {
|
|
192
203
|
std.c._errno().* = @intFromEnum(std.c.E.RANGE);
|
|
193
204
|
break :blk std.math.minInt(T);
|
|
194
205
|
};
|
|
195
206
|
|
|
196
|
-
return parseDigitsWithSignGenericCharacter(T, u8,
|
|
207
|
+
return parseDigitsWithSignGenericCharacter(T, u8, digits, maybe_end, real_base, .pos) catch blk: {
|
|
197
208
|
std.c._errno().* = @intFromEnum(std.c.E.RANGE);
|
|
198
209
|
break :blk std.math.maxInt(T);
|
|
199
210
|
};
|
|
@@ -222,7 +233,6 @@ fn parseDigitsWithSignGenericCharacter(
|
|
|
222
233
|
var value: T = 0;
|
|
223
234
|
while (true) {
|
|
224
235
|
const c: u8 = std.math.cast(u8, current[0]) orelse break;
|
|
225
|
-
if (!std.ascii.isAlphanumeric(c)) break;
|
|
226
236
|
|
|
227
237
|
const digit: u6 = @intCast(std.fmt.charToDigit(c, base) catch break);
|
|
228
238
|
defer current += 1;
|
|
@@ -498,7 +498,6 @@ fn generateSystemDefines(comp: *Compilation, w: *Io.Writer) !void {
|
|
|
498
498
|
.{ .fma, "__FMA__" },
|
|
499
499
|
.{ .f16c, "__F16C__" },
|
|
500
500
|
.{ .gfni, "__GFNI__" },
|
|
501
|
-
.{ .evex512, "__EVEX512__" },
|
|
502
501
|
|
|
503
502
|
.{ .avx10_1, "__AVX10_1__" },
|
|
504
503
|
.{ .avx10_1, "__AVX10_1_512__" },
|
|
@@ -560,7 +559,6 @@ fn generateSystemDefines(comp: *Compilation, w: *Io.Writer) !void {
|
|
|
560
559
|
.{ .amx_complex, "__AMX_COMPLEX__" },
|
|
561
560
|
.{ .amx_fp8, "__AMX_FP8__" },
|
|
562
561
|
.{ .amx_movrs, "__AMX_MOVRS__" },
|
|
563
|
-
.{ .amx_transpose, "__AMX_TRANSPOSE__" },
|
|
564
562
|
.{ .amx_avx512, "__AMX_AVX512__" },
|
|
565
563
|
.{ .amx_tf32, "__AMX_TF32__" },
|
|
566
564
|
.{ .cmpccxadd, "__CMPCCXADD__" },
|
|
@@ -798,7 +796,6 @@ fn generateSystemDefines(comp: *Compilation, w: *Io.Writer) !void {
|
|
|
798
796
|
.{ .fullfp16, "FP16_SCALAR_ARITHMETIC" },
|
|
799
797
|
.{ .dotprod, "DOTPROD" },
|
|
800
798
|
.{ .mte, "MEMORY_TAGGING" },
|
|
801
|
-
.{ .tme, "TME" },
|
|
802
799
|
.{ .i8mm, "MATMUL_INT8" },
|
|
803
800
|
.{ .lse, "ATOMICS" },
|
|
804
801
|
.{ .f64mm, "SVE_MATMUL_FP64" },
|
|
@@ -863,11 +863,14 @@ pub fn render(gpa: Allocator, nodes: []const Node) !std.zig.Ast {
|
|
|
863
863
|
.start = @as(u32, @intCast(ctx.buf.items.len)),
|
|
864
864
|
});
|
|
865
865
|
|
|
866
|
+
try ctx.buf.shrinkToLenSentinel(gpa);
|
|
867
|
+
try ctx.extra_data.shrinkToLen(gpa);
|
|
868
|
+
|
|
866
869
|
return .{
|
|
867
|
-
.source =
|
|
870
|
+
.source = ctx.buf.toOwnedSliceSentinelAssert(0),
|
|
868
871
|
.tokens = ctx.tokens.toOwnedSlice(),
|
|
869
872
|
.nodes = ctx.nodes.toOwnedSlice(),
|
|
870
|
-
.extra_data =
|
|
873
|
+
.extra_data = ctx.extra_data.toOwnedSliceAssert(),
|
|
871
874
|
.errors = &.{},
|
|
872
875
|
.mode = .zig,
|
|
873
876
|
};
|
package/compiler_rt/arm.zig
CHANGED
|
@@ -57,9 +57,9 @@ const __udivmodsi4 = @import("int.zig").__udivmodsi4;
|
|
|
57
57
|
const __divmoddi4 = @import("int.zig").__divmoddi4;
|
|
58
58
|
const __udivmoddi4 = @import("int.zig").__udivmoddi4;
|
|
59
59
|
|
|
60
|
-
extern fn memset(dest:
|
|
61
|
-
extern fn memcpy(noalias dest:
|
|
62
|
-
extern fn memmove(dest:
|
|
60
|
+
extern fn memset(dest: ?*anyopaque, c: i32, n: usize) ?*anyopaque;
|
|
61
|
+
extern fn memcpy(noalias dest: ?*anyopaque, noalias src: ?*const anyopaque, n: usize) ?*anyopaque;
|
|
62
|
+
extern fn memmove(dest: ?*anyopaque, src: ?*const anyopaque, n: usize) ?*anyopaque;
|
|
63
63
|
|
|
64
64
|
pub fn __aeabi_memcpy(dest: [*]u8, src: [*]u8, n: usize) callconv(.{ .arm_aapcs = .{} }) void {
|
|
65
65
|
@setRuntimeSafety(false);
|
package/compiler_rt.zig
CHANGED
|
@@ -447,29 +447,8 @@ pub const gnu_f16_abi = switch (builtin.cpu.arch) {
|
|
|
447
447
|
|
|
448
448
|
pub const want_sparc_abi = builtin.cpu.arch.isSPARC();
|
|
449
449
|
|
|
450
|
-
/// This seems to mostly correspond to `clang::TargetInfo::HasFloat16`.
|
|
451
450
|
pub fn F16T(comptime OtherType: type) type {
|
|
452
451
|
return switch (builtin.cpu.arch) {
|
|
453
|
-
.amdgcn,
|
|
454
|
-
.arm,
|
|
455
|
-
.armeb,
|
|
456
|
-
.thumb,
|
|
457
|
-
.thumbeb,
|
|
458
|
-
.aarch64,
|
|
459
|
-
.aarch64_be,
|
|
460
|
-
.hexagon,
|
|
461
|
-
.loongarch32,
|
|
462
|
-
.loongarch64,
|
|
463
|
-
.nvptx,
|
|
464
|
-
.nvptx64,
|
|
465
|
-
.riscv32,
|
|
466
|
-
.riscv32be,
|
|
467
|
-
.riscv64,
|
|
468
|
-
.riscv64be,
|
|
469
|
-
.s390x,
|
|
470
|
-
.spirv32,
|
|
471
|
-
.spirv64,
|
|
472
|
-
=> f16,
|
|
473
452
|
.x86, .x86_64 => if (builtin.target.os.tag.isDarwin()) switch (OtherType) {
|
|
474
453
|
// Starting with LLVM 16, Darwin uses different abi for f16
|
|
475
454
|
// depending on the type of the other return/argument..???
|
|
@@ -477,7 +456,7 @@ pub fn F16T(comptime OtherType: type) type {
|
|
|
477
456
|
f80, f128 => f16,
|
|
478
457
|
else => unreachable,
|
|
479
458
|
} else f16,
|
|
480
|
-
else =>
|
|
459
|
+
else => f16,
|
|
481
460
|
};
|
|
482
461
|
}
|
|
483
462
|
|
|
@@ -311,17 +311,13 @@ pub fn endInput(p: *Parser) Allocator.Error!Document {
|
|
|
311
311
|
p.scratch_string.items.len = 0;
|
|
312
312
|
p.scratch_extra.items.len = 0;
|
|
313
313
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
const extra = try p.extra.toOwnedSlice(p.allocator);
|
|
317
|
-
errdefer p.allocator.free(extra);
|
|
318
|
-
const string_bytes = try p.string_bytes.toOwnedSlice(p.allocator);
|
|
319
|
-
errdefer p.allocator.free(string_bytes);
|
|
314
|
+
try p.extra.shrinkToLen(p.allocator);
|
|
315
|
+
try p.string_bytes.shrinkToLen(p.allocator);
|
|
320
316
|
|
|
321
317
|
return .{
|
|
322
|
-
.nodes = nodes,
|
|
323
|
-
.extra = extra,
|
|
324
|
-
.string_bytes = string_bytes,
|
|
318
|
+
.nodes = p.nodes.toOwnedSlice(),
|
|
319
|
+
.extra = p.extra.toOwnedSliceAssert(),
|
|
320
|
+
.string_bytes = p.string_bytes.toOwnedSliceAssert(),
|
|
325
321
|
};
|
|
326
322
|
}
|
|
327
323
|
|
|
@@ -52,30 +52,30 @@
|
|
|
52
52
|
// Builtin IDs and sizes
|
|
53
53
|
|
|
54
54
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_num_workgroups) __size_t
|
|
55
|
-
|
|
55
|
+
__spirv_BuiltInNumWorkgroups(int);
|
|
56
56
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_workgroup_size) __size_t
|
|
57
|
-
|
|
57
|
+
__spirv_BuiltInWorkgroupSize(int);
|
|
58
58
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_workgroup_id) __size_t
|
|
59
|
-
|
|
59
|
+
__spirv_BuiltInWorkgroupId(int);
|
|
60
60
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_local_invocation_id) __size_t
|
|
61
|
-
|
|
61
|
+
__spirv_BuiltInLocalInvocationId(int);
|
|
62
62
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_global_invocation_id) __size_t
|
|
63
|
-
|
|
63
|
+
__spirv_BuiltInGlobalInvocationId(int);
|
|
64
64
|
|
|
65
65
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_global_size) __size_t
|
|
66
|
-
|
|
66
|
+
__spirv_BuiltInGlobalSize(int);
|
|
67
67
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_global_offset) __size_t
|
|
68
|
-
|
|
68
|
+
__spirv_BuiltInGlobalOffset(int);
|
|
69
69
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_size) __uint32_t
|
|
70
|
-
|
|
70
|
+
__spirv_BuiltInSubgroupSize();
|
|
71
71
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_max_size) __uint32_t
|
|
72
|
-
|
|
72
|
+
__spirv_BuiltInSubgroupMaxSize();
|
|
73
73
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_num_subgroups) __uint32_t
|
|
74
|
-
|
|
74
|
+
__spirv_BuiltInNumSubgroups();
|
|
75
75
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_id) __uint32_t
|
|
76
|
-
|
|
76
|
+
__spirv_BuiltInSubgroupId();
|
|
77
77
|
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_local_invocation_id)
|
|
78
|
-
__uint32_t
|
|
78
|
+
__uint32_t __spirv_BuiltInSubgroupLocalInvocationId();
|
|
79
79
|
|
|
80
80
|
// OpGenericCastToPtrExplicit
|
|
81
81
|
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/*===---- __float_float.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
|
+
#ifndef __CLANG_FLOAT_FLOAT_H
|
|
11
|
+
#define __CLANG_FLOAT_FLOAT_H
|
|
12
|
+
|
|
13
|
+
#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(_AIX)) && \
|
|
14
|
+
__STDC_HOSTED__
|
|
15
|
+
|
|
16
|
+
/* Undefine anything that we'll be redefining below. */
|
|
17
|
+
# undef FLT_EVAL_METHOD
|
|
18
|
+
# undef FLT_ROUNDS
|
|
19
|
+
# undef FLT_RADIX
|
|
20
|
+
# undef FLT_MANT_DIG
|
|
21
|
+
# undef DBL_MANT_DIG
|
|
22
|
+
# undef LDBL_MANT_DIG
|
|
23
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
|
|
24
|
+
!defined(__STRICT_ANSI__) || \
|
|
25
|
+
(defined(__cplusplus) && __cplusplus >= 201103L) || \
|
|
26
|
+
(__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
|
|
27
|
+
# undef DECIMAL_DIG
|
|
28
|
+
# endif
|
|
29
|
+
# undef FLT_DIG
|
|
30
|
+
# undef DBL_DIG
|
|
31
|
+
# undef LDBL_DIG
|
|
32
|
+
# undef FLT_MIN_EXP
|
|
33
|
+
# undef DBL_MIN_EXP
|
|
34
|
+
# undef LDBL_MIN_EXP
|
|
35
|
+
# undef FLT_MIN_10_EXP
|
|
36
|
+
# undef DBL_MIN_10_EXP
|
|
37
|
+
# undef LDBL_MIN_10_EXP
|
|
38
|
+
# undef FLT_MAX_EXP
|
|
39
|
+
# undef DBL_MAX_EXP
|
|
40
|
+
# undef LDBL_MAX_EXP
|
|
41
|
+
# undef FLT_MAX_10_EXP
|
|
42
|
+
# undef DBL_MAX_10_EXP
|
|
43
|
+
# undef LDBL_MAX_10_EXP
|
|
44
|
+
# undef FLT_MAX
|
|
45
|
+
# undef DBL_MAX
|
|
46
|
+
# undef LDBL_MAX
|
|
47
|
+
# undef FLT_EPSILON
|
|
48
|
+
# undef DBL_EPSILON
|
|
49
|
+
# undef LDBL_EPSILON
|
|
50
|
+
# undef FLT_MIN
|
|
51
|
+
# undef DBL_MIN
|
|
52
|
+
# undef LDBL_MIN
|
|
53
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
|
|
54
|
+
!defined(__STRICT_ANSI__) || \
|
|
55
|
+
(defined(__cplusplus) && __cplusplus >= 201703L) || \
|
|
56
|
+
(__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
|
|
57
|
+
# undef FLT_TRUE_MIN
|
|
58
|
+
# undef DBL_TRUE_MIN
|
|
59
|
+
# undef LDBL_TRUE_MIN
|
|
60
|
+
# undef FLT_DECIMAL_DIG
|
|
61
|
+
# undef DBL_DECIMAL_DIG
|
|
62
|
+
# undef LDBL_DECIMAL_DIG
|
|
63
|
+
# undef FLT_HAS_SUBNORM
|
|
64
|
+
# undef DBL_HAS_SUBNORM
|
|
65
|
+
# undef LDBL_HAS_SUBNORM
|
|
66
|
+
# endif
|
|
67
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
|
|
68
|
+
!defined(__STRICT_ANSI__)
|
|
69
|
+
# undef FLT_NORM_MAX
|
|
70
|
+
# undef DBL_NORM_MAX
|
|
71
|
+
# undef LDBL_NORM_MAX
|
|
72
|
+
#endif
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
|
|
76
|
+
!defined(__STRICT_ANSI__)
|
|
77
|
+
# undef FLT_SNAN
|
|
78
|
+
# undef DBL_SNAN
|
|
79
|
+
# undef LDBL_SNAN
|
|
80
|
+
#endif
|
|
81
|
+
|
|
82
|
+
/* Characteristics of floating point types, C99 5.2.4.2.2 */
|
|
83
|
+
|
|
84
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
|
|
85
|
+
(defined(__cplusplus) && __cplusplus >= 201103L)
|
|
86
|
+
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
|
|
87
|
+
#endif
|
|
88
|
+
#define FLT_ROUNDS (__builtin_flt_rounds())
|
|
89
|
+
#define FLT_RADIX __FLT_RADIX__
|
|
90
|
+
|
|
91
|
+
#define FLT_MANT_DIG __FLT_MANT_DIG__
|
|
92
|
+
#define DBL_MANT_DIG __DBL_MANT_DIG__
|
|
93
|
+
#define LDBL_MANT_DIG __LDBL_MANT_DIG__
|
|
94
|
+
|
|
95
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
|
|
96
|
+
!defined(__STRICT_ANSI__) || \
|
|
97
|
+
(defined(__cplusplus) && __cplusplus >= 201103L) || \
|
|
98
|
+
(__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
|
|
99
|
+
# define DECIMAL_DIG __DECIMAL_DIG__
|
|
100
|
+
#endif
|
|
101
|
+
|
|
102
|
+
#define FLT_DIG __FLT_DIG__
|
|
103
|
+
#define DBL_DIG __DBL_DIG__
|
|
104
|
+
#define LDBL_DIG __LDBL_DIG__
|
|
105
|
+
|
|
106
|
+
#define FLT_MIN_EXP __FLT_MIN_EXP__
|
|
107
|
+
#define DBL_MIN_EXP __DBL_MIN_EXP__
|
|
108
|
+
#define LDBL_MIN_EXP __LDBL_MIN_EXP__
|
|
109
|
+
|
|
110
|
+
#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
|
|
111
|
+
#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
|
|
112
|
+
#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
|
|
113
|
+
|
|
114
|
+
#define FLT_MAX_EXP __FLT_MAX_EXP__
|
|
115
|
+
#define DBL_MAX_EXP __DBL_MAX_EXP__
|
|
116
|
+
#define LDBL_MAX_EXP __LDBL_MAX_EXP__
|
|
117
|
+
|
|
118
|
+
#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
|
|
119
|
+
#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
|
|
120
|
+
#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
|
|
121
|
+
|
|
122
|
+
#define FLT_MAX __FLT_MAX__
|
|
123
|
+
#define DBL_MAX __DBL_MAX__
|
|
124
|
+
#define LDBL_MAX __LDBL_MAX__
|
|
125
|
+
|
|
126
|
+
#define FLT_EPSILON __FLT_EPSILON__
|
|
127
|
+
#define DBL_EPSILON __DBL_EPSILON__
|
|
128
|
+
#define LDBL_EPSILON __LDBL_EPSILON__
|
|
129
|
+
|
|
130
|
+
#define FLT_MIN __FLT_MIN__
|
|
131
|
+
#define DBL_MIN __DBL_MIN__
|
|
132
|
+
#define LDBL_MIN __LDBL_MIN__
|
|
133
|
+
|
|
134
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
|
|
135
|
+
!defined(__STRICT_ANSI__) || \
|
|
136
|
+
(defined(__cplusplus) && __cplusplus >= 201703L) || \
|
|
137
|
+
(__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
|
|
138
|
+
# define FLT_TRUE_MIN __FLT_DENORM_MIN__
|
|
139
|
+
# define DBL_TRUE_MIN __DBL_DENORM_MIN__
|
|
140
|
+
# define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
|
|
141
|
+
# define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
|
|
142
|
+
# define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
|
|
143
|
+
# define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
|
|
144
|
+
# define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
|
|
145
|
+
# define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
|
|
146
|
+
# define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
|
|
147
|
+
#endif
|
|
148
|
+
|
|
149
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
|
|
150
|
+
!defined(__STRICT_ANSI__)
|
|
151
|
+
/* C23 5.2.5.3.2p28 */
|
|
152
|
+
# define FLT_SNAN (__builtin_nansf(""))
|
|
153
|
+
# define DBL_SNAN (__builtin_nans(""))
|
|
154
|
+
# define LDBL_SNAN (__builtin_nansl(""))
|
|
155
|
+
|
|
156
|
+
/* C23 5.2.5.3.3p32 */
|
|
157
|
+
# define FLT_NORM_MAX __FLT_NORM_MAX__
|
|
158
|
+
# define DBL_NORM_MAX __DBL_NORM_MAX__
|
|
159
|
+
# define LDBL_NORM_MAX __LDBL_NORM_MAX__
|
|
160
|
+
#endif
|
|
161
|
+
|
|
162
|
+
#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
|
|
163
|
+
# define FLT16_MANT_DIG __FLT16_MANT_DIG__
|
|
164
|
+
# define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__
|
|
165
|
+
# define FLT16_DIG __FLT16_DIG__
|
|
166
|
+
# define FLT16_MIN_EXP __FLT16_MIN_EXP__
|
|
167
|
+
# define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__
|
|
168
|
+
# define FLT16_MAX_EXP __FLT16_MAX_EXP__
|
|
169
|
+
# define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__
|
|
170
|
+
# define FLT16_MAX __FLT16_MAX__
|
|
171
|
+
# define FLT16_EPSILON __FLT16_EPSILON__
|
|
172
|
+
# define FLT16_MIN __FLT16_MIN__
|
|
173
|
+
# define FLT16_TRUE_MIN __FLT16_TRUE_MIN__
|
|
174
|
+
#endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */
|
|
175
|
+
|
|
176
|
+
#endif /* __CLANG_FLOAT_FLOAT_H */
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*===---- __float_header_macro.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
|
+
#ifndef __CLANG_FLOAT_H
|
|
11
|
+
#define __CLANG_FLOAT_H
|
|
12
|
+
#endif /* __CLANG_FLOAT_H */
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*===---- __float_infinity_nan.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
|
+
#ifndef __CLANG_FLOAT_INFINITY_NAN_H
|
|
11
|
+
#define __CLANG_FLOAT_INFINITY_NAN_H
|
|
12
|
+
|
|
13
|
+
/* C23 5.2.5.3.3p29-30 */
|
|
14
|
+
#undef INFINITY
|
|
15
|
+
#undef NAN
|
|
16
|
+
|
|
17
|
+
#define INFINITY (__builtin_inff())
|
|
18
|
+
#define NAN (__builtin_nanf(""))
|
|
19
|
+
|
|
20
|
+
#endif /* __CLANG_FLOAT_INFINITY_NAN_H */
|
package/include/amo.h
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/*===---- amo.h - PowerPC Atomic Memory Operations ------------------------===*\
|
|
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
|
+
/* This header provides compatibility for GCC's AMO functions.
|
|
10
|
+
* The functions here call Clang's underlying AMO builtins.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
#ifndef _AMO_H
|
|
14
|
+
#define _AMO_H
|
|
15
|
+
|
|
16
|
+
#include <stdint.h>
|
|
17
|
+
|
|
18
|
+
#ifdef __cplusplus
|
|
19
|
+
extern "C" {
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
/* AMO Load Operation Codes (FC values) */
|
|
23
|
+
enum {
|
|
24
|
+
_AMO_LD_ADD = 0x00, /* Fetch and Add */
|
|
25
|
+
_AMO_LD_XOR = 0x01, /* Fetch and XOR */
|
|
26
|
+
_AMO_LD_IOR = 0x02, /* Fetch and OR */
|
|
27
|
+
_AMO_LD_AND = 0x03, /* Fetch and AND */
|
|
28
|
+
_AMO_LD_UMAX = 0x04, /* Fetch and Maximum Unsigned */
|
|
29
|
+
_AMO_LD_SMAX = 0x05, /* Fetch and Maximum Signed */
|
|
30
|
+
_AMO_LD_UMIN = 0x06, /* Fetch and Minimum Unsigned */
|
|
31
|
+
_AMO_LD_SMIN = 0x07, /* Fetch and Minimum Signed */
|
|
32
|
+
_AMO_LD_SWAP = 0x08 /* Swap */
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/* 32-bit unsigned AMO load operations */
|
|
36
|
+
static inline uint32_t amo_lwat_add(uint32_t *ptr, uint32_t val) {
|
|
37
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_ADD);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static inline uint32_t amo_lwat_xor(uint32_t *ptr, uint32_t val) {
|
|
41
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_XOR);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static inline uint32_t amo_lwat_ior(uint32_t *ptr, uint32_t val) {
|
|
45
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_IOR);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static inline uint32_t amo_lwat_and(uint32_t *ptr, uint32_t val) {
|
|
49
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_AND);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static inline uint32_t amo_lwat_umax(uint32_t *ptr, uint32_t val) {
|
|
53
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_UMAX);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
static inline uint32_t amo_lwat_umin(uint32_t *ptr, uint32_t val) {
|
|
57
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_UMIN);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static inline uint32_t amo_lwat_swap(uint32_t *ptr, uint32_t val) {
|
|
61
|
+
return __builtin_amo_lwat(ptr, val, _AMO_LD_SWAP);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* 32-bit signed AMO load operations */
|
|
65
|
+
static inline int32_t amo_lwat_sadd(int32_t *ptr, int32_t val) {
|
|
66
|
+
return __builtin_amo_lwat_s(ptr, val, _AMO_LD_ADD);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static inline int32_t amo_lwat_smax(int32_t *ptr, int32_t val) {
|
|
70
|
+
return __builtin_amo_lwat_s(ptr, val, _AMO_LD_SMAX);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static inline int32_t amo_lwat_smin(int32_t *ptr, int32_t val) {
|
|
74
|
+
return __builtin_amo_lwat_s(ptr, val, _AMO_LD_SMIN);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
static inline int32_t amo_lwat_sswap(int32_t *ptr, int32_t val) {
|
|
78
|
+
return __builtin_amo_lwat_s(ptr, val, _AMO_LD_SWAP);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* 64-bit unsigned AMO load operations */
|
|
82
|
+
static inline uint64_t amo_ldat_add(uint64_t *ptr, uint64_t val) {
|
|
83
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_ADD);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
static inline uint64_t amo_ldat_xor(uint64_t *ptr, uint64_t val) {
|
|
87
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_XOR);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static inline uint64_t amo_ldat_ior(uint64_t *ptr, uint64_t val) {
|
|
91
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_IOR);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static inline uint64_t amo_ldat_and(uint64_t *ptr, uint64_t val) {
|
|
95
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_AND);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static inline uint64_t amo_ldat_umax(uint64_t *ptr, uint64_t val) {
|
|
99
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_UMAX);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
static inline uint64_t amo_ldat_umin(uint64_t *ptr, uint64_t val) {
|
|
103
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_UMIN);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static inline uint64_t amo_ldat_swap(uint64_t *ptr, uint64_t val) {
|
|
107
|
+
return __builtin_amo_ldat(ptr, val, _AMO_LD_SWAP);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* 64-bit signed AMO load operations */
|
|
111
|
+
static inline int64_t amo_ldat_sadd(int64_t *ptr, int64_t val) {
|
|
112
|
+
return __builtin_amo_ldat_s(ptr, val, _AMO_LD_ADD);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
static inline int64_t amo_ldat_smax(int64_t *ptr, int64_t val) {
|
|
116
|
+
return __builtin_amo_ldat_s(ptr, val, _AMO_LD_SMAX);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static inline int64_t amo_ldat_smin(int64_t *ptr, int64_t val) {
|
|
120
|
+
return __builtin_amo_ldat_s(ptr, val, _AMO_LD_SMIN);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
static inline int64_t amo_ldat_sswap(int64_t *ptr, int64_t val) {
|
|
124
|
+
return __builtin_amo_ldat_s(ptr, val, _AMO_LD_SWAP);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#ifdef __cplusplus
|
|
128
|
+
}
|
|
129
|
+
#endif
|
|
130
|
+
|
|
131
|
+
#endif /* _AMO_H */
|