brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 9292bba Raw
72 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2// Copyright (C) 2021-2 ARM Limited.3// Original author: Mark Brown <broonie@kernel.org>4 5#ifndef SME_INST_H6#define SME_INST_H7 8/*9 * RDSVL X\nx, #\imm10 */11.macro rdsvl nx, imm12	.inst	0x4bf5800			\13		| (\imm << 5)			\14		| (\nx)15.endm16 17.macro smstop18	msr	S0_3_C4_C6_3, xzr19.endm20 21.macro smstart_za22	msr	S0_3_C4_C5_3, xzr23.endm24 25.macro smstart_sm26	msr	S0_3_C4_C3_3, xzr27.endm28 29/*30 * LDR (vector to ZA array):31 *	LDR ZA[\nw, #\offset], [X\nxbase, #\offset, MUL VL]32 */33.macro _ldr_za nw, nxbase, offset=034	.inst	0xe1000000			\35		| (((\nw) & 3) << 13)		\36		| ((\nxbase) << 5)		\37		| ((\offset) & 7)38.endm39 40/*41 * STR (vector from ZA array):42 *	STR ZA[\nw, #\offset], [X\nxbase, #\offset, MUL VL]43 */44.macro _str_za nw, nxbase, offset=045	.inst	0xe1200000			\46		| (((\nw) & 3) << 13)		\47		| ((\nxbase) << 5)		\48		| ((\offset) & 7)49.endm50 51/*52 * LDR (ZT0)53 *54 *	LDR ZT0, nx55 */56.macro _ldr_zt nx57	.inst	0xe11f8000			\58		| (((\nx) & 0x1f) << 5)59.endm60 61/*62 * STR (ZT0)63 *64 *	STR ZT0, nx65 */66.macro _str_zt nx67	.inst	0xe13f8000			\68		| (((\nx) & 0x1f) << 5)69.endm70 71#endif72