1625e3dd4SPeter Maydell# AArch32 Neon 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# 21625e3dd4SPeter Maydell 22625e3dd4SPeter Maydell# Encodings for Neon instructions whose encoding is the same for 23625e3dd4SPeter Maydell# both A32 and T32. 24625e3dd4SPeter Maydell 25625e3dd4SPeter Maydell# More specifically, this covers: 26625e3dd4SPeter Maydell# 2reg scalar ext: 0b1111_1110_xxxx_xxxx_xxxx_1x0x_xxxx_xxxx 27625e3dd4SPeter Maydell# 3same ext: 0b1111_110x_xxxx_xxxx_xxxx_1x0x_xxxx_xxxx 28afff8de0SPeter Maydell 29afff8de0SPeter Maydell# VFP/Neon register fields; same as vfp.decode 30afff8de0SPeter Maydell%vm_dp 5:1 0:4 31afff8de0SPeter Maydell%vm_sp 0:4 5:1 32afff8de0SPeter Maydell%vn_dp 7:1 16:4 33afff8de0SPeter Maydell%vn_sp 16:4 7:1 34afff8de0SPeter Maydell%vd_dp 22:1 12:4 35afff8de0SPeter Maydell%vd_sp 12:4 22:1 36afff8de0SPeter Maydell 37afff8de0SPeter MaydellVCMLA 1111 110 rot:2 . 1 size:1 .... .... 1000 . q:1 . 0 .... \ 38afff8de0SPeter Maydell vm=%vm_dp vn=%vn_dp vd=%vd_dp 3994d5eb7bSPeter Maydell 4094d5eb7bSPeter MaydellVCADD 1111 110 rot:1 1 . 0 size:1 .... .... 1000 . q:1 . 0 .... \ 4194d5eb7bSPeter Maydell vm=%vm_dp vn=%vn_dp vd=%vd_dp 4232da0e33SPeter Maydell 4332da0e33SPeter Maydell# VUDOT and VSDOT 4432da0e33SPeter MaydellVDOT 1111 110 00 . 10 .... .... 1101 . q:1 . u:1 .... \ 4532da0e33SPeter Maydell vm=%vm_dp vn=%vn_dp vd=%vd_dp 469a107e7bSPeter Maydell 479a107e7bSPeter Maydell# VFM[AS]L 489a107e7bSPeter MaydellVFML 1111 110 0 s:1 . 10 .... .... 1000 . 0 . 1 .... \ 499a107e7bSPeter Maydell vm=%vm_sp vn=%vn_sp vd=%vd_dp q=0 509a107e7bSPeter MaydellVFML 1111 110 0 s:1 . 10 .... .... 1000 . 1 . 1 .... \ 519a107e7bSPeter Maydell vm=%vm_dp vn=%vn_dp vd=%vd_dp q=1 527e1b5d61SPeter Maydell 537e1b5d61SPeter MaydellVCMLA_scalar 1111 1110 0 . rot:2 .... .... 1000 . q:1 index:1 0 vm:4 \ 547e1b5d61SPeter Maydell vn=%vn_dp vd=%vd_dp size=0 557e1b5d61SPeter MaydellVCMLA_scalar 1111 1110 1 . rot:2 .... .... 1000 . q:1 . 0 .... \ 567e1b5d61SPeter Maydell vm=%vm_dp vn=%vn_dp vd=%vd_dp size=1 index=0 5735f5d4d1SPeter Maydell 5835f5d4d1SPeter MaydellVDOT_scalar 1111 1110 0 . 10 .... .... 1101 . q:1 index:1 u:1 rm:4 \ 5935f5d4d1SPeter Maydell vm=%vm_dp vn=%vn_dp vd=%vd_dp 60*d27e82f7SPeter Maydell 61*d27e82f7SPeter Maydell%vfml_scalar_q0_rm 0:3 5:1 62*d27e82f7SPeter Maydell%vfml_scalar_q1_index 5:1 3:1 63*d27e82f7SPeter MaydellVFML_scalar 1111 1110 0 . 0 s:1 .... .... 1000 . 0 . 1 index:1 ... \ 64*d27e82f7SPeter Maydell rm=%vfml_scalar_q0_rm vn=%vn_sp vd=%vd_dp q=0 65*d27e82f7SPeter MaydellVFML_scalar 1111 1110 0 . 0 s:1 .... .... 1000 . 1 . 1 . rm:3 \ 66*d27e82f7SPeter Maydell index=%vfml_scalar_q1_index vn=%vn_dp vd=%vd_dp q=1 67