]>
Commit | Line | Data |
---|---|---|
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 | ||
48 | VAND_3s 1111 001 0 0 . 00 .... .... 0001 ... 1 .... @3same_logic | |
49 | VBIC_3s 1111 001 0 0 . 01 .... .... 0001 ... 1 .... @3same_logic | |
50 | VORR_3s 1111 001 0 0 . 10 .... .... 0001 ... 1 .... @3same_logic | |
51 | VORN_3s 1111 001 0 0 . 11 .... .... 0001 ... 1 .... @3same_logic | |
52 | VEOR_3s 1111 001 1 0 . 00 .... .... 0001 ... 1 .... @3same_logic | |
53 | VBSL_3s 1111 001 1 0 . 01 .... .... 0001 ... 1 .... @3same_logic | |
54 | VBIT_3s 1111 001 1 0 . 10 .... .... 0001 ... 1 .... @3same_logic | |
55 | VBIF_3s 1111 001 1 0 . 11 .... .... 0001 ... 1 .... @3same_logic | |
56 | ||
02bd0cdb PM |
57 | VCGT_S_3s 1111 001 0 0 . .. .... .... 0011 . . . 0 .... @3same |
58 | VCGT_U_3s 1111 001 1 0 . .. .... .... 0011 . . . 0 .... @3same | |
59 | VCGE_S_3s 1111 001 0 0 . .. .... .... 0011 . . . 1 .... @3same | |
60 | VCGE_U_3s 1111 001 1 0 . .. .... .... 0011 . . . 1 .... @3same | |
61 | ||
36b59310 PM |
62 | VMAX_S_3s 1111 001 0 0 . .. .... .... 0110 . . . 0 .... @3same |
63 | VMAX_U_3s 1111 001 1 0 . .. .... .... 0110 . . . 0 .... @3same | |
64 | VMIN_S_3s 1111 001 0 0 . .. .... .... 0110 . . . 1 .... @3same | |
65 | VMIN_U_3s 1111 001 1 0 . .. .... .... 0110 . . . 1 .... @3same | |
66 | ||
a4e143ac PM |
67 | VADD_3s 1111 001 0 0 . .. .... .... 1000 . . . 0 .... @3same |
68 | VSUB_3s 1111 001 1 0 . .. .... .... 1000 . . . 0 .... @3same | |
02bd0cdb PM |
69 | |
70 | VTST_3s 1111 001 0 0 . .. .... .... 1000 . . . 1 .... @3same | |
71 | VCEQ_3s 1111 001 1 0 . .. .... .... 1000 . . . 1 .... @3same |