xref: /qemu/target/arm/tcg/neon-dp.decode (revision 0de34fd48ad4e44bf5caa2330657ebefa93cea7d)
1625e3dd4SPeter Maydell# AArch32 Neon data-processing instruction descriptions
2625e3dd4SPeter Maydell#
3625e3dd4SPeter Maydell#  Copyright (c) 2020 Linaro, Ltd
4625e3dd4SPeter Maydell#
5625e3dd4SPeter Maydell# This library is free software; you can redistribute it and/or
6625e3dd4SPeter Maydell# modify it under the terms of the GNU Lesser General Public
7625e3dd4SPeter Maydell# License as published by the Free Software Foundation; either
8625e3dd4SPeter Maydell# version 2 of the License, or (at your option) any later version.
9625e3dd4SPeter Maydell#
10625e3dd4SPeter Maydell# This library is distributed in the hope that it will be useful,
11625e3dd4SPeter Maydell# but WITHOUT ANY WARRANTY; without even the implied warranty of
12625e3dd4SPeter Maydell# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13625e3dd4SPeter Maydell# Lesser General Public License for more details.
14625e3dd4SPeter Maydell#
15625e3dd4SPeter Maydell# You should have received a copy of the GNU Lesser General Public
16625e3dd4SPeter Maydell# License along with this library; if not, see <http://www.gnu.org/licenses/>.
17625e3dd4SPeter Maydell
18625e3dd4SPeter Maydell#
19625e3dd4SPeter Maydell# This file is processed by scripts/decodetree.py
20625e3dd4SPeter Maydell#
21a4e143acSPeter Maydell# VFP/Neon register fields; same as vfp.decode
22a4e143acSPeter Maydell%vm_dp  5:1 0:4
23a4e143acSPeter Maydell%vn_dp  7:1 16:4
24a4e143acSPeter Maydell%vd_dp  22:1 12:4
25625e3dd4SPeter Maydell
26625e3dd4SPeter Maydell# Encodings for Neon data processing instructions where the T32 encoding
27625e3dd4SPeter Maydell# is a simple transformation of the A32 encoding.
28625e3dd4SPeter Maydell# More specifically, this file covers instructions where the A32 encoding is
29625e3dd4SPeter Maydell#   0b1111_001p_qqqq_qqqq_qqqq_qqqq_qqqq_qqqq
30625e3dd4SPeter Maydell# and the T32 encoding is
31625e3dd4SPeter Maydell#   0b111p_1111_qqqq_qqqq_qqqq_qqqq_qqqq_qqqq
32625e3dd4SPeter Maydell# This file works on the A32 encoding only; calling code for T32 has to
33625e3dd4SPeter Maydell# transform the insn into the A32 version first.
34a4e143acSPeter Maydell
35a4e143acSPeter Maydell######################################################################
36a4e143acSPeter Maydell# 3-reg-same grouping:
37a4e143acSPeter Maydell# 1111 001 U 0 D sz:2 Vn:4 Vd:4 opc:4 N Q M op Vm:4
38a4e143acSPeter Maydell######################################################################
39a4e143acSPeter Maydell
40a4e143acSPeter Maydell&3same vm vn vd q size
41a4e143acSPeter Maydell
42a4e143acSPeter Maydell@3same           .... ... . . . size:2 .... .... .... . q:1 . . .... \
43a4e143acSPeter Maydell                 &3same vm=%vm_dp vn=%vn_dp vd=%vd_dp
44a4e143acSPeter Maydell
457a9497f1SPeter MaydellVQADD_S_3s       1111 001 0 0 . .. .... .... 0000 . . . 1 .... @3same
467a9497f1SPeter MaydellVQADD_U_3s       1111 001 1 0 . .. .... .... 0000 . . . 1 .... @3same
477a9497f1SPeter Maydell
4835a548edSPeter Maydell@3same_logic     .... ... . . . .. .... .... .... . q:1 .. .... \
4935a548edSPeter Maydell                 &3same vm=%vm_dp vn=%vn_dp vd=%vd_dp size=0
5035a548edSPeter Maydell
5135a548edSPeter MaydellVAND_3s          1111 001 0 0 . 00 .... .... 0001 ... 1 .... @3same_logic
5235a548edSPeter MaydellVBIC_3s          1111 001 0 0 . 01 .... .... 0001 ... 1 .... @3same_logic
5335a548edSPeter MaydellVORR_3s          1111 001 0 0 . 10 .... .... 0001 ... 1 .... @3same_logic
5435a548edSPeter MaydellVORN_3s          1111 001 0 0 . 11 .... .... 0001 ... 1 .... @3same_logic
5535a548edSPeter MaydellVEOR_3s          1111 001 1 0 . 00 .... .... 0001 ... 1 .... @3same_logic
5635a548edSPeter MaydellVBSL_3s          1111 001 1 0 . 01 .... .... 0001 ... 1 .... @3same_logic
5735a548edSPeter MaydellVBIT_3s          1111 001 1 0 . 10 .... .... 0001 ... 1 .... @3same_logic
5835a548edSPeter MaydellVBIF_3s          1111 001 1 0 . 11 .... .... 0001 ... 1 .... @3same_logic
5935a548edSPeter Maydell
607a9497f1SPeter MaydellVQSUB_S_3s       1111 001 0 0 . .. .... .... 0010 . . . 1 .... @3same
617a9497f1SPeter MaydellVQSUB_U_3s       1111 001 1 0 . .. .... .... 0010 . . . 1 .... @3same
627a9497f1SPeter Maydell
6302bd0cdbSPeter MaydellVCGT_S_3s        1111 001 0 0 . .. .... .... 0011 . . . 0 .... @3same
6402bd0cdbSPeter MaydellVCGT_U_3s        1111 001 1 0 . .. .... .... 0011 . . . 0 .... @3same
6502bd0cdbSPeter MaydellVCGE_S_3s        1111 001 0 0 . .. .... .... 0011 . . . 1 .... @3same
6602bd0cdbSPeter MaydellVCGE_U_3s        1111 001 1 0 . .. .... .... 0011 . . . 1 .... @3same
6702bd0cdbSPeter Maydell
68*0de34fd4SPeter MaydellVSHL_S_3s        1111 001 0 0 . .. .... .... 0100 . . . 0 .... @3same
69*0de34fd4SPeter MaydellVSHL_U_3s        1111 001 1 0 . .. .... .... 0100 . . . 0 .... @3same
70*0de34fd4SPeter Maydell
7136b59310SPeter MaydellVMAX_S_3s        1111 001 0 0 . .. .... .... 0110 . . . 0 .... @3same
7236b59310SPeter MaydellVMAX_U_3s        1111 001 1 0 . .. .... .... 0110 . . . 0 .... @3same
7336b59310SPeter MaydellVMIN_S_3s        1111 001 0 0 . .. .... .... 0110 . . . 1 .... @3same
7436b59310SPeter MaydellVMIN_U_3s        1111 001 1 0 . .. .... .... 0110 . . . 1 .... @3same
7536b59310SPeter Maydell
76a4e143acSPeter MaydellVADD_3s          1111 001 0 0 . .. .... .... 1000 . . . 0 .... @3same
77a4e143acSPeter MaydellVSUB_3s          1111 001 1 0 . .. .... .... 1000 . . . 0 .... @3same
7802bd0cdbSPeter Maydell
7902bd0cdbSPeter MaydellVTST_3s          1111 001 0 0 . .. .... .... 1000 . . . 1 .... @3same
8002bd0cdbSPeter MaydellVCEQ_3s          1111 001 1 0 . .. .... .... 1000 . . . 1 .... @3same
81*0de34fd4SPeter Maydell
82*0de34fd4SPeter MaydellVMLA_3s          1111 001 0 0 . .. .... .... 1001 . . . 0 .... @3same
83*0de34fd4SPeter MaydellVMLS_3s          1111 001 1 0 . .. .... .... 1001 . . . 0 .... @3same
84*0de34fd4SPeter Maydell
85*0de34fd4SPeter MaydellVMUL_3s          1111 001 0 0 . .. .... .... 1001 . . . 1 .... @3same
86*0de34fd4SPeter MaydellVMUL_p_3s        1111 001 1 0 . .. .... .... 1001 . . . 1 .... @3same
87