Home
last modified time | relevance | path

Searched full:neon (Results 1 – 25 of 119) sorted by relevance

12345

/linux/Documentation/arch/arm/
H A Dkernel_mode_neon.rst2 Kernel mode NEON
7 * Use only NEON instructions, or VFP instructions that don't rely on support
9 * Isolate your NEON code in a separate compilation unit, and compile it with
10 '-march=armv7-a -mfpu=neon -mfloat-abi=softfp'
12 NEON code
13 * Don't sleep in your NEON code, and be aware that it will be executed with
19 It is possible to use NEON instructions (and in some cases, VFP instructions) in
20 code that runs in kernel mode. However, for performance reasons, the NEON/VFP
24 may call schedule()], as NEON or VFP instructions will be executed in a
30 The NEON/VFP register file is managed using lazy preserve (on UP systems) and
[all …]
/linux/arch/arm/crypto/
H A DMakefile9 obj-$(CONFIG_CRYPTO_SHA1_ARM_NEON) += sha1-arm-neon.o
13 obj-$(CONFIG_CRYPTO_BLAKE2B_NEON) += blake2b-neon.o
14 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o
16 obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o
17 obj-$(CONFIG_CRYPTO_CURVE25519_NEON) += curve25519-neon.o
29 sha1-arm-neon-y := sha1-armv7-neon.o sha1_neon_glue.o
30 sha256-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha256_neon_glue.o
31 sha256-arm-y := sha256-core.o sha256_glue.o $(sha256-arm-neon-y)
32 sha512-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha512-neon-glue.o
33 sha512-arm-y := sha512-core.o sha512-glue.o $(sha512-arm-neon-y)
[all …]
H A DKconfig6 tristate "Public key crypto: Curve25519 (NEON)"
14 - NEON (Advanced SIMD) extensions
17 tristate "Hash functions: GHASH (PMULL/NEON/ARMv8 Crypto Extensions)"
29 - NEON (Advanced SIMD) extensions
35 uses the vmull.p8 instruction that is part of the basic NEON ISA.
38 tristate "Hash functions: NHPoly1305 (NEON)"
45 - NEON (Advanced SIMD) extensions
48 tristate "Hash functions: Poly1305 (NEON)"
55 - NEON (Advanced SIMD) extensions
66 BLAKE2b, but slower than the NEON implementation of BLAKE2b.
[all …]
H A Dblake2b-neon-glue.c3 * BLAKE2b digest algorithm, NEON accelerated
15 #include <asm/neon.h>
71 BLAKE2B_ALG("blake2b-160", "blake2b-160-neon", BLAKE2B_160_HASH_SIZE),
72 BLAKE2B_ALG("blake2b-256", "blake2b-256-neon", BLAKE2B_256_HASH_SIZE),
73 BLAKE2B_ALG("blake2b-384", "blake2b-384-neon", BLAKE2B_384_HASH_SIZE),
74 BLAKE2B_ALG("blake2b-512", "blake2b-512-neon", BLAKE2B_512_HASH_SIZE),
95 MODULE_DESCRIPTION("BLAKE2b digest algorithm, NEON accelerated");
99 MODULE_ALIAS_CRYPTO("blake2b-160-neon");
101 MODULE_ALIAS_CRYPTO("blake2b-256-neon");
103 MODULE_ALIAS_CRYPTO("blake2b-384-neon");
[all …]
H A Dchacha-glue.c3 * ARM NEON accelerated ChaCha and XChaCha stream ciphers,
20 #include <asm/neon.h>
111 bool neon) in chacha_stream_xor() argument
127 if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) { in chacha_stream_xor()
143 static int do_chacha(struct skcipher_request *req, bool neon) in do_chacha() argument
148 return chacha_stream_xor(req, ctx, req->iv, neon); in do_chacha()
161 static int do_xchacha(struct skcipher_request *req, bool neon) in do_xchacha() argument
171 if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) { in do_xchacha()
182 return chacha_stream_xor(req, &subctx, real_iv, neon); in do_xchacha()
247 .base.cra_driver_name = "chacha20-neon",
[all …]
H A Dsha512-neon-glue.c3 * sha512-neon-glue.c - accelerated SHA-384/512 for ARM NEON
16 #include <asm/neon.h>
20 MODULE_ALIAS_CRYPTO("sha384-neon");
21 MODULE_ALIAS_CRYPTO("sha512-neon");
72 .cra_driver_name = "sha384-neon",
87 .cra_driver_name = "sha512-neon",
H A Dnhpoly1305-neon-glue.c4 * (NEON accelerated version)
9 #include <asm/neon.h>
47 .base.cra_driver_name = "nhpoly1305-neon",
76 MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function (NEON-accelerated)");
80 MODULE_ALIAS_CRYPTO("nhpoly1305-neon");
H A Dsha256_neon_glue.c4 * using NEON instructions.
20 #include <asm/neon.h>
73 .cra_driver_name = "sha256-neon",
87 .cra_driver_name = "sha224-neon",
H A Dsha1_neon_glue.c4 * ARM NEON instructions.
24 #include <asm/neon.h>
77 .cra_driver_name = "sha1-neon",
101 MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm, NEON accelerated");
H A Dcurve25519-glue.c11 #include <asm/neon.h>
104 .base.cra_driver_name = "curve25519-neon",
135 MODULE_ALIAS_CRYPTO("curve25519-neon");
136 MODULE_DESCRIPTION("Public key crypto: Curve25519 (NEON-accelerated)");
H A Dcrct10dif-ce-glue.c3 * Accelerated CRC-T10DIF using ARM NEON and Crypto Extensions instructions
17 #include <asm/neon.h>
87 MODULE_DESCRIPTION("Accelerated CRC-T10DIF using ARM NEON and Crypto Extensions");
/linux/arch/arm64/crypto/
H A DMakefile20 obj-$(CONFIG_CRYPTO_SM3_NEON) += sm3-neon.o
21 sm3-neon-y := sm3-neon-glue.o sm3-neon-core.o
38 obj-$(CONFIG_CRYPTO_SM4_ARM64_NEON_BLK) += sm4-neon.o
39 sm4-neon-y := sm4-neon-glue.o sm4-neon-core.o
59 obj-$(CONFIG_CRYPTO_AES_ARM64_NEON_BLK) += aes-neon-blk.o
60 aes-neon-blk-y := aes-glue-neon.o aes-neon.o
68 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o
69 chacha-neon-y := chacha-neon-core.o chacha-neon-glue.o
71 obj-$(CONFIG_CRYPTO_POLY1305_NEON) += poly1305-neon.o
72 poly1305-neon-y := poly1305-core.o poly1305-glue.o
[all …]
H A DKconfig19 tristate "Hash functions: NHPoly1305 (NEON)"
26 - NEON (Advanced SIMD) extensions
29 tristate "Hash functions: Poly1305 (NEON)"
37 - NEON (Advanced SIMD) extensions
100 tristate "Hash functions: SM3 (NEON)"
108 - NEON (Advanced SIMD) extensions
172 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
186 - NEON (Advanced SIMD) extensions
189 tristate "Ciphers: ChaCha (NEON)"
199 - NEON (Advanced SIMD) extensions
[all …]
H A Dchacha-neon-glue.c2 * ARM NEON and scalar accelerated ChaCha and XChaCha stream ciphers,
31 #include <asm/neon.h>
166 .base.cra_driver_name = "chacha20-neon",
182 .base.cra_driver_name = "xchacha20-neon",
198 .base.cra_driver_name = "xchacha12-neon",
235 MODULE_DESCRIPTION("ChaCha and XChaCha stream ciphers (NEON accelerated)");
239 MODULE_ALIAS_CRYPTO("chacha20-neon");
241 MODULE_ALIAS_CRYPTO("xchacha20-neon");
243 MODULE_ALIAS_CRYPTO("xchacha12-neon");
H A Dnhpoly1305-neon-glue.c4 * (ARM64 NEON accelerated version)
9 #include <asm/neon.h>
47 .base.cra_driver_name = "nhpoly1305-neon",
76 MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function (NEON-accelerated)");
80 MODULE_ALIAS_CRYPTO("nhpoly1305-neon");
H A Dsm3-neon-glue.c3 * sm3-neon-glue.c - SM3 secure hash using NEON instructions
8 #include <asm/neon.h>
81 .base.cra_driver_name = "sm3-neon",
100 MODULE_DESCRIPTION("SM3 secure hash using NEON instructions");
H A Dsm4-neon-glue.c3 * SM4 Cipher Algorithm, using ARMv8 NEON
15 #include <asm/neon.h>
192 .cra_driver_name = "ecb-sm4-neon",
206 .cra_driver_name = "cbc-sm4-neon",
221 .cra_driver_name = "ctr-sm4-neon",
250 MODULE_DESCRIPTION("SM4 ECB/CBC/CTR using ARMv8 NEON");
251 MODULE_ALIAS_CRYPTO("sm4-neon");
H A Dcrct10dif-ce-glue.c3 * Accelerated CRC-T10DIF using arm64 NEON and Crypto Extensions instructions
18 #include <asm/neon.h>
100 .base.cra_driver_name = "crct10dif-arm64-neon",
141 MODULE_DESCRIPTION("CRC-T10DIF using arm64 NEON and Crypto Extensions");
/linux/arch/arm/include/asm/
H A Dneon.h3 * linux/arch/arm/include/asm/neon.h
16 * using NEON code /and/ calling the kernel_neon_begin() function from the same
18 * generating(1) NEON instructions outside of these begin/end functions, the
19 * only supported way of using NEON code in the kernel is by isolating it in a
23 * (1) Current GCC (4.7) might generate NEON instructions at O3 level if
24 * -mpfu=neon is set.
28 BUILD_BUG_ON_MSG(1, "kernel_neon_begin() called from NEON code")
/linux/lib/raid6/
H A Dneon.c3 * linux/lib/raid6/neon.c - RAID6 syndrome calculation using ARM NEON intrinsics
11 #include <asm/neon.h>
20 * from the actual implementations in neonN.c (generated from neon.uc by
22 * - the actual implementations use NEON intrinsics, and the GCC support header
24 * - the neonN.c files are compiled with -mfpu=neon and optimization enabled,
25 * and we have to make sure that we never use *any* NEON/VFP instructions
H A DMakefile10 raid6_pq-$(CONFIG_KERNEL_MODE_NEON) += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o
70 $(obj)/neon%.c: $(src)/neon.uc $(src)/unroll.awk FORCE
H A Dneon.uc3 * neon.uc - RAID-6 syndrome calculation using ARM NEON instructions
20 * neon$#.c
22 * $#-way unrolled NEON intrinsics math RAID-6 instruction set
28 #include "neon.h"
/linux/lib/raid6/test/
H A DMakefile30 CFLAGS += -I../../../arch/arm/include -mfpu=neon
61 OBJS += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o
90 neon1.c: neon.uc ../unroll.awk
91 $(AWK) ../unroll.awk -vN=1 < neon.uc > $@
93 neon2.c: neon.uc ../unroll.awk
94 $(AWK) ../unroll.awk -vN=2 < neon.uc > $@
96 neon4.c: neon.uc ../unroll.awk
97 $(AWK) ../unroll.awk -vN=4 < neon.uc > $@
99 neon8.c: neon.uc ../unroll.awk
100 $(AWK) ../unroll.awk -vN=8 < neon.uc > $@
[all …]
/linux/arch/arm/lib/
H A Dxor-neon.c3 * linux/arch/arm/lib/xor-neon.c
11 MODULE_DESCRIPTION("NEON accelerated XOR implementation");
15 #error You should compile this file with '-march=armv7-a -mfloat-abi=softfp -mfpu=neon'
21 * NEON instructions. Clang does this by default at O2 so no pragma is
/linux/crypto/
H A DMakefile105 CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv8-a -mfloat-abi=softfp
106 CFLAGS_aegis128-neon-inner.o += -mfpu=crypto-neon-fp-armv8
107 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o
117 CFLAGS_aegis128-neon-inner.o += $(aegis128-cflags-y)
118 CFLAGS_REMOVE_aegis128-neon-inner.o += -mgeneral-regs-only
119 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o
122 CFLAGS_aegis128-neon-inner.o += -isystem $(shell $(CC) -print-file-name=include)

12345