0001
0002
0003
0004
0005 #ifndef SME_INST_H
0006 #define SME_INST_H
0007
0008
0009
0010
0011 .macro rdsvl nx, imm
0012 .inst 0x4bf5800 \
0013 | (\imm << 5) \
0014 | (\nx)
0015 .endm
0016
0017 .macro smstop
0018 msr S0_3_C4_C6_3, xzr
0019 .endm
0020
0021 .macro smstart_za
0022 msr S0_3_C4_C5_3, xzr
0023 .endm
0024
0025 .macro smstart_sm
0026 msr S0_3_C4_C3_3, xzr
0027 .endm
0028
0029
0030
0031
0032
0033 .macro _ldr_za nw, nxbase, offset=0
0034 .inst 0xe1000000 \
0035 | (((\nw) & 3) << 13) \
0036 | ((\nxbase) << 5) \
0037 | ((\offset) & 7)
0038 .endm
0039
0040
0041
0042
0043
0044 .macro _str_za nw, nxbase, offset=0
0045 .inst 0xe1200000 \
0046 | (((\nw) & 3) << 13) \
0047 | ((\nxbase) << 5) \
0048 | ((\offset) & 7)
0049 .endm
0050
0051 #endif