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