]> Git Repo - qemu.git/blame - target/arm/neon-dp.decode
target/arm: Convert Neon 3-reg-same comparisons to decodetree
[qemu.git] / target / arm / neon-dp.decode
CommitLineData
625e3dd4
PM
1# AArch32 Neon data-processing instruction descriptions
2#
3# Copyright (c) 2020 Linaro, Ltd
4#
5# This library is free software; you can redistribute it and/or
6# modify it under the terms of the GNU Lesser General Public
7# License as published by the Free Software Foundation; either
8# version 2 of the License, or (at your option) any later version.
9#
10# This library is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# Lesser General Public License for more details.
14#
15# You should have received a copy of the GNU Lesser General Public
16# License along with this library; if not, see <http://www.gnu.org/licenses/>.
17
18#
19# This file is processed by scripts/decodetree.py
20#
a4e143ac
PM
21# VFP/Neon register fields; same as vfp.decode
22%vm_dp 5:1 0:4
23%vn_dp 7:1 16:4
24%vd_dp 22:1 12:4
625e3dd4
PM
25
26# Encodings for Neon data processing instructions where the T32 encoding
27# is a simple transformation of the A32 encoding.
28# More specifically, this file covers instructions where the A32 encoding is
29# 0b1111_001p_qqqq_qqqq_qqqq_qqqq_qqqq_qqqq
30# and the T32 encoding is
31# 0b111p_1111_qqqq_qqqq_qqqq_qqqq_qqqq_qqqq
32# This file works on the A32 encoding only; calling code for T32 has to
33# transform the insn into the A32 version first.
a4e143ac
PM
34
35######################################################################
36# 3-reg-same grouping:
37# 1111 001 U 0 D sz:2 Vn:4 Vd:4 opc:4 N Q M op Vm:4
38######################################################################
39
40&3same vm vn vd q size
41
42@3same .... ... . . . size:2 .... .... .... . q:1 . . .... \
43 &3same vm=%vm_dp vn=%vn_dp vd=%vd_dp
44
35a548ed
PM
45@3same_logic .... ... . . . .. .... .... .... . q:1 .. .... \
46 &3same vm=%vm_dp vn=%vn_dp vd=%vd_dp size=0
47
48VAND_3s 1111 001 0 0 . 00 .... .... 0001 ... 1 .... @3same_logic
49VBIC_3s 1111 001 0 0 . 01 .... .... 0001 ... 1 .... @3same_logic
50VORR_3s 1111 001 0 0 . 10 .... .... 0001 ... 1 .... @3same_logic
51VORN_3s 1111 001 0 0 . 11 .... .... 0001 ... 1 .... @3same_logic
52VEOR_3s 1111 001 1 0 . 00 .... .... 0001 ... 1 .... @3same_logic
53VBSL_3s 1111 001 1 0 . 01 .... .... 0001 ... 1 .... @3same_logic
54VBIT_3s 1111 001 1 0 . 10 .... .... 0001 ... 1 .... @3same_logic
55VBIF_3s 1111 001 1 0 . 11 .... .... 0001 ... 1 .... @3same_logic
56
02bd0cdb
PM
57VCGT_S_3s 1111 001 0 0 . .. .... .... 0011 . . . 0 .... @3same
58VCGT_U_3s 1111 001 1 0 . .. .... .... 0011 . . . 0 .... @3same
59VCGE_S_3s 1111 001 0 0 . .. .... .... 0011 . . . 1 .... @3same
60VCGE_U_3s 1111 001 1 0 . .. .... .... 0011 . . . 1 .... @3same
61
36b59310
PM
62VMAX_S_3s 1111 001 0 0 . .. .... .... 0110 . . . 0 .... @3same
63VMAX_U_3s 1111 001 1 0 . .. .... .... 0110 . . . 0 .... @3same
64VMIN_S_3s 1111 001 0 0 . .. .... .... 0110 . . . 1 .... @3same
65VMIN_U_3s 1111 001 1 0 . .. .... .... 0110 . . . 1 .... @3same
66
a4e143ac
PM
67VADD_3s 1111 001 0 0 . .. .... .... 1000 . . . 0 .... @3same
68VSUB_3s 1111 001 1 0 . .. .... .... 1000 . . . 0 .... @3same
02bd0cdb
PM
69
70VTST_3s 1111 001 0 0 . .. .... .... 1000 . . . 1 .... @3same
71VCEQ_3s 1111 001 1 0 . .. .... .... 1000 . . . 1 .... @3same
This page took 0.028535 seconds and 4 git commands to generate.