arch/arm64/crypto/sm4-ce-asm.h

Source file repositories/reference/linux-study-clean/arch/arm64/crypto/sm4-ce-asm.h

File Facts

System
Linux kernel
Corpus path
arch/arm64/crypto/sm4-ce-asm.h
Extension
.h
Size
5825 bytes
Lines
210
Domain
Architecture Layer
Bucket
arch/arm64
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

#define SM4_PREPARE(ptr)					\
	ld1		{v24.16b-v27.16b}, [ptr], #64;		\
	ld1		{v28.16b-v31.16b}, [ptr];

#define SM4_CRYPT_BLK_BE(b0)					\
	sm4e		b0.4s, v24.4s;				\
	sm4e		b0.4s, v25.4s;				\
	sm4e		b0.4s, v26.4s;				\
	sm4e		b0.4s, v27.4s;				\
	sm4e		b0.4s, v28.4s;				\
	sm4e		b0.4s, v29.4s;				\
	sm4e		b0.4s, v30.4s;				\
	sm4e		b0.4s, v31.4s;				\
	rev64		b0.4s, b0.4s;				\
	ext		b0.16b, b0.16b, b0.16b, #8;		\
	rev32		b0.16b, b0.16b;

#define SM4_CRYPT_BLK(b0)					\
	rev32		b0.16b, b0.16b;				\
	SM4_CRYPT_BLK_BE(b0);

#define SM4_CRYPT_BLK2_BE(b0, b1)				\
	sm4e		b0.4s, v24.4s;				\
	sm4e		b1.4s, v24.4s;				\
	sm4e		b0.4s, v25.4s;				\
	sm4e		b1.4s, v25.4s;				\
	sm4e		b0.4s, v26.4s;				\
	sm4e		b1.4s, v26.4s;				\
	sm4e		b0.4s, v27.4s;				\
	sm4e		b1.4s, v27.4s;				\
	sm4e		b0.4s, v28.4s;				\
	sm4e		b1.4s, v28.4s;				\
	sm4e		b0.4s, v29.4s;				\
	sm4e		b1.4s, v29.4s;				\
	sm4e		b0.4s, v30.4s;				\
	sm4e		b1.4s, v30.4s;				\
	sm4e		b0.4s, v31.4s;				\
	sm4e		b1.4s, v31.4s;				\
	rev64		b0.4s, b0.4s;				\
	rev64		b1.4s, b1.4s;				\
	ext		b0.16b, b0.16b, b0.16b, #8;		\
	ext		b1.16b, b1.16b, b1.16b, #8;		\
	rev32		b0.16b, b0.16b;				\
	rev32		b1.16b, b1.16b;				\

#define SM4_CRYPT_BLK2(b0, b1)					\
	rev32		b0.16b, b0.16b;				\
	rev32		b1.16b, b1.16b;				\
	SM4_CRYPT_BLK2_BE(b0, b1);

#define SM4_CRYPT_BLK4_BE(b0, b1, b2, b3)			\
	sm4e		b0.4s, v24.4s;				\
	sm4e		b1.4s, v24.4s;				\
	sm4e		b2.4s, v24.4s;				\
	sm4e		b3.4s, v24.4s;				\
	sm4e		b0.4s, v25.4s;				\
	sm4e		b1.4s, v25.4s;				\
	sm4e		b2.4s, v25.4s;				\
	sm4e		b3.4s, v25.4s;				\
	sm4e		b0.4s, v26.4s;				\
	sm4e		b1.4s, v26.4s;				\
	sm4e		b2.4s, v26.4s;				\
	sm4e		b3.4s, v26.4s;				\
	sm4e		b0.4s, v27.4s;				\
	sm4e		b1.4s, v27.4s;				\
	sm4e		b2.4s, v27.4s;				\
	sm4e		b3.4s, v27.4s;				\
	sm4e		b0.4s, v28.4s;				\
	sm4e		b1.4s, v28.4s;				\
	sm4e		b2.4s, v28.4s;				\
	sm4e		b3.4s, v28.4s;				\
	sm4e		b0.4s, v29.4s;				\
	sm4e		b1.4s, v29.4s;				\
	sm4e		b2.4s, v29.4s;				\
	sm4e		b3.4s, v29.4s;				\
	sm4e		b0.4s, v30.4s;				\
	sm4e		b1.4s, v30.4s;				\
	sm4e		b2.4s, v30.4s;				\
	sm4e		b3.4s, v30.4s;				\
	sm4e		b0.4s, v31.4s;				\
	sm4e		b1.4s, v31.4s;				\
	sm4e		b2.4s, v31.4s;				\
	sm4e		b3.4s, v31.4s;				\
	rev64		b0.4s, b0.4s;				\
	rev64		b1.4s, b1.4s;				\
	rev64		b2.4s, b2.4s;				\
	rev64		b3.4s, b3.4s;				\
	ext		b0.16b, b0.16b, b0.16b, #8;		\
	ext		b1.16b, b1.16b, b1.16b, #8;		\
	ext		b2.16b, b2.16b, b2.16b, #8;		\

Annotation

Implementation Notes