Path: blob/master/arch/arm64/crypto/sm4-ce-cipher-core.S
26451 views
// SPDX-License-Identifier: GPL-2.012#include <linux/linkage.h>3#include <asm/assembler.h>45.irp b, 0, 1, 2, 3, 4, 5, 6, 7, 86.set .Lv\b\().4s, \b7.endr89.macro sm4e, rd, rn10.inst 0xcec08400 | .L\rd | (.L\rn << 5)11.endm1213/*14* void sm4_ce_do_crypt(const u32 *rk, u32 *out, const u32 *in);15*/16.text17SYM_FUNC_START(sm4_ce_do_crypt)18ld1 {v8.4s}, [x2]19ld1 {v0.4s-v3.4s}, [x0], #6420CPU_LE( rev32 v8.16b, v8.16b )21ld1 {v4.4s-v7.4s}, [x0]22sm4e v8.4s, v0.4s23sm4e v8.4s, v1.4s24sm4e v8.4s, v2.4s25sm4e v8.4s, v3.4s26sm4e v8.4s, v4.4s27sm4e v8.4s, v5.4s28sm4e v8.4s, v6.4s29sm4e v8.4s, v7.4s30rev64 v8.4s, v8.4s31ext v8.16b, v8.16b, v8.16b, #832CPU_LE( rev32 v8.16b, v8.16b )33st1 {v8.4s}, [x1]34ret35SYM_FUNC_END(sm4_ce_do_crypt)363738