arch/arm64/crypto/aes-neonbs-core.S

Source file repositories/reference/linux-study-clean/arch/arm64/crypto/aes-neonbs-core.S

File Facts

System
Linux kernel
Corpus path
arch/arm64/crypto/aes-neonbs-core.S
Extension
.S
Size
22154 bytes
Lines
867
Domain
Architecture Layer
Bucket
arch/arm64
Inferred role
Architecture Layer: arch/arm64
Status
atlas-only

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

#include <linux/linkage.h>
#include <linux/cfi_types.h>
#include <asm/assembler.h>

	.text

	rounds		.req	x11
	bskey		.req	x12

	.macro		in_bs_ch, b0, b1, b2, b3, b4, b5, b6, b7
	eor		\b2, \b2, \b1
	eor		\b5, \b5, \b6
	eor		\b3, \b3, \b0
	eor		\b6, \b6, \b2
	eor		\b5, \b5, \b0
	eor		\b6, \b6, \b3
	eor		\b3, \b3, \b7
	eor		\b7, \b7, \b5
	eor		\b3, \b3, \b4
	eor		\b4, \b4, \b5
	eor		\b2, \b2, \b7
	eor		\b3, \b3, \b1
	eor		\b1, \b1, \b5
	.endm

	.macro		out_bs_ch, b0, b1, b2, b3, b4, b5, b6, b7
	eor		\b0, \b0, \b6
	eor		\b1, \b1, \b4
	eor		\b4, \b4, \b6
	eor		\b2, \b2, \b0
	eor		\b6, \b6, \b1
	eor		\b1, \b1, \b5
	eor		\b5, \b5, \b3
	eor		\b3, \b3, \b7
	eor		\b7, \b7, \b5
	eor		\b2, \b2, \b5
	eor		\b4, \b4, \b7
	.endm

	.macro		inv_in_bs_ch, b6, b1, b2, b4, b7, b0, b3, b5
	eor		\b1, \b1, \b7
	eor		\b4, \b4, \b7
	eor		\b7, \b7, \b5
	eor		\b1, \b1, \b3
	eor		\b2, \b2, \b5
	eor		\b3, \b3, \b7
	eor		\b6, \b6, \b1
	eor		\b2, \b2, \b0
	eor		\b5, \b5, \b3
	eor		\b4, \b4, \b6
	eor		\b0, \b0, \b6
	eor		\b1, \b1, \b4
	.endm

	.macro		inv_out_bs_ch, b6, b5, b0, b3, b7, b1, b4, b2
	eor		\b1, \b1, \b5
	eor		\b2, \b2, \b7
	eor		\b3, \b3, \b1
	eor		\b4, \b4, \b5
	eor		\b7, \b7, \b5
	eor		\b3, \b3, \b4
	eor 		\b5, \b5, \b0
	eor		\b3, \b3, \b7
	eor		\b6, \b6, \b2
	eor		\b2, \b2, \b1
	eor		\b6, \b6, \b3
	eor		\b3, \b3, \b0
	eor		\b5, \b5, \b6
	.endm

Annotation

Implementation Notes