1e67cd1caSRichard Henderson# AArch64 SME instruction descriptions 2e67cd1caSRichard Henderson# 3e67cd1caSRichard Henderson# Copyright (c) 2022 Linaro, Ltd 4e67cd1caSRichard Henderson# 5e67cd1caSRichard Henderson# This library is free software; you can redistribute it and/or 6e67cd1caSRichard Henderson# modify it under the terms of the GNU Lesser General Public 7e67cd1caSRichard Henderson# License as published by the Free Software Foundation; either 8e67cd1caSRichard Henderson# version 2.1 of the License, or (at your option) any later version. 9e67cd1caSRichard Henderson# 10e67cd1caSRichard Henderson# This library is distributed in the hope that it will be useful, 11e67cd1caSRichard Henderson# but WITHOUT ANY WARRANTY; without even the implied warranty of 12e67cd1caSRichard Henderson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13e67cd1caSRichard Henderson# Lesser General Public License for more details. 14e67cd1caSRichard Henderson# 15e67cd1caSRichard Henderson# You should have received a copy of the GNU Lesser General Public 16e67cd1caSRichard Henderson# License along with this library; if not, see <http://www.gnu.org/licenses/>. 17e67cd1caSRichard Henderson 18e67cd1caSRichard Henderson# 19e67cd1caSRichard Henderson# This file is processed by scripts/decodetree.py 20e67cd1caSRichard Henderson# 21ad939afbSRichard Henderson 22ad939afbSRichard Henderson### SME Misc 23ad939afbSRichard Henderson 24ad939afbSRichard HendersonZERO 11000000 00 001 00000000000 imm:8 25e9ad3ef1SRichard Henderson 26e9ad3ef1SRichard Henderson### SME Move into/from Array 27e9ad3ef1SRichard Henderson 28e9ad3ef1SRichard Henderson%mova_rs 13:2 !function=plus_12 29e9ad3ef1SRichard Henderson&mova esz rs pg zr za_imm v:bool to_vec:bool 30e9ad3ef1SRichard Henderson 31e9ad3ef1SRichard HendersonMOVA 11000000 esz:2 00000 0 v:1 .. pg:3 zr:5 0 za_imm:4 \ 32e9ad3ef1SRichard Henderson &mova to_vec=0 rs=%mova_rs 33e9ad3ef1SRichard HendersonMOVA 11000000 11 00000 1 v:1 .. pg:3 zr:5 0 za_imm:4 \ 34e9ad3ef1SRichard Henderson &mova to_vec=0 rs=%mova_rs esz=4 35e9ad3ef1SRichard Henderson 36e9ad3ef1SRichard HendersonMOVA 11000000 esz:2 00001 0 v:1 .. pg:3 0 za_imm:4 zr:5 \ 37e9ad3ef1SRichard Henderson &mova to_vec=1 rs=%mova_rs 38e9ad3ef1SRichard HendersonMOVA 11000000 11 00001 1 v:1 .. pg:3 0 za_imm:4 zr:5 \ 39e9ad3ef1SRichard Henderson &mova to_vec=1 rs=%mova_rs esz=4 407390e0e9SRichard Henderson 417390e0e9SRichard Henderson### SME Memory 427390e0e9SRichard Henderson 437390e0e9SRichard Henderson&ldst esz rs pg rn rm za_imm v:bool st:bool 447390e0e9SRichard Henderson 457390e0e9SRichard HendersonLDST1 1110000 0 esz:2 st:1 rm:5 v:1 .. pg:3 rn:5 0 za_imm:4 \ 467390e0e9SRichard Henderson &ldst rs=%mova_rs 477390e0e9SRichard HendersonLDST1 1110000 111 st:1 rm:5 v:1 .. pg:3 rn:5 0 za_imm:4 \ 487390e0e9SRichard Henderson &ldst esz=4 rs=%mova_rs 494c46a5f1SRichard Henderson 504c46a5f1SRichard Henderson&ldstr rv rn imm 514c46a5f1SRichard Henderson@ldstr ....... ... . ...... .. ... rn:5 . imm:4 \ 524c46a5f1SRichard Henderson &ldstr rv=%mova_rs 534c46a5f1SRichard Henderson 544c46a5f1SRichard HendersonLDR 1110000 100 0 000000 .. 000 ..... 0 .... @ldstr 554c46a5f1SRichard HendersonSTR 1110000 100 1 000000 .. 000 ..... 0 .... @ldstr 56bc4420d9SRichard Henderson 57bc4420d9SRichard Henderson### SME Add Vector to Array 58bc4420d9SRichard Henderson 59bc4420d9SRichard Henderson&adda zad zn pm pn 60bc4420d9SRichard Henderson@adda_32 ........ .. ..... . pm:3 pn:3 zn:5 ... zad:2 &adda 61bc4420d9SRichard Henderson@adda_64 ........ .. ..... . pm:3 pn:3 zn:5 .. zad:3 &adda 62bc4420d9SRichard Henderson 63bc4420d9SRichard HendersonADDHA_s 11000000 10 01000 0 ... ... ..... 000 .. @adda_32 64bc4420d9SRichard HendersonADDVA_s 11000000 10 01000 1 ... ... ..... 000 .. @adda_32 65bc4420d9SRichard HendersonADDHA_d 11000000 11 01000 0 ... ... ..... 00 ... @adda_64 66bc4420d9SRichard HendersonADDVA_d 11000000 11 01000 1 ... ... ..... 00 ... @adda_64 67558e956cSRichard Henderson 68558e956cSRichard Henderson### SME Outer Product 69558e956cSRichard Henderson 70558e956cSRichard Henderson&op zad zn zm pm pn sub:bool 71558e956cSRichard Henderson@op_32 ........ ... zm:5 pm:3 pn:3 zn:5 sub:1 .. zad:2 &op 72558e956cSRichard Henderson@op_64 ........ ... zm:5 pm:3 pn:3 zn:5 sub:1 . zad:3 &op 73558e956cSRichard Henderson 74558e956cSRichard HendersonFMOPA_s 10000000 100 ..... ... ... ..... . 00 .. @op_32 75558e956cSRichard HendersonFMOPA_d 10000000 110 ..... ... ... ..... . 0 ... @op_64 76920f640dSRichard Henderson 77920f640dSRichard HendersonBFMOPA 10000001 100 ..... ... ... ..... . 00 .. @op_32 783916841aSRichard HendersonFMOPA_h 10000001 101 ..... ... ... ..... . 00 .. @op_32 79*23a5e385SRichard Henderson 80*23a5e385SRichard HendersonSMOPA_s 1010000 0 10 0 ..... ... ... ..... . 00 .. @op_32 81*23a5e385SRichard HendersonSUMOPA_s 1010000 0 10 1 ..... ... ... ..... . 00 .. @op_32 82*23a5e385SRichard HendersonUSMOPA_s 1010000 1 10 0 ..... ... ... ..... . 00 .. @op_32 83*23a5e385SRichard HendersonUMOPA_s 1010000 1 10 1 ..... ... ... ..... . 00 .. @op_32 84*23a5e385SRichard Henderson 85*23a5e385SRichard HendersonSMOPA_d 1010000 0 11 0 ..... ... ... ..... . 0 ... @op_64 86*23a5e385SRichard HendersonSUMOPA_d 1010000 0 11 1 ..... ... ... ..... . 0 ... @op_64 87*23a5e385SRichard HendersonUSMOPA_d 1010000 1 11 0 ..... ... ... ..... . 0 ... @op_64 88*23a5e385SRichard HendersonUMOPA_d 1010000 1 11 1 ..... ... ... ..... . 0 ... @op_64 89