@nativescript/linux 0.0.0-stage → 0.1.0-alpha.0
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/framework/App_Resources/Linux/app.desktop +8 -0
- package/framework/App_Resources/Linux/app.metainfo.xml +15 -0
- package/framework/App_Resources/Linux/icon.png +0 -0
- package/framework/App_Resources/Linux/images/.gitkeep +0 -0
- package/framework/__PROJECT_NAME__/app/.gitkeep +0 -0
- package/framework/runtime/x64/metadata-x86_64.bin +0 -0
- package/framework/runtime/x64/ns-linux +4 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_builtin_vars.h +121 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_cmath.h +512 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_complex_builtins.h +285 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_device_functions.h +1558 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_intrinsics.h +709 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_libdevice_declares.h +468 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_math.h +348 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_math_forward_declares.h +284 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_runtime_wrapper.h +503 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_cuda_texture_intrinsics.h +742 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_hip_cmath.h +842 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_hip_libdevice_declares.h +353 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_hip_math.h +1303 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_hip_runtime_wrapper.h +151 -0
- package/framework/tools/x64/lib/clang/17/include/__clang_hip_stdlib.h +43 -0
- package/framework/tools/x64/lib/clang/17/include/__stddef_max_align_t.h +27 -0
- package/framework/tools/x64/lib/clang/17/include/__wmmintrin_aes.h +140 -0
- package/framework/tools/x64/lib/clang/17/include/__wmmintrin_pclmul.h +48 -0
- package/framework/tools/x64/lib/clang/17/include/adxintrin.h +227 -0
- package/framework/tools/x64/lib/clang/17/include/altivec.h +19342 -0
- package/framework/tools/x64/lib/clang/17/include/ammintrin.h +183 -0
- package/framework/tools/x64/lib/clang/17/include/amxcomplexintrin.h +169 -0
- package/framework/tools/x64/lib/clang/17/include/amxfp16intrin.h +58 -0
- package/framework/tools/x64/lib/clang/17/include/amxintrin.h +524 -0
- package/framework/tools/x64/lib/clang/17/include/arm64intr.h +35 -0
- package/framework/tools/x64/lib/clang/17/include/arm_acle.h +782 -0
- package/framework/tools/x64/lib/clang/17/include/arm_bf16.h +20 -0
- package/framework/tools/x64/lib/clang/17/include/arm_cde.h +410 -0
- package/framework/tools/x64/lib/clang/17/include/arm_cmse.h +217 -0
- package/framework/tools/x64/lib/clang/17/include/arm_fp16.h +596 -0
- package/framework/tools/x64/lib/clang/17/include/arm_mve.h +19187 -0
- package/framework/tools/x64/lib/clang/17/include/arm_neon.h +69885 -0
- package/framework/tools/x64/lib/clang/17/include/arm_neon_sve_bridge.h +182 -0
- package/framework/tools/x64/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +642 -0
- package/framework/tools/x64/lib/clang/17/include/arm_sve.h +23950 -0
- package/framework/tools/x64/lib/clang/17/include/armintr.h +31 -0
- package/framework/tools/x64/lib/clang/17/include/avx2intrin.h +5263 -0
- package/framework/tools/x64/lib/clang/17/include/avx512bf16intrin.h +282 -0
- package/framework/tools/x64/lib/clang/17/include/avx512bitalgintrin.h +83 -0
- package/framework/tools/x64/lib/clang/17/include/avx512bwintrin.h +2024 -0
- package/framework/tools/x64/lib/clang/17/include/avx512cdintrin.h +123 -0
- package/framework/tools/x64/lib/clang/17/include/avx512dqintrin.h +1377 -0
- package/framework/tools/x64/lib/clang/17/include/avx512erintrin.h +271 -0
- package/framework/tools/x64/lib/clang/17/include/avx512fintrin.h +9775 -0
- package/framework/tools/x64/lib/clang/17/include/avx512fp16intrin.h +3350 -0
- package/framework/tools/x64/lib/clang/17/include/avx512ifmaintrin.h +68 -0
- package/framework/tools/x64/lib/clang/17/include/avx512ifmavlintrin.h +105 -0
- package/framework/tools/x64/lib/clang/17/include/avx512pfintrin.h +97 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vbmi2intrin.h +357 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vbmiintrin.h +105 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vbmivlintrin.h +188 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlbf16intrin.h +515 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlbitalgintrin.h +145 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlbwintrin.h +3161 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlcdintrin.h +225 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vldqintrin.h +1167 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlfp16intrin.h +2071 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlintrin.h +8431 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlvbmi2intrin.h +689 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlvnniintrin.h +304 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vlvp2intersectintrin.h +121 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vnniintrin.h +115 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vp2intersectintrin.h +77 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vpopcntdqintrin.h +54 -0
- package/framework/tools/x64/lib/clang/17/include/avx512vpopcntdqvlintrin.h +91 -0
- package/framework/tools/x64/lib/clang/17/include/avxifmaintrin.h +177 -0
- package/framework/tools/x64/lib/clang/17/include/avxintrin.h +5108 -0
- package/framework/tools/x64/lib/clang/17/include/avxneconvertintrin.h +484 -0
- package/framework/tools/x64/lib/clang/17/include/avxvnniint16intrin.h +473 -0
- package/framework/tools/x64/lib/clang/17/include/avxvnniint8intrin.h +471 -0
- package/framework/tools/x64/lib/clang/17/include/avxvnniintrin.h +225 -0
- package/framework/tools/x64/lib/clang/17/include/bmi2intrin.h +255 -0
- package/framework/tools/x64/lib/clang/17/include/bmiintrin.h +431 -0
- package/framework/tools/x64/lib/clang/17/include/builtins.h +16 -0
- package/framework/tools/x64/lib/clang/17/include/cet.h +66 -0
- package/framework/tools/x64/lib/clang/17/include/cetintrin.h +115 -0
- package/framework/tools/x64/lib/clang/17/include/cldemoteintrin.h +36 -0
- package/framework/tools/x64/lib/clang/17/include/clflushoptintrin.h +36 -0
- package/framework/tools/x64/lib/clang/17/include/clwbintrin.h +38 -0
- package/framework/tools/x64/lib/clang/17/include/clzerointrin.h +38 -0
- package/framework/tools/x64/lib/clang/17/include/cmpccxaddintrin.h +70 -0
- package/framework/tools/x64/lib/clang/17/include/cpuid.h +331 -0
- package/framework/tools/x64/lib/clang/17/include/crc32intrin.h +100 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/algorithm +116 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/bits/basic_string.h +9 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/bits/basic_string.tcc +9 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/cmath +90 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/complex +90 -0
- package/framework/tools/x64/lib/clang/17/include/cuda_wrappers/new +106 -0
- package/framework/tools/x64/lib/clang/17/include/emmintrin.h +4775 -0
- package/framework/tools/x64/lib/clang/17/include/enqcmdintrin.h +63 -0
- package/framework/tools/x64/lib/clang/17/include/f16cintrin.h +162 -0
- package/framework/tools/x64/lib/clang/17/include/float.h +168 -0
- package/framework/tools/x64/lib/clang/17/include/fma4intrin.h +218 -0
- package/framework/tools/x64/lib/clang/17/include/fmaintrin.h +780 -0
- package/framework/tools/x64/lib/clang/17/include/fxsrintrin.h +91 -0
- package/framework/tools/x64/lib/clang/17/include/gfniintrin.h +194 -0
- package/framework/tools/x64/lib/clang/17/include/hexagon_circ_brev_intrinsics.h +298 -0
- package/framework/tools/x64/lib/clang/17/include/hexagon_protos.h +8439 -0
- package/framework/tools/x64/lib/clang/17/include/hexagon_types.h +2621 -0
- package/framework/tools/x64/lib/clang/17/include/hresetintrin.h +49 -0
- package/framework/tools/x64/lib/clang/17/include/htmintrin.h +212 -0
- package/framework/tools/x64/lib/clang/17/include/htmxlintrin.h +345 -0
- package/framework/tools/x64/lib/clang/17/include/hvx_hexagon_protos.h +5183 -0
- package/framework/tools/x64/lib/clang/17/include/ia32intrin.h +441 -0
- package/framework/tools/x64/lib/clang/17/include/immintrin.h +758 -0
- package/framework/tools/x64/lib/clang/17/include/intrin.h +620 -0
- package/framework/tools/x64/lib/clang/17/include/inttypes.h +97 -0
- package/framework/tools/x64/lib/clang/17/include/invpcidintrin.h +23 -0
- package/framework/tools/x64/lib/clang/17/include/iso646.h +27 -0
- package/framework/tools/x64/lib/clang/17/include/keylockerintrin.h +530 -0
- package/framework/tools/x64/lib/clang/17/include/larchintrin.h +234 -0
- package/framework/tools/x64/lib/clang/17/include/limits.h +127 -0
- package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/ctype.h +85 -0
- package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/inttypes.h +34 -0
- package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/stdio.h +34 -0
- package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/stdlib.h +42 -0
- package/framework/tools/x64/lib/clang/17/include/llvm_libc_wrappers/string.h +37 -0
- package/framework/tools/x64/lib/clang/17/include/lwpintrin.h +136 -0
- package/framework/tools/x64/lib/clang/17/include/lzcntintrin.h +104 -0
- package/framework/tools/x64/lib/clang/17/include/mm3dnow.h +157 -0
- package/framework/tools/x64/lib/clang/17/include/mm_malloc.h +67 -0
- package/framework/tools/x64/lib/clang/17/include/mmintrin.h +1562 -0
- package/framework/tools/x64/lib/clang/17/include/module.modulemap +164 -0
- package/framework/tools/x64/lib/clang/17/include/movdirintrin.h +49 -0
- package/framework/tools/x64/lib/clang/17/include/msa.h +573 -0
- package/framework/tools/x64/lib/clang/17/include/mwaitxintrin.h +62 -0
- package/framework/tools/x64/lib/clang/17/include/nmmintrin.h +20 -0
- package/framework/tools/x64/lib/clang/17/include/opencl-c-base.h +820 -0
- package/framework/tools/x64/lib/clang/17/include/opencl-c.h +18356 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/__clang_openmp_device_functions.h +105 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/cmath +132 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/complex +55 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/complex.h +35 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/complex_cmath.h +388 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/math.h +61 -0
- package/framework/tools/x64/lib/clang/17/include/openmp_wrappers/new +48 -0
- package/framework/tools/x64/lib/clang/17/include/pconfigintrin.h +40 -0
- package/framework/tools/x64/lib/clang/17/include/pkuintrin.h +34 -0
- package/framework/tools/x64/lib/clang/17/include/pmmintrin.h +300 -0
- package/framework/tools/x64/lib/clang/17/include/popcntintrin.h +59 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/bmiintrin.h +165 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/emmintrin.h +2269 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/immintrin.h +27 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/mm_malloc.h +45 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/mmintrin.h +1453 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/pmmintrin.h +145 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/smmintrin.h +663 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/tmmintrin.h +453 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/x86gprintrin.h +17 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/x86intrin.h +28 -0
- package/framework/tools/x64/lib/clang/17/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/framework/tools/x64/lib/clang/17/include/prfchiintrin.h +61 -0
- package/framework/tools/x64/lib/clang/17/include/prfchwintrin.h +58 -0
- package/framework/tools/x64/lib/clang/17/include/ptwriteintrin.h +37 -0
- package/framework/tools/x64/lib/clang/17/include/raointintrin.h +203 -0
- package/framework/tools/x64/lib/clang/17/include/rdpruintrin.h +57 -0
- package/framework/tools/x64/lib/clang/17/include/rdseedintrin.h +105 -0
- package/framework/tools/x64/lib/clang/17/include/riscv_ntlh.h +28 -0
- package/framework/tools/x64/lib/clang/17/include/rtmintrin.h +45 -0
- package/framework/tools/x64/lib/clang/17/include/s390intrin.h +25 -0
- package/framework/tools/x64/lib/clang/17/include/serializeintrin.h +30 -0
- package/framework/tools/x64/lib/clang/17/include/sgxintrin.h +60 -0
- package/framework/tools/x64/lib/clang/17/include/sha512intrin.h +200 -0
- package/framework/tools/x64/lib/clang/17/include/shaintrin.h +189 -0
- package/framework/tools/x64/lib/clang/17/include/sifive_vector.h +16 -0
- package/framework/tools/x64/lib/clang/17/include/sm3intrin.h +238 -0
- package/framework/tools/x64/lib/clang/17/include/sm4intrin.h +269 -0
- package/framework/tools/x64/lib/clang/17/include/smmintrin.h +2328 -0
- package/framework/tools/x64/lib/clang/17/include/stdalign.h +26 -0
- package/framework/tools/x64/lib/clang/17/include/stdarg.h +51 -0
- package/framework/tools/x64/lib/clang/17/include/stdatomic.h +196 -0
- package/framework/tools/x64/lib/clang/17/include/stdbool.h +34 -0
- package/framework/tools/x64/lib/clang/17/include/stddef.h +133 -0
- package/framework/tools/x64/lib/clang/17/include/stdint.h +979 -0
- package/framework/tools/x64/lib/clang/17/include/stdnoreturn.h +29 -0
- package/framework/tools/x64/lib/clang/17/include/tbmintrin.h +140 -0
- package/framework/tools/x64/lib/clang/17/include/tgmath.h +1368 -0
- package/framework/tools/x64/lib/clang/17/include/tmmintrin.h +775 -0
- package/framework/tools/x64/lib/clang/17/include/tsxldtrkintrin.h +56 -0
- package/framework/tools/x64/lib/clang/17/include/uintrintrin.h +157 -0
- package/framework/tools/x64/lib/clang/17/include/unwind.h +332 -0
- package/framework/tools/x64/lib/clang/17/include/vadefs.h +51 -0
- package/framework/tools/x64/lib/clang/17/include/vaesintrin.h +85 -0
- package/framework/tools/x64/lib/clang/17/include/varargs.h +12 -0
- package/framework/tools/x64/lib/clang/17/include/vecintrin.h +11127 -0
- package/framework/tools/x64/lib/clang/17/include/velintrin.h +71 -0
- package/framework/tools/x64/lib/clang/17/include/velintrin_approx.h +120 -0
- package/framework/tools/x64/lib/clang/17/include/velintrin_gen.h +1257 -0
- package/framework/tools/x64/lib/clang/17/include/vpclmulqdqintrin.h +30 -0
- package/framework/tools/x64/lib/clang/17/include/waitpkgintrin.h +42 -0
- package/framework/tools/x64/lib/clang/17/include/wasm_simd128.h +1997 -0
- package/framework/tools/x64/lib/clang/17/include/wbnoinvdintrin.h +24 -0
- package/framework/tools/x64/lib/clang/17/include/wmmintrin.h +23 -0
- package/framework/tools/x64/lib/clang/17/include/x86gprintrin.h +65 -0
- package/framework/tools/x64/lib/clang/17/include/x86intrin.h +67 -0
- package/framework/tools/x64/lib/clang/17/include/xmmintrin.h +3017 -0
- package/framework/tools/x64/lib/clang/17/include/xopintrin.h +770 -0
- package/framework/tools/x64/lib/clang/17/include/xsavecintrin.h +84 -0
- package/framework/tools/x64/lib/clang/17/include/xsaveintrin.h +63 -0
- package/framework/tools/x64/lib/clang/17/include/xsaveoptintrin.h +34 -0
- package/framework/tools/x64/lib/clang/17/include/xsavesintrin.h +44 -0
- package/framework/tools/x64/lib/clang/17/include/xtestintrin.h +27 -0
- package/framework/tools/x64/metadata-generator +4 -0
- package/framework/tools/x64/ns-bundle +0 -0
- package/framework/tools/x64/ns-metadata-filter +0 -0
- package/framework/typings/c!EGL.d.ts +431 -0
- package/framework/typings/c!GLES.d.ts +5002 -0
- package/framework/typings/c!GLib.d.ts +14488 -0
- package/framework/typings/c!Gtk.d.ts +17630 -0
- package/framework/typings/c!X11.d.ts +7054 -0
- package/framework/typings/c!_Builtin_intrinsics.d.ts +106 -0
- package/framework/typings/c!_Builtin_stddef_max_align_t.d.ts +6 -0
- package/framework/typings/c!cairo.d.ts +1248 -0
- package/framework/typings/c!fontconfig.d.ts +819 -0
- package/framework/typings/c!freetype.d.ts +1068 -0
- package/framework/typings/c!gdk_pixbuf.d.ts +326 -0
- package/framework/typings/c!graphene.d.ts +320 -0
- package/framework/typings/c!harfbuzz.d.ts +1292 -0
- package/framework/typings/c!icu.d.ts +3330 -0
- package/framework/typings/c!libc.d.ts +11639 -0
- package/framework/typings/c!libxml2.d.ts +7029 -0
- package/framework/typings/c!pango.d.ts +2225 -0
- package/framework/typings/c!uuid.d.ts +68 -0
- package/framework/typings/c!zlib.d.ts +276 -0
- package/framework/typings/index.d.ts +10 -0
- package/framework/typings/linux-runtime.d.ts +90 -0
- package/package.json +9 -4
- package/README.md +0 -3
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*===---- prfchiintrin.h - PREFETCHI intrinsic -----------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __PRFCHIINTRIN_H
|
|
11
|
+
#define __PRFCHIINTRIN_H
|
|
12
|
+
|
|
13
|
+
#ifdef __x86_64__
|
|
14
|
+
|
|
15
|
+
/* Define the default attributes for the functions in this file. */
|
|
16
|
+
#define __DEFAULT_FN_ATTRS \
|
|
17
|
+
__attribute__((__always_inline__, __nodebug__, __target__("prefetchi")))
|
|
18
|
+
|
|
19
|
+
/// Loads an instruction sequence containing the specified memory address into
|
|
20
|
+
/// all level cache.
|
|
21
|
+
///
|
|
22
|
+
/// Note that the effect of this intrinsic is dependent on the processor
|
|
23
|
+
/// implementation.
|
|
24
|
+
///
|
|
25
|
+
/// \headerfile <x86intrin.h>
|
|
26
|
+
///
|
|
27
|
+
/// This intrinsic corresponds to the \c PREFETCHIT0 instruction.
|
|
28
|
+
///
|
|
29
|
+
/// \param __P
|
|
30
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
31
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
32
|
+
_m_prefetchit0(volatile const void *__P) {
|
|
33
|
+
#pragma clang diagnostic push
|
|
34
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
35
|
+
__builtin_ia32_prefetchi((const void *)__P, 3 /* _MM_HINT_T0 */);
|
|
36
|
+
#pragma clang diagnostic pop
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/// Loads an instruction sequence containing the specified memory address into
|
|
40
|
+
/// all but the first-level cache.
|
|
41
|
+
///
|
|
42
|
+
/// Note that the effect of this intrinsic is dependent on the processor
|
|
43
|
+
/// implementation.
|
|
44
|
+
///
|
|
45
|
+
/// \headerfile <x86intrin.h>
|
|
46
|
+
///
|
|
47
|
+
/// This intrinsic corresponds to the \c PREFETCHIT1 instruction.
|
|
48
|
+
///
|
|
49
|
+
/// \param __P
|
|
50
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
51
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
52
|
+
_m_prefetchit1(volatile const void *__P) {
|
|
53
|
+
#pragma clang diagnostic push
|
|
54
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
55
|
+
__builtin_ia32_prefetchi((const void *)__P, 2 /* _MM_HINT_T1 */);
|
|
56
|
+
#pragma clang diagnostic pop
|
|
57
|
+
}
|
|
58
|
+
#endif /* __x86_64__ */
|
|
59
|
+
#undef __DEFAULT_FN_ATTRS
|
|
60
|
+
|
|
61
|
+
#endif /* __PRFCHWINTRIN_H */
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*===---- prfchwintrin.h - PREFETCHW intrinsic -----------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#if !defined(__X86INTRIN_H) && !defined(_MM3DNOW_H_INCLUDED)
|
|
11
|
+
#error "Never use <prfchwintrin.h> directly; include <x86intrin.h> or <mm3dnow.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __PRFCHWINTRIN_H
|
|
15
|
+
#define __PRFCHWINTRIN_H
|
|
16
|
+
|
|
17
|
+
/// Loads a memory sequence containing the specified memory address into
|
|
18
|
+
/// all data cache levels. The cache-coherency state is set to exclusive.
|
|
19
|
+
/// Data can be read from and written to the cache line without additional
|
|
20
|
+
/// delay.
|
|
21
|
+
///
|
|
22
|
+
/// \headerfile <x86intrin.h>
|
|
23
|
+
///
|
|
24
|
+
/// This intrinsic corresponds to the \c PREFETCHT0 instruction.
|
|
25
|
+
///
|
|
26
|
+
/// \param __P
|
|
27
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
28
|
+
static __inline__ void __attribute__((__always_inline__, __nodebug__))
|
|
29
|
+
_m_prefetch(void *__P)
|
|
30
|
+
{
|
|
31
|
+
__builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/// Loads a memory sequence containing the specified memory address into
|
|
35
|
+
/// the L1 data cache and sets the cache-coherency to modified. This
|
|
36
|
+
/// provides a hint to the processor that the cache line will be modified.
|
|
37
|
+
/// It is intended for use when the cache line will be written to shortly
|
|
38
|
+
/// after the prefetch is performed.
|
|
39
|
+
///
|
|
40
|
+
/// Note that the effect of this intrinsic is dependent on the processor
|
|
41
|
+
/// implementation.
|
|
42
|
+
///
|
|
43
|
+
/// \headerfile <x86intrin.h>
|
|
44
|
+
///
|
|
45
|
+
/// This intrinsic corresponds to the \c PREFETCHW instruction.
|
|
46
|
+
///
|
|
47
|
+
/// \param __P
|
|
48
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
49
|
+
static __inline__ void __attribute__((__always_inline__, __nodebug__))
|
|
50
|
+
_m_prefetchw(volatile const void *__P)
|
|
51
|
+
{
|
|
52
|
+
#pragma clang diagnostic push
|
|
53
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
54
|
+
__builtin_prefetch ((const void*)__P, 1, 3 /* _MM_HINT_T0 */);
|
|
55
|
+
#pragma clang diagnostic pop
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#endif /* __PRFCHWINTRIN_H */
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*===------------ ptwriteintrin.h - PTWRITE intrinsic --------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
|
|
11
|
+
#error "Never use <ptwriteintrin.h> directly; include <x86intrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __PTWRITEINTRIN_H
|
|
15
|
+
#define __PTWRITEINTRIN_H
|
|
16
|
+
|
|
17
|
+
/* Define the default attributes for the functions in this file. */
|
|
18
|
+
#define __DEFAULT_FN_ATTRS \
|
|
19
|
+
__attribute__((__always_inline__, __nodebug__, __target__("ptwrite")))
|
|
20
|
+
|
|
21
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
22
|
+
_ptwrite32(unsigned int __value) {
|
|
23
|
+
__builtin_ia32_ptwrite32(__value);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
#ifdef __x86_64__
|
|
27
|
+
|
|
28
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
29
|
+
_ptwrite64(unsigned long long __value) {
|
|
30
|
+
__builtin_ia32_ptwrite64(__value);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#endif /* __x86_64__ */
|
|
34
|
+
|
|
35
|
+
#undef __DEFAULT_FN_ATTRS
|
|
36
|
+
|
|
37
|
+
#endif /* __PTWRITEINTRIN_H */
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/*===----------------------- raointintrin.h - RAOINT ------------------------===
|
|
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 __X86GPRINTRIN_H
|
|
11
|
+
#error "Never use <raointintrin.h> directly; include <x86gprintrin.h> instead."
|
|
12
|
+
#endif // __X86GPRINTRIN_H
|
|
13
|
+
|
|
14
|
+
#ifndef __RAOINTINTRIN_H
|
|
15
|
+
#define __RAOINTINTRIN_H
|
|
16
|
+
|
|
17
|
+
#define __DEFAULT_FN_ATTRS \
|
|
18
|
+
__attribute__((__always_inline__, __nodebug__, __target__("raoint")))
|
|
19
|
+
|
|
20
|
+
/// Atomically add a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
21
|
+
/// and store the result to the same memory location.
|
|
22
|
+
///
|
|
23
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
24
|
+
/// result in bad performance for hot data used by single thread only.
|
|
25
|
+
///
|
|
26
|
+
/// \headerfile <x86intrin.h>
|
|
27
|
+
///
|
|
28
|
+
/// This intrinsic corresponds to the \c AADD instruction.
|
|
29
|
+
///
|
|
30
|
+
/// \param __A
|
|
31
|
+
/// A pointer to a 32-bit memory location.
|
|
32
|
+
/// \param __B
|
|
33
|
+
/// A 32-bit integer value.
|
|
34
|
+
///
|
|
35
|
+
/// \code{.operation}
|
|
36
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] + __B[31:0]
|
|
37
|
+
/// \endcode
|
|
38
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aadd_i32(int *__A, int __B) {
|
|
39
|
+
__builtin_ia32_aadd32((int *)__A, __B);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// Atomically and a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
43
|
+
/// and store the result to the same memory location.
|
|
44
|
+
///
|
|
45
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
46
|
+
/// result in bad performance for hot data used by single thread only.
|
|
47
|
+
///
|
|
48
|
+
/// \headerfile <x86intrin.h>
|
|
49
|
+
///
|
|
50
|
+
/// This intrinsic corresponds to the \c AAND instruction.
|
|
51
|
+
///
|
|
52
|
+
/// \param __A
|
|
53
|
+
/// A pointer to a 32-bit memory location.
|
|
54
|
+
/// \param __B
|
|
55
|
+
/// A 32-bit integer value.
|
|
56
|
+
///
|
|
57
|
+
/// \code{.operation}
|
|
58
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] AND __B[31:0]
|
|
59
|
+
/// \endcode
|
|
60
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aand_i32(int *__A, int __B) {
|
|
61
|
+
__builtin_ia32_aand32((int *)__A, __B);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// Atomically or a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
65
|
+
/// and store the result to the same memory location.
|
|
66
|
+
///
|
|
67
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
68
|
+
/// result in bad performance for hot data used by single thread only.
|
|
69
|
+
///
|
|
70
|
+
/// \headerfile <x86intrin.h>
|
|
71
|
+
///
|
|
72
|
+
/// This intrinsic corresponds to the \c AOR instruction.
|
|
73
|
+
///
|
|
74
|
+
/// \param __A
|
|
75
|
+
/// A pointer to a 32-bit memory location.
|
|
76
|
+
/// \param __B
|
|
77
|
+
/// A 32-bit integer value.
|
|
78
|
+
///
|
|
79
|
+
/// \code{.operation}
|
|
80
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] OR __B[31:0]
|
|
81
|
+
/// \endcode
|
|
82
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aor_i32(int *__A, int __B) {
|
|
83
|
+
__builtin_ia32_aor32((int *)__A, __B);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/// Atomically xor a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
87
|
+
/// and store the result to the same memory location.
|
|
88
|
+
///
|
|
89
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
90
|
+
/// result in bad performance for hot data used by single thread only.
|
|
91
|
+
///
|
|
92
|
+
/// \headerfile <x86intrin.h>
|
|
93
|
+
///
|
|
94
|
+
/// This intrinsic corresponds to the \c AXOR instruction.
|
|
95
|
+
///
|
|
96
|
+
/// \param __A
|
|
97
|
+
/// A pointer to a 32-bit memory location.
|
|
98
|
+
/// \param __B
|
|
99
|
+
/// A 32-bit integer value.
|
|
100
|
+
///
|
|
101
|
+
/// \code{.operation}
|
|
102
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] XOR __B[31:0]
|
|
103
|
+
/// \endcode
|
|
104
|
+
static __inline__ void __DEFAULT_FN_ATTRS _axor_i32(int *__A, int __B) {
|
|
105
|
+
__builtin_ia32_axor32((int *)__A, __B);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
#ifdef __x86_64__
|
|
109
|
+
/// Atomically add a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
110
|
+
/// and store the result to the same memory location.
|
|
111
|
+
///
|
|
112
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
113
|
+
/// result in bad performance for hot data used by single thread only.
|
|
114
|
+
///
|
|
115
|
+
/// \headerfile <x86intrin.h>
|
|
116
|
+
///
|
|
117
|
+
/// This intrinsic corresponds to the \c AADD instruction.
|
|
118
|
+
///
|
|
119
|
+
/// \param __A
|
|
120
|
+
/// A pointer to a 64-bit memory location.
|
|
121
|
+
/// \param __B
|
|
122
|
+
/// A 64-bit integer value.
|
|
123
|
+
///
|
|
124
|
+
/// \code{.operation}
|
|
125
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] + __B[63:0]
|
|
126
|
+
/// \endcode
|
|
127
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aadd_i64(long long *__A,
|
|
128
|
+
long long __B) {
|
|
129
|
+
__builtin_ia32_aadd64((long long *)__A, __B);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/// Atomically and a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
133
|
+
/// and store the result to the same memory location.
|
|
134
|
+
///
|
|
135
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
136
|
+
/// result in bad performance for hot data used by single thread only.
|
|
137
|
+
///
|
|
138
|
+
/// \headerfile <x86intrin.h>
|
|
139
|
+
///
|
|
140
|
+
/// This intrinsic corresponds to the \c AAND instruction.
|
|
141
|
+
///
|
|
142
|
+
/// \param __A
|
|
143
|
+
/// A pointer to a 64-bit memory location.
|
|
144
|
+
/// \param __B
|
|
145
|
+
/// A 64-bit integer value.
|
|
146
|
+
///
|
|
147
|
+
/// \code{.operation}
|
|
148
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] AND __B[63:0]
|
|
149
|
+
/// \endcode
|
|
150
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aand_i64(long long *__A,
|
|
151
|
+
long long __B) {
|
|
152
|
+
__builtin_ia32_aand64((long long *)__A, __B);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/// Atomically or a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
156
|
+
/// and store the result to the same memory location.
|
|
157
|
+
///
|
|
158
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
159
|
+
/// result in bad performance for hot data used by single thread only.
|
|
160
|
+
///
|
|
161
|
+
/// \headerfile <x86intrin.h>
|
|
162
|
+
///
|
|
163
|
+
/// This intrinsic corresponds to the \c AOR instruction.
|
|
164
|
+
///
|
|
165
|
+
/// \param __A
|
|
166
|
+
/// A pointer to a 64-bit memory location.
|
|
167
|
+
/// \param __B
|
|
168
|
+
/// A 64-bit integer value.
|
|
169
|
+
///
|
|
170
|
+
/// \code{.operation}
|
|
171
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] OR __B[63:0]
|
|
172
|
+
/// \endcode
|
|
173
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aor_i64(long long *__A,
|
|
174
|
+
long long __B) {
|
|
175
|
+
__builtin_ia32_aor64((long long *)__A, __B);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/// Atomically xor a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
179
|
+
/// and store the result to the same memory location.
|
|
180
|
+
///
|
|
181
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
182
|
+
/// result in bad performance for hot data used by single thread only.
|
|
183
|
+
///
|
|
184
|
+
/// \headerfile <x86intrin.h>
|
|
185
|
+
///
|
|
186
|
+
/// This intrinsic corresponds to the \c AXOR instruction.
|
|
187
|
+
///
|
|
188
|
+
/// \param __A
|
|
189
|
+
/// A pointer to a 64-bit memory location.
|
|
190
|
+
/// \param __B
|
|
191
|
+
/// A 64-bit integer value.
|
|
192
|
+
///
|
|
193
|
+
/// \code{.operation}
|
|
194
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] XOR __B[63:0]
|
|
195
|
+
/// \endcode
|
|
196
|
+
static __inline__ void __DEFAULT_FN_ATTRS _axor_i64(long long *__A,
|
|
197
|
+
long long __B) {
|
|
198
|
+
__builtin_ia32_axor64((long long *)__A, __B);
|
|
199
|
+
}
|
|
200
|
+
#endif // __x86_64__
|
|
201
|
+
|
|
202
|
+
#undef __DEFAULT_FN_ATTRS
|
|
203
|
+
#endif // __RAOINTINTRIN_H
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*===---- rdpruintrin.h - RDPRU intrinsics ---------------------------------===
|
|
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
|
+
#if !defined __X86INTRIN_H
|
|
11
|
+
#error "Never use <rdpruintrin.h> directly; include <x86intrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __RDPRUINTRIN_H
|
|
15
|
+
#define __RDPRUINTRIN_H
|
|
16
|
+
|
|
17
|
+
/* Define the default attributes for the functions in this file. */
|
|
18
|
+
#define __DEFAULT_FN_ATTRS \
|
|
19
|
+
__attribute__((__always_inline__, __nodebug__, __target__("rdpru")))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/// Reads the content of a processor register.
|
|
23
|
+
///
|
|
24
|
+
/// \headerfile <x86intrin.h>
|
|
25
|
+
///
|
|
26
|
+
/// This intrinsic corresponds to the <c> RDPRU </c> instruction.
|
|
27
|
+
///
|
|
28
|
+
/// \param reg_id
|
|
29
|
+
/// A processor register identifier.
|
|
30
|
+
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
31
|
+
__rdpru (int reg_id)
|
|
32
|
+
{
|
|
33
|
+
return __builtin_ia32_rdpru(reg_id);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#define __RDPRU_MPERF 0
|
|
37
|
+
#define __RDPRU_APERF 1
|
|
38
|
+
|
|
39
|
+
/// Reads the content of processor register MPERF.
|
|
40
|
+
///
|
|
41
|
+
/// \headerfile <x86intrin.h>
|
|
42
|
+
///
|
|
43
|
+
/// This intrinsic generates instruction <c> RDPRU </c> to read the value of
|
|
44
|
+
/// register MPERF.
|
|
45
|
+
#define __mperf() __builtin_ia32_rdpru(__RDPRU_MPERF)
|
|
46
|
+
|
|
47
|
+
/// Reads the content of processor register APERF.
|
|
48
|
+
///
|
|
49
|
+
/// \headerfile <x86intrin.h>
|
|
50
|
+
///
|
|
51
|
+
/// This intrinsic generates instruction <c> RDPRU </c> to read the value of
|
|
52
|
+
/// register APERF.
|
|
53
|
+
#define __aperf() __builtin_ia32_rdpru(__RDPRU_APERF)
|
|
54
|
+
|
|
55
|
+
#undef __DEFAULT_FN_ATTRS
|
|
56
|
+
|
|
57
|
+
#endif /* __RDPRUINTRIN_H */
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/*===---- rdseedintrin.h - RDSEED intrinsics -------------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __IMMINTRIN_H
|
|
11
|
+
#error "Never use <rdseedintrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __RDSEEDINTRIN_H
|
|
15
|
+
#define __RDSEEDINTRIN_H
|
|
16
|
+
|
|
17
|
+
/* Define the default attributes for the functions in this file. */
|
|
18
|
+
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rdseed")))
|
|
19
|
+
|
|
20
|
+
/// Stores a hardware-generated 16-bit random value in the memory at \a __p.
|
|
21
|
+
///
|
|
22
|
+
/// The random number generator complies with NIST SP800-90B and SP800-90C.
|
|
23
|
+
///
|
|
24
|
+
/// \code{.operation}
|
|
25
|
+
/// IF HW_NRND_GEN.ready == 1
|
|
26
|
+
/// Store16(__p, HW_NRND_GEN.data)
|
|
27
|
+
/// result := 1
|
|
28
|
+
/// ELSE
|
|
29
|
+
/// Store16(__p, 0)
|
|
30
|
+
/// result := 0
|
|
31
|
+
/// END
|
|
32
|
+
/// \endcode
|
|
33
|
+
///
|
|
34
|
+
/// \headerfile <immintrin.h>
|
|
35
|
+
///
|
|
36
|
+
/// This intrinsic corresponds to the \c RDSEED instruction.
|
|
37
|
+
///
|
|
38
|
+
/// \param __p
|
|
39
|
+
/// Pointer to memory for storing the 16-bit random number.
|
|
40
|
+
/// \returns 1 if a random number was generated, 0 if not.
|
|
41
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
42
|
+
_rdseed16_step(unsigned short *__p)
|
|
43
|
+
{
|
|
44
|
+
return (int) __builtin_ia32_rdseed16_step(__p);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/// Stores a hardware-generated 32-bit random value in the memory at \a __p.
|
|
48
|
+
///
|
|
49
|
+
/// The random number generator complies with NIST SP800-90B and SP800-90C.
|
|
50
|
+
///
|
|
51
|
+
/// \code{.operation}
|
|
52
|
+
/// IF HW_NRND_GEN.ready == 1
|
|
53
|
+
/// Store32(__p, HW_NRND_GEN.data)
|
|
54
|
+
/// result := 1
|
|
55
|
+
/// ELSE
|
|
56
|
+
/// Store32(__p, 0)
|
|
57
|
+
/// result := 0
|
|
58
|
+
/// END
|
|
59
|
+
/// \endcode
|
|
60
|
+
///
|
|
61
|
+
/// \headerfile <immintrin.h>
|
|
62
|
+
///
|
|
63
|
+
/// This intrinsic corresponds to the \c RDSEED instruction.
|
|
64
|
+
///
|
|
65
|
+
/// \param __p
|
|
66
|
+
/// Pointer to memory for storing the 32-bit random number.
|
|
67
|
+
/// \returns 1 if a random number was generated, 0 if not.
|
|
68
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
69
|
+
_rdseed32_step(unsigned int *__p)
|
|
70
|
+
{
|
|
71
|
+
return (int) __builtin_ia32_rdseed32_step(__p);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#ifdef __x86_64__
|
|
75
|
+
/// Stores a hardware-generated 64-bit random value in the memory at \a __p.
|
|
76
|
+
///
|
|
77
|
+
/// The random number generator complies with NIST SP800-90B and SP800-90C.
|
|
78
|
+
///
|
|
79
|
+
/// \code{.operation}
|
|
80
|
+
/// IF HW_NRND_GEN.ready == 1
|
|
81
|
+
/// Store64(__p, HW_NRND_GEN.data)
|
|
82
|
+
/// result := 1
|
|
83
|
+
/// ELSE
|
|
84
|
+
/// Store64(__p, 0)
|
|
85
|
+
/// result := 0
|
|
86
|
+
/// END
|
|
87
|
+
/// \endcode
|
|
88
|
+
///
|
|
89
|
+
/// \headerfile <immintrin.h>
|
|
90
|
+
///
|
|
91
|
+
/// This intrinsic corresponds to the \c RDSEED instruction.
|
|
92
|
+
///
|
|
93
|
+
/// \param __p
|
|
94
|
+
/// Pointer to memory for storing the 64-bit random number.
|
|
95
|
+
/// \returns 1 if a random number was generated, 0 if not.
|
|
96
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
97
|
+
_rdseed64_step(unsigned long long *__p)
|
|
98
|
+
{
|
|
99
|
+
return (int) __builtin_ia32_rdseed64_step(__p);
|
|
100
|
+
}
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
#undef __DEFAULT_FN_ATTRS
|
|
104
|
+
|
|
105
|
+
#endif /* __RDSEEDINTRIN_H */
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*===---- riscv_ntlh.h - RISC-V NTLH intrinsics ----------------------------===
|
|
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 __RISCV_NTLH_H
|
|
11
|
+
#define __RISCV_NTLH_H
|
|
12
|
+
|
|
13
|
+
#ifndef __riscv_zihintntl
|
|
14
|
+
#error "NTLH intrinsics require the NTLH extension."
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
enum {
|
|
18
|
+
__RISCV_NTLH_INNERMOST_PRIVATE = 2,
|
|
19
|
+
__RISCV_NTLH_ALL_PRIVATE,
|
|
20
|
+
__RISCV_NTLH_INNERMOST_SHARED,
|
|
21
|
+
__RISCV_NTLH_ALL
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
#define __riscv_ntl_load(PTR, DOMAIN) __builtin_riscv_ntl_load((PTR), (DOMAIN))
|
|
25
|
+
#define __riscv_ntl_store(PTR, VAL, DOMAIN) \
|
|
26
|
+
__builtin_riscv_ntl_store((PTR), (VAL), (DOMAIN))
|
|
27
|
+
|
|
28
|
+
#endif
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*===---- rtmintrin.h - RTM intrinsics -------------------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __IMMINTRIN_H
|
|
11
|
+
#error "Never use <rtmintrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __RTMINTRIN_H
|
|
15
|
+
#define __RTMINTRIN_H
|
|
16
|
+
|
|
17
|
+
#define _XBEGIN_STARTED (~0u)
|
|
18
|
+
#define _XABORT_EXPLICIT (1 << 0)
|
|
19
|
+
#define _XABORT_RETRY (1 << 1)
|
|
20
|
+
#define _XABORT_CONFLICT (1 << 2)
|
|
21
|
+
#define _XABORT_CAPACITY (1 << 3)
|
|
22
|
+
#define _XABORT_DEBUG (1 << 4)
|
|
23
|
+
#define _XABORT_NESTED (1 << 5)
|
|
24
|
+
#define _XABORT_CODE(x) (((x) >> 24) & 0xFF)
|
|
25
|
+
|
|
26
|
+
/* Define the default attributes for the functions in this file. */
|
|
27
|
+
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rtm")))
|
|
28
|
+
|
|
29
|
+
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
30
|
+
_xbegin(void)
|
|
31
|
+
{
|
|
32
|
+
return (unsigned int)__builtin_ia32_xbegin();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
36
|
+
_xend(void)
|
|
37
|
+
{
|
|
38
|
+
__builtin_ia32_xend();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#define _xabort(imm) __builtin_ia32_xabort((imm))
|
|
42
|
+
|
|
43
|
+
#undef __DEFAULT_FN_ATTRS
|
|
44
|
+
|
|
45
|
+
#endif /* __RTMINTRIN_H */
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*===---- s390intrin.h - SystemZ intrinsics --------------------------------===
|
|
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 __S390INTRIN_H
|
|
11
|
+
#define __S390INTRIN_H
|
|
12
|
+
|
|
13
|
+
#ifndef __s390__
|
|
14
|
+
#error "<s390intrin.h> is for s390 only"
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#ifdef __HTM__
|
|
18
|
+
#include <htmintrin.h>
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#ifdef __VEC__
|
|
22
|
+
#include <vecintrin.h>
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
#endif /* __S390INTRIN_H*/
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*===--------------- serializeintrin.h - serialize intrinsics --------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __IMMINTRIN_H
|
|
11
|
+
#error "Never use <serializeintrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __SERIALIZEINTRIN_H
|
|
15
|
+
#define __SERIALIZEINTRIN_H
|
|
16
|
+
|
|
17
|
+
/// Serialize instruction fetch and execution.
|
|
18
|
+
///
|
|
19
|
+
/// \headerfile <x86intrin.h>
|
|
20
|
+
///
|
|
21
|
+
/// This intrinsic corresponds to the <c> SERIALIZE </c> instruction.
|
|
22
|
+
///
|
|
23
|
+
static __inline__ void
|
|
24
|
+
__attribute__((__always_inline__, __nodebug__, __target__("serialize")))
|
|
25
|
+
_serialize (void)
|
|
26
|
+
{
|
|
27
|
+
__builtin_ia32_serialize ();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#endif /* __SERIALIZEINTRIN_H */
|