xref: /qemu/target/arm/tcg/a32-uncond.decode (revision f0984d4040c328d1c021ae6680479cbbe13c485b)
151409b9eSRichard Henderson# A32 unconditional instructions
251409b9eSRichard Henderson#
351409b9eSRichard Henderson#  Copyright (c) 2019 Linaro, Ltd
451409b9eSRichard Henderson#
551409b9eSRichard Henderson# This library is free software; you can redistribute it and/or
651409b9eSRichard Henderson# modify it under the terms of the GNU Lesser General Public
751409b9eSRichard Henderson# License as published by the Free Software Foundation; either
8*50f57e09SChetan Pant# version 2.1 of the License, or (at your option) any later version.
951409b9eSRichard Henderson#
1051409b9eSRichard Henderson# This library is distributed in the hope that it will be useful,
1151409b9eSRichard Henderson# but WITHOUT ANY WARRANTY; without even the implied warranty of
1251409b9eSRichard Henderson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1351409b9eSRichard Henderson# Lesser General Public License for more details.
1451409b9eSRichard Henderson#
1551409b9eSRichard Henderson# You should have received a copy of the GNU Lesser General Public
1651409b9eSRichard Henderson# License along with this library; if not, see <http://www.gnu.org/licenses/>.
1751409b9eSRichard Henderson
1851409b9eSRichard Henderson#
1951409b9eSRichard Henderson# This file is processed by scripts/decodetree.py
2051409b9eSRichard Henderson#
2151409b9eSRichard Henderson# All insns that have 0xf in insn[31:28] are decoded here.
2251409b9eSRichard Henderson# All of those that have a COND field in insn[31:28] are in a32.decode
2351409b9eSRichard Henderson#
24360144f3SRichard Henderson
25519b8471SRichard Henderson&empty           !extern
26360144f3SRichard Henderson&i               !extern imm
2748c04a5dSRichard Henderson&setend          E
28360144f3SRichard Henderson
29360144f3SRichard Henderson# Branch with Link and Exchange
30360144f3SRichard Henderson
31360144f3SRichard Henderson%imm24h          0:s24 24:1 !function=times_2
32360144f3SRichard Henderson
33360144f3SRichard HendersonBLX_i            1111 101 . ........................          &i imm=%imm24h
34885782a7SRichard Henderson
35885782a7SRichard Henderson# System Instructions
36885782a7SRichard Henderson
37885782a7SRichard Henderson&rfe             rn w pu
38885782a7SRichard Henderson&srs             mode w pu
3952f83b9cSRichard Henderson&cps             mode imod M A I F
40885782a7SRichard Henderson
41885782a7SRichard HendersonRFE              1111 100 pu:2 0 w:1 1 rn:4 0000 1010 0000 0000   &rfe
42885782a7SRichard HendersonSRS              1111 100 pu:2 1 w:1 0 1101 0000 0101 000 mode:5  &srs
4352f83b9cSRichard HendersonCPS              1111 0001 0000 imod:2 M:1 0 0000 000 A:1 I:1 F:1 0 mode:5 \
4452f83b9cSRichard Henderson                 &cps
45519b8471SRichard Henderson
46519b8471SRichard Henderson# Clear-Exclusive, Barriers
47519b8471SRichard Henderson
48519b8471SRichard Henderson# QEMU does not require the option field for the barriers.
49519b8471SRichard HendersonCLREX            1111 0101 0111 1111 1111 0000 0001 1111
50519b8471SRichard HendersonDSB              1111 0101 0111 1111 1111 0000 0100 ----
51519b8471SRichard HendersonDMB              1111 0101 0111 1111 1111 0000 0101 ----
52519b8471SRichard HendersonISB              1111 0101 0111 1111 1111 0000 0110 ----
53519b8471SRichard HendersonSB               1111 0101 0111 1111 1111 0000 0111 0000
5448c04a5dSRichard Henderson
5548c04a5dSRichard Henderson# Set Endianness
5648c04a5dSRichard HendersonSETEND           1111 0001 0000 0001 0000 00 E:1 0 0000 0000  &setend
57beb595f6SRichard Henderson
58beb595f6SRichard Henderson# Preload instructions
59beb595f6SRichard Henderson
60beb595f6SRichard HendersonPLD              1111 0101 -101 ---- 1111 ---- ---- ----    # (imm, lit) 5te
61beb595f6SRichard HendersonPLDW             1111 0101 -001 ---- 1111 ---- ---- ----    # (imm, lit) 7mp
62beb595f6SRichard HendersonPLI              1111 0100 -101 ---- 1111 ---- ---- ----    # (imm, lit) 7
63beb595f6SRichard Henderson
64beb595f6SRichard HendersonPLD              1111 0111 -101 ---- 1111 ----- -- 0 ----   # (register) 5te
65beb595f6SRichard HendersonPLDW             1111 0111 -001 ---- 1111 ----- -- 0 ----   # (register) 7mp
66beb595f6SRichard HendersonPLI              1111 0110 -101 ---- 1111 ----- -- 0 ----   # (register) 7
67610f4e17SRichard Henderson
68610f4e17SRichard Henderson# Unallocated memory hints
69610f4e17SRichard Henderson#
70610f4e17SRichard Henderson# Since these are v7MP nops, and PLDW is v7MP and implemented as nop,
71610f4e17SRichard Henderson# (ab)use the PLDW helper.
72610f4e17SRichard Henderson
73610f4e17SRichard HendersonPLDW             1111 0100 -001 ---- ---- ---- ---- ----
74610f4e17SRichard HendersonPLDW             1111 0110 -001 ---- ---- ---- ---0 ----
75