16390eed4SPeter Maydell# M-profile MVE instruction descriptions 26390eed4SPeter Maydell# 36390eed4SPeter Maydell# Copyright (c) 2021 Linaro, Ltd 46390eed4SPeter Maydell# 56390eed4SPeter Maydell# This library is free software; you can redistribute it and/or 66390eed4SPeter Maydell# modify it under the terms of the GNU Lesser General Public 76390eed4SPeter Maydell# License as published by the Free Software Foundation; either 86390eed4SPeter Maydell# version 2.1 of the License, or (at your option) any later version. 96390eed4SPeter Maydell# 106390eed4SPeter Maydell# This library is distributed in the hope that it will be useful, 116390eed4SPeter Maydell# but WITHOUT ANY WARRANTY; without even the implied warranty of 126390eed4SPeter Maydell# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 136390eed4SPeter Maydell# Lesser General Public License for more details. 146390eed4SPeter Maydell# 156390eed4SPeter Maydell# You should have received a copy of the GNU Lesser General Public 166390eed4SPeter Maydell# License along with this library; if not, see <http://www.gnu.org/licenses/>. 176390eed4SPeter Maydell 186390eed4SPeter Maydell# 196390eed4SPeter Maydell# This file is processed by scripts/decodetree.py 206390eed4SPeter Maydell# 21507b6a50SPeter Maydell 22507b6a50SPeter Maydell%qd 22:1 13:3 230f0f2bd5SPeter Maydell%qm 5:1 1:3 24507b6a50SPeter Maydell 252fc6b751SPeter Maydell&vldr_vstr rn qd imm p a w size l u 260f0f2bd5SPeter Maydell&1op qd qm size 27507b6a50SPeter Maydell 282fc6b751SPeter Maydell@vldr_vstr ....... . . . . l:1 rn:4 ... ...... imm:7 &vldr_vstr qd=%qd u=0 292fc6b751SPeter Maydell# Note that both Rn and Qd are 3 bits only (no D bit) 302fc6b751SPeter Maydell@vldst_wn ... u:1 ... . . . . l:1 . rn:3 qd:3 . ... .. imm:7 &vldr_vstr 31507b6a50SPeter Maydell 320f0f2bd5SPeter Maydell@1op .... .... .... size:2 .. .... .... .... .... &1op qd=%qd qm=%qm 330f0f2bd5SPeter Maydell 34507b6a50SPeter Maydell# Vector loads and stores 35507b6a50SPeter Maydell 362fc6b751SPeter Maydell# Widening loads and narrowing stores: 372fc6b751SPeter Maydell# for these P=0 W=0 is 'related encoding'; sz=11 is 'related encoding' 382fc6b751SPeter Maydell# This means we need to expand out to multiple patterns for P, W, SZ. 392fc6b751SPeter Maydell# For stores the U bit must be 0 but we catch that in the trans_ function. 402fc6b751SPeter Maydell# The naming scheme here is "VLDSTB_H == in-memory byte load/store to/from 412fc6b751SPeter Maydell# signed halfword element in register", etc. 422fc6b751SPeter MaydellVLDSTB_H 111 . 110 0 a:1 0 1 . 0 ... ... 0 111 01 ....... @vldst_wn \ 432fc6b751SPeter Maydell p=0 w=1 size=1 442fc6b751SPeter MaydellVLDSTB_H 111 . 110 1 a:1 0 w:1 . 0 ... ... 0 111 01 ....... @vldst_wn \ 452fc6b751SPeter Maydell p=1 size=1 462fc6b751SPeter MaydellVLDSTB_W 111 . 110 0 a:1 0 1 . 0 ... ... 0 111 10 ....... @vldst_wn \ 472fc6b751SPeter Maydell p=0 w=1 size=2 482fc6b751SPeter MaydellVLDSTB_W 111 . 110 1 a:1 0 w:1 . 0 ... ... 0 111 10 ....... @vldst_wn \ 492fc6b751SPeter Maydell p=1 size=2 502fc6b751SPeter MaydellVLDSTH_W 111 . 110 0 a:1 0 1 . 1 ... ... 0 111 10 ....... @vldst_wn \ 512fc6b751SPeter Maydell p=0 w=1 size=2 522fc6b751SPeter MaydellVLDSTH_W 111 . 110 1 a:1 0 w:1 . 1 ... ... 0 111 10 ....... @vldst_wn \ 532fc6b751SPeter Maydell p=1 size=2 542fc6b751SPeter Maydell 55507b6a50SPeter Maydell# Non-widening loads/stores (P=0 W=0 is 'related encoding') 56507b6a50SPeter MaydellVLDR_VSTR 1110110 0 a:1 . 1 . .... ... 111100 ....... @vldr_vstr \ 57507b6a50SPeter Maydell size=0 p=0 w=1 58507b6a50SPeter MaydellVLDR_VSTR 1110110 0 a:1 . 1 . .... ... 111101 ....... @vldr_vstr \ 59507b6a50SPeter Maydell size=1 p=0 w=1 60507b6a50SPeter MaydellVLDR_VSTR 1110110 0 a:1 . 1 . .... ... 111110 ....... @vldr_vstr \ 61507b6a50SPeter Maydell size=2 p=0 w=1 62507b6a50SPeter MaydellVLDR_VSTR 1110110 1 a:1 . w:1 . .... ... 111100 ....... @vldr_vstr \ 63507b6a50SPeter Maydell size=0 p=1 64507b6a50SPeter MaydellVLDR_VSTR 1110110 1 a:1 . w:1 . .... ... 111101 ....... @vldr_vstr \ 65507b6a50SPeter Maydell size=1 p=1 66507b6a50SPeter MaydellVLDR_VSTR 1110110 1 a:1 . w:1 . .... ... 111110 ....... @vldr_vstr \ 67507b6a50SPeter Maydell size=2 p=1 680f0f2bd5SPeter Maydell 690f0f2bd5SPeter Maydell# Vector miscellaneous 700f0f2bd5SPeter Maydell 71*6437f1f7SPeter MaydellVCLS 1111 1111 1 . 11 .. 00 ... 0 0100 01 . 0 ... 0 @1op 720f0f2bd5SPeter MaydellVCLZ 1111 1111 1 . 11 .. 00 ... 0 0100 11 . 0 ... 0 @1op 73