151409b9eSRichard Henderson# A32 conditional 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 850f57e09SChetan 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 of the insn that have a COND field in insn[31:28] are here. 2251409b9eSRichard Henderson# All insns that have 0xf in insn[31:28] are in a32-uncond.decode. 2351409b9eSRichard Henderson# 2425ae32c5SRichard Henderson 2563130596SRichard Henderson&empty 2625ae32c5SRichard Henderson&s_rrr_shi s rd rn rm shim shty 275be2c123SRichard Henderson&s_rrr_shr s rn rd rm rs shty 28581c6ebdSRichard Henderson&s_rri_rot s rn rd imm rot 29bd92fe35SRichard Henderson&s_rrrr s rd rn rm ra 30bd92fe35SRichard Henderson&rrrr rd rn rm ra 3146497f6aSRichard Henderson&rrr_rot rd rn rm rot 326d0730a8SRichard Henderson&rrr rd rn rm 334c97f5b2SRichard Henderson&rr rd rm 34145952e8SRichard Henderson&ri rd imm 354ed95abdSRichard Henderson&r rm 362cde9ea5SRichard Henderson&i imm 37d0b26644SRichard Henderson&msr_reg rn r mask 38d0b26644SRichard Henderson&mrs_reg rd r 39d0b26644SRichard Henderson&msr_bank rn r sysm 40d0b26644SRichard Henderson&mrs_bank rd r sysm 415e291fe1SRichard Henderson&ldst_rr p w u rn rt rm shimm shtype 425e291fe1SRichard Henderson&ldst_ri p w u rn rt imm 43c5c426d4SRichard Henderson&ldst_block rn i b u w list 441efdd407SRichard Henderson&strex rn rd rt rt2 imm 451efdd407SRichard Henderson&ldrex rn rt rt2 imm 4686d21e4bSRichard Henderson&bfx rd rn lsb widthm1 4786d21e4bSRichard Henderson&bfi rd rn lsb msb 4846497f6aSRichard Henderson&sat rd rn satimm imm sh 4946497f6aSRichard Henderson&pkh rd rn rm imm tb 50cd8be50eSPeter Maydell&mcr cp opc1 crn crm opc2 rt 51cd8be50eSPeter Maydell&mcrr cp opc1 crm rt rt2 5225ae32c5SRichard Henderson 5325ae32c5SRichard Henderson# Data-processing (register) 5425ae32c5SRichard Henderson 5525ae32c5SRichard Henderson@s_rrr_shi ---- ... .... s:1 rn:4 rd:4 shim:5 shty:2 . rm:4 \ 5625ae32c5SRichard Henderson &s_rrr_shi 5725ae32c5SRichard Henderson@s_rxr_shi ---- ... .... s:1 .... rd:4 shim:5 shty:2 . rm:4 \ 5825ae32c5SRichard Henderson &s_rrr_shi rn=0 5925ae32c5SRichard Henderson@S_xrr_shi ---- ... .... . rn:4 .... shim:5 shty:2 . rm:4 \ 6025ae32c5SRichard Henderson &s_rrr_shi s=1 rd=0 6125ae32c5SRichard Henderson 6225ae32c5SRichard HendersonAND_rrri .... 000 0000 . .... .... ..... .. 0 .... @s_rrr_shi 6325ae32c5SRichard HendersonEOR_rrri .... 000 0001 . .... .... ..... .. 0 .... @s_rrr_shi 6425ae32c5SRichard HendersonSUB_rrri .... 000 0010 . .... .... ..... .. 0 .... @s_rrr_shi 6525ae32c5SRichard HendersonRSB_rrri .... 000 0011 . .... .... ..... .. 0 .... @s_rrr_shi 6625ae32c5SRichard HendersonADD_rrri .... 000 0100 . .... .... ..... .. 0 .... @s_rrr_shi 6725ae32c5SRichard HendersonADC_rrri .... 000 0101 . .... .... ..... .. 0 .... @s_rrr_shi 6825ae32c5SRichard HendersonSBC_rrri .... 000 0110 . .... .... ..... .. 0 .... @s_rrr_shi 6925ae32c5SRichard HendersonRSC_rrri .... 000 0111 . .... .... ..... .. 0 .... @s_rrr_shi 7025ae32c5SRichard HendersonTST_xrri .... 000 1000 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7125ae32c5SRichard HendersonTEQ_xrri .... 000 1001 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7225ae32c5SRichard HendersonCMP_xrri .... 000 1010 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7325ae32c5SRichard HendersonCMN_xrri .... 000 1011 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7425ae32c5SRichard HendersonORR_rrri .... 000 1100 . .... .... ..... .. 0 .... @s_rrr_shi 7525ae32c5SRichard HendersonMOV_rxri .... 000 1101 . 0000 .... ..... .. 0 .... @s_rxr_shi 7625ae32c5SRichard HendersonBIC_rrri .... 000 1110 . .... .... ..... .. 0 .... @s_rrr_shi 7725ae32c5SRichard HendersonMVN_rxri .... 000 1111 . 0000 .... ..... .. 0 .... @s_rxr_shi 785be2c123SRichard Henderson 798f445127SRichard Henderson%imm16 16:4 0:12 808f445127SRichard Henderson@mov16 ---- .... .... .... rd:4 ............ &ri imm=%imm16 818f445127SRichard Henderson 828f445127SRichard HendersonMOVW .... 0011 0000 .... .... ............ @mov16 838f445127SRichard HendersonMOVT .... 0011 0100 .... .... ............ @mov16 848f445127SRichard Henderson 855be2c123SRichard Henderson# Data-processing (register-shifted register) 865be2c123SRichard Henderson 875be2c123SRichard Henderson@s_rrr_shr ---- ... .... s:1 rn:4 rd:4 rs:4 . shty:2 . rm:4 \ 885be2c123SRichard Henderson &s_rrr_shr 895be2c123SRichard Henderson@s_rxr_shr ---- ... .... s:1 .... rd:4 rs:4 . shty:2 . rm:4 \ 905be2c123SRichard Henderson &s_rrr_shr rn=0 915be2c123SRichard Henderson@S_xrr_shr ---- ... .... . rn:4 .... rs:4 . shty:2 . rm:4 \ 925be2c123SRichard Henderson &s_rrr_shr rd=0 s=1 935be2c123SRichard Henderson 945be2c123SRichard HendersonAND_rrrr .... 000 0000 . .... .... .... 0 .. 1 .... @s_rrr_shr 955be2c123SRichard HendersonEOR_rrrr .... 000 0001 . .... .... .... 0 .. 1 .... @s_rrr_shr 965be2c123SRichard HendersonSUB_rrrr .... 000 0010 . .... .... .... 0 .. 1 .... @s_rrr_shr 975be2c123SRichard HendersonRSB_rrrr .... 000 0011 . .... .... .... 0 .. 1 .... @s_rrr_shr 985be2c123SRichard HendersonADD_rrrr .... 000 0100 . .... .... .... 0 .. 1 .... @s_rrr_shr 995be2c123SRichard HendersonADC_rrrr .... 000 0101 . .... .... .... 0 .. 1 .... @s_rrr_shr 1005be2c123SRichard HendersonSBC_rrrr .... 000 0110 . .... .... .... 0 .. 1 .... @s_rrr_shr 1015be2c123SRichard HendersonRSC_rrrr .... 000 0111 . .... .... .... 0 .. 1 .... @s_rrr_shr 1025be2c123SRichard HendersonTST_xrrr .... 000 1000 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1035be2c123SRichard HendersonTEQ_xrrr .... 000 1001 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1045be2c123SRichard HendersonCMP_xrrr .... 000 1010 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1055be2c123SRichard HendersonCMN_xrrr .... 000 1011 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1065be2c123SRichard HendersonORR_rrrr .... 000 1100 . .... .... .... 0 .. 1 .... @s_rrr_shr 1075be2c123SRichard HendersonMOV_rxrr .... 000 1101 . 0000 .... .... 0 .. 1 .... @s_rxr_shr 1085be2c123SRichard HendersonBIC_rrrr .... 000 1110 . .... .... .... 0 .. 1 .... @s_rrr_shr 1095be2c123SRichard HendersonMVN_rxrr .... 000 1111 . 0000 .... .... 0 .. 1 .... @s_rxr_shr 110581c6ebdSRichard Henderson 111581c6ebdSRichard Henderson# Data-processing (immediate) 112581c6ebdSRichard Henderson 113581c6ebdSRichard Henderson%a32extrot 8:4 !function=times_2 114581c6ebdSRichard Henderson 115581c6ebdSRichard Henderson@s_rri_rot ---- ... .... s:1 rn:4 rd:4 .... imm:8 \ 116581c6ebdSRichard Henderson &s_rri_rot rot=%a32extrot 117581c6ebdSRichard Henderson@s_rxi_rot ---- ... .... s:1 .... rd:4 .... imm:8 \ 118581c6ebdSRichard Henderson &s_rri_rot rot=%a32extrot rn=0 119581c6ebdSRichard Henderson@S_xri_rot ---- ... .... . rn:4 .... .... imm:8 \ 120581c6ebdSRichard Henderson &s_rri_rot rot=%a32extrot rd=0 s=1 121581c6ebdSRichard Henderson 122581c6ebdSRichard HendersonAND_rri .... 001 0000 . .... .... ............ @s_rri_rot 123581c6ebdSRichard HendersonEOR_rri .... 001 0001 . .... .... ............ @s_rri_rot 124581c6ebdSRichard HendersonSUB_rri .... 001 0010 . .... .... ............ @s_rri_rot 125581c6ebdSRichard HendersonRSB_rri .... 001 0011 . .... .... ............ @s_rri_rot 126581c6ebdSRichard HendersonADD_rri .... 001 0100 . .... .... ............ @s_rri_rot 127581c6ebdSRichard HendersonADC_rri .... 001 0101 . .... .... ............ @s_rri_rot 128581c6ebdSRichard HendersonSBC_rri .... 001 0110 . .... .... ............ @s_rri_rot 129581c6ebdSRichard HendersonRSC_rri .... 001 0111 . .... .... ............ @s_rri_rot 130581c6ebdSRichard HendersonTST_xri .... 001 1000 1 .... 0000 ............ @S_xri_rot 131581c6ebdSRichard HendersonTEQ_xri .... 001 1001 1 .... 0000 ............ @S_xri_rot 132581c6ebdSRichard HendersonCMP_xri .... 001 1010 1 .... 0000 ............ @S_xri_rot 133581c6ebdSRichard HendersonCMN_xri .... 001 1011 1 .... 0000 ............ @S_xri_rot 134581c6ebdSRichard HendersonORR_rri .... 001 1100 . .... .... ............ @s_rri_rot 135581c6ebdSRichard HendersonMOV_rxi .... 001 1101 . 0000 .... ............ @s_rxi_rot 136581c6ebdSRichard HendersonBIC_rri .... 001 1110 . .... .... ............ @s_rri_rot 137581c6ebdSRichard HendersonMVN_rxi .... 001 1111 . 0000 .... ............ @s_rxi_rot 138bd92fe35SRichard Henderson 139bd92fe35SRichard Henderson# Multiply and multiply accumulate 140bd92fe35SRichard Henderson 141bd92fe35SRichard Henderson@s_rdamn ---- .... ... s:1 rd:4 ra:4 rm:4 .... rn:4 &s_rrrr 142bd92fe35SRichard Henderson@s_rd0mn ---- .... ... s:1 rd:4 .... rm:4 .... rn:4 &s_rrrr ra=0 143bd92fe35SRichard Henderson@rdamn ---- .... ... . rd:4 ra:4 rm:4 .... rn:4 &rrrr 14426c6923dSRichard Henderson@rd0mn ---- .... ... . rd:4 .... rm:4 .... rn:4 &rrrr ra=0 145bd92fe35SRichard Henderson 146bd92fe35SRichard HendersonMUL .... 0000 000 . .... 0000 .... 1001 .... @s_rd0mn 147bd92fe35SRichard HendersonMLA .... 0000 001 . .... .... .... 1001 .... @s_rdamn 148bd92fe35SRichard HendersonUMAAL .... 0000 010 0 .... .... .... 1001 .... @rdamn 149bd92fe35SRichard HendersonMLS .... 0000 011 0 .... .... .... 1001 .... @rdamn 150bd92fe35SRichard HendersonUMULL .... 0000 100 . .... .... .... 1001 .... @s_rdamn 151bd92fe35SRichard HendersonUMLAL .... 0000 101 . .... .... .... 1001 .... @s_rdamn 152bd92fe35SRichard HendersonSMULL .... 0000 110 . .... .... .... 1001 .... @s_rdamn 153bd92fe35SRichard HendersonSMLAL .... 0000 111 . .... .... .... 1001 .... @s_rdamn 1546d0730a8SRichard Henderson 1556d0730a8SRichard Henderson# Saturating addition and subtraction 1566d0730a8SRichard Henderson 1576d0730a8SRichard Henderson@rndm ---- .... .... rn:4 rd:4 .... .... rm:4 &rrr 1586d0730a8SRichard Henderson 1596d0730a8SRichard HendersonQADD .... 0001 0000 .... .... 0000 0101 .... @rndm 1606d0730a8SRichard HendersonQSUB .... 0001 0010 .... .... 0000 0101 .... @rndm 1616d0730a8SRichard HendersonQDADD .... 0001 0100 .... .... 0000 0101 .... @rndm 1626d0730a8SRichard HendersonQDSUB .... 0001 0110 .... .... 0000 0101 .... @rndm 16326c6923dSRichard Henderson 16426c6923dSRichard Henderson# Halfword multiply and multiply accumulate 16526c6923dSRichard Henderson 16626c6923dSRichard HendersonSMLABB .... 0001 0000 .... .... .... 1000 .... @rdamn 16726c6923dSRichard HendersonSMLABT .... 0001 0000 .... .... .... 1100 .... @rdamn 16826c6923dSRichard HendersonSMLATB .... 0001 0000 .... .... .... 1010 .... @rdamn 16926c6923dSRichard HendersonSMLATT .... 0001 0000 .... .... .... 1110 .... @rdamn 17026c6923dSRichard HendersonSMLAWB .... 0001 0010 .... .... .... 1000 .... @rdamn 17126c6923dSRichard HendersonSMULWB .... 0001 0010 .... 0000 .... 1010 .... @rd0mn 17226c6923dSRichard HendersonSMLAWT .... 0001 0010 .... .... .... 1100 .... @rdamn 17326c6923dSRichard HendersonSMULWT .... 0001 0010 .... 0000 .... 1110 .... @rd0mn 17426c6923dSRichard HendersonSMLALBB .... 0001 0100 .... .... .... 1000 .... @rdamn 17526c6923dSRichard HendersonSMLALBT .... 0001 0100 .... .... .... 1100 .... @rdamn 17626c6923dSRichard HendersonSMLALTB .... 0001 0100 .... .... .... 1010 .... @rdamn 17726c6923dSRichard HendersonSMLALTT .... 0001 0100 .... .... .... 1110 .... @rdamn 17826c6923dSRichard HendersonSMULBB .... 0001 0110 .... 0000 .... 1000 .... @rd0mn 17926c6923dSRichard HendersonSMULBT .... 0001 0110 .... 0000 .... 1100 .... @rd0mn 18026c6923dSRichard HendersonSMULTB .... 0001 0110 .... 0000 .... 1010 .... @rd0mn 18126c6923dSRichard HendersonSMULTT .... 0001 0110 .... 0000 .... 1110 .... @rd0mn 18263130596SRichard Henderson 18363130596SRichard Henderson# MSR (immediate) and hints 18463130596SRichard Henderson 18563130596SRichard Henderson&msr_i r mask rot imm 18663130596SRichard Henderson@msr_i ---- .... .... mask:4 .... rot:4 imm:8 &msr_i 18763130596SRichard Henderson 18863130596SRichard Henderson{ 18963130596SRichard Henderson { 190*13954587SRichard Henderson [ 19163130596SRichard Henderson YIELD ---- 0011 0010 0000 1111 ---- 0000 0001 19263130596SRichard Henderson WFE ---- 0011 0010 0000 1111 ---- 0000 0010 19363130596SRichard Henderson WFI ---- 0011 0010 0000 1111 ---- 0000 0011 19463130596SRichard Henderson 19563130596SRichard Henderson # TODO: Implement SEV, SEVL; may help SMP performance. 19663130596SRichard Henderson # SEV ---- 0011 0010 0000 1111 ---- 0000 0100 19763130596SRichard Henderson # SEVL ---- 0011 0010 0000 1111 ---- 0000 0101 19863130596SRichard Henderson 199*13954587SRichard Henderson ESB ---- 0011 0010 0000 1111 ---- 0001 0000 200*13954587SRichard Henderson ] 201*13954587SRichard Henderson 20263130596SRichard Henderson # The canonical nop ends in 00000000, but the whole of the 20363130596SRichard Henderson # rest of the space executes as nop if otherwise unsupported. 20463130596SRichard Henderson NOP ---- 0011 0010 0000 1111 ---- ---- ---- 20563130596SRichard Henderson } 20663130596SRichard Henderson # Note mask = 0 is covered by NOP 20763130596SRichard Henderson MSR_imm .... 0011 0010 .... 1111 .... .... .... @msr_i r=0 20863130596SRichard Henderson} 20963130596SRichard HendersonMSR_imm .... 0011 0110 .... 1111 .... .... .... @msr_i r=1 210d0b26644SRichard Henderson 2116c35d53fSRichard Henderson# Cyclic Redundancy Check 2126c35d53fSRichard Henderson 2136c35d53fSRichard HendersonCRC32B .... 0001 0000 .... .... 0000 0100 .... @rndm 2146c35d53fSRichard HendersonCRC32H .... 0001 0010 .... .... 0000 0100 .... @rndm 2156c35d53fSRichard HendersonCRC32W .... 0001 0100 .... .... 0000 0100 .... @rndm 2166c35d53fSRichard HendersonCRC32CB .... 0001 0000 .... .... 0010 0100 .... @rndm 2176c35d53fSRichard HendersonCRC32CH .... 0001 0010 .... .... 0010 0100 .... @rndm 2186c35d53fSRichard HendersonCRC32CW .... 0001 0100 .... .... 0010 0100 .... @rndm 2196c35d53fSRichard Henderson 220d0b26644SRichard Henderson# Miscellaneous instructions 221d0b26644SRichard Henderson 222d0b26644SRichard Henderson%sysm 8:1 16:4 2232cde9ea5SRichard Henderson%imm16_8_0 8:12 0:4 224d0b26644SRichard Henderson 2254ed95abdSRichard Henderson@rm ---- .... .... .... .... .... .... rm:4 &r 2264c97f5b2SRichard Henderson@rdm ---- .... .... .... rd:4 .... .... rm:4 &rr 2272cde9ea5SRichard Henderson@i16 ---- .... .... .... .... .... .... .... &i imm=%imm16_8_0 2284ed95abdSRichard Henderson 229d0b26644SRichard HendersonMRS_bank ---- 0001 0 r:1 00 .... rd:4 001. 0000 0000 &mrs_bank %sysm 230d0b26644SRichard HendersonMSR_bank ---- 0001 0 r:1 10 .... 1111 001. 0000 rn:4 &msr_bank %sysm 231d0b26644SRichard Henderson 232d0b26644SRichard HendersonMRS_reg ---- 0001 0 r:1 00 1111 rd:4 0000 0000 0000 &mrs_reg 233d0b26644SRichard HendersonMSR_reg ---- 0001 0 r:1 10 mask:4 1111 0000 0000 rn:4 &msr_reg 2344ed95abdSRichard Henderson 2354ed95abdSRichard HendersonBX .... 0001 0010 1111 1111 1111 0001 .... @rm 2364ed95abdSRichard HendersonBXJ .... 0001 0010 1111 1111 1111 0010 .... @rm 2374ed95abdSRichard HendersonBLX_r .... 0001 0010 1111 1111 1111 0011 .... @rm 2384c97f5b2SRichard Henderson 2394c97f5b2SRichard HendersonCLZ .... 0001 0110 1111 .... 1111 0001 .... @rdm 240ef11bc3cSRichard Henderson 241ef11bc3cSRichard HendersonERET ---- 0001 0110 0000 0000 0000 0110 1110 2422cde9ea5SRichard Henderson 2432cde9ea5SRichard HendersonHLT .... 0001 0000 .... .... .... 0111 .... @i16 2442cde9ea5SRichard HendersonBKPT .... 0001 0010 .... .... .... 0111 .... @i16 2452cde9ea5SRichard HendersonHVC .... 0001 0100 .... .... .... 0111 .... @i16 2462cde9ea5SRichard HendersonSMC ---- 0001 0110 0000 0000 0000 0111 imm:4 &i 2475e291fe1SRichard Henderson 2485e291fe1SRichard Henderson# Load/Store Dual, Half, Signed Byte (register) 2495e291fe1SRichard Henderson 2505e291fe1SRichard Henderson@ldst_rr_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 .... .... rm:4 \ 2515e291fe1SRichard Henderson &ldst_rr p=1 shimm=0 shtype=0 2525e291fe1SRichard Henderson@ldst_rr_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 .... .... rm:4 \ 2535e291fe1SRichard Henderson &ldst_rr p=0 w=0 shimm=0 shtype=0 2545e291fe1SRichard Henderson 2555e291fe1SRichard HendersonSTRH_rr .... 000. .0.0 .... .... 0000 1011 .... @ldst_rr_pw0 2565e291fe1SRichard HendersonSTRH_rr .... 000. .0.0 .... .... 0000 1011 .... @ldst_rr_p1w 2575e291fe1SRichard Henderson 2585e291fe1SRichard HendersonLDRD_rr .... 000. .0.0 .... .... 0000 1101 .... @ldst_rr_pw0 2595e291fe1SRichard HendersonLDRD_rr .... 000. .0.0 .... .... 0000 1101 .... @ldst_rr_p1w 2605e291fe1SRichard Henderson 2615e291fe1SRichard HendersonSTRD_rr .... 000. .0.0 .... .... 0000 1111 .... @ldst_rr_pw0 2625e291fe1SRichard HendersonSTRD_rr .... 000. .0.0 .... .... 0000 1111 .... @ldst_rr_p1w 2635e291fe1SRichard Henderson 2645e291fe1SRichard HendersonLDRH_rr .... 000. .0.1 .... .... 0000 1011 .... @ldst_rr_pw0 2655e291fe1SRichard HendersonLDRH_rr .... 000. .0.1 .... .... 0000 1011 .... @ldst_rr_p1w 2665e291fe1SRichard Henderson 2675e291fe1SRichard HendersonLDRSB_rr .... 000. .0.1 .... .... 0000 1101 .... @ldst_rr_pw0 2685e291fe1SRichard HendersonLDRSB_rr .... 000. .0.1 .... .... 0000 1101 .... @ldst_rr_p1w 2695e291fe1SRichard Henderson 2705e291fe1SRichard HendersonLDRSH_rr .... 000. .0.1 .... .... 0000 1111 .... @ldst_rr_pw0 2715e291fe1SRichard HendersonLDRSH_rr .... 000. .0.1 .... .... 0000 1111 .... @ldst_rr_p1w 2725e291fe1SRichard Henderson 2735e291fe1SRichard Henderson# Note the unpriv load/stores use the previously invalid P=0, W=1 encoding, 2745e291fe1SRichard Henderson# and act as normal post-indexed (P=0, W=0). 2755e291fe1SRichard Henderson@ldst_rr_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 .... .... rm:4 \ 2765e291fe1SRichard Henderson &ldst_rr p=0 w=0 shimm=0 shtype=0 2775e291fe1SRichard Henderson 2785e291fe1SRichard HendersonSTRHT_rr .... 000. .0.0 .... .... 0000 1011 .... @ldst_rr_p0w1 2795e291fe1SRichard HendersonLDRHT_rr .... 000. .0.1 .... .... 0000 1011 .... @ldst_rr_p0w1 2805e291fe1SRichard HendersonLDRSBT_rr .... 000. .0.1 .... .... 0000 1101 .... @ldst_rr_p0w1 2815e291fe1SRichard HendersonLDRSHT_rr .... 000. .0.1 .... .... 0000 1111 .... @ldst_rr_p0w1 2825e291fe1SRichard Henderson 2835e291fe1SRichard Henderson# Load/Store word and unsigned byte (register) 2845e291fe1SRichard Henderson 2855e291fe1SRichard Henderson@ldst_rs_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 shimm:5 shtype:2 . rm:4 \ 2865e291fe1SRichard Henderson &ldst_rr p=1 2875e291fe1SRichard Henderson@ldst_rs_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 shimm:5 shtype:2 . rm:4 \ 2885e291fe1SRichard Henderson &ldst_rr p=0 w=0 2895e291fe1SRichard Henderson 2905e291fe1SRichard HendersonSTR_rr .... 011. .0.0 .... .... .... ...0 .... @ldst_rs_pw0 2915e291fe1SRichard HendersonSTR_rr .... 011. .0.0 .... .... .... ...0 .... @ldst_rs_p1w 2925e291fe1SRichard HendersonSTRB_rr .... 011. .1.0 .... .... .... ...0 .... @ldst_rs_pw0 2935e291fe1SRichard HendersonSTRB_rr .... 011. .1.0 .... .... .... ...0 .... @ldst_rs_p1w 2945e291fe1SRichard Henderson 2955e291fe1SRichard HendersonLDR_rr .... 011. .0.1 .... .... .... ...0 .... @ldst_rs_pw0 2965e291fe1SRichard HendersonLDR_rr .... 011. .0.1 .... .... .... ...0 .... @ldst_rs_p1w 2975e291fe1SRichard HendersonLDRB_rr .... 011. .1.1 .... .... .... ...0 .... @ldst_rs_pw0 2985e291fe1SRichard HendersonLDRB_rr .... 011. .1.1 .... .... .... ...0 .... @ldst_rs_p1w 2995e291fe1SRichard Henderson 3005e291fe1SRichard Henderson@ldst_rs_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 shimm:5 shtype:2 . rm:4 \ 3015e291fe1SRichard Henderson &ldst_rr p=0 w=0 3025e291fe1SRichard Henderson 3035e291fe1SRichard HendersonSTRT_rr .... 011. .0.0 .... .... .... ...0 .... @ldst_rs_p0w1 3045e291fe1SRichard HendersonSTRBT_rr .... 011. .1.0 .... .... .... ...0 .... @ldst_rs_p0w1 3055e291fe1SRichard HendersonLDRT_rr .... 011. .0.1 .... .... .... ...0 .... @ldst_rs_p0w1 3065e291fe1SRichard HendersonLDRBT_rr .... 011. .1.1 .... .... .... ...0 .... @ldst_rs_p0w1 3075e291fe1SRichard Henderson 3085e291fe1SRichard Henderson# Load/Store Dual, Half, Signed Byte (immediate) 3095e291fe1SRichard Henderson 3105e291fe1SRichard Henderson%imm8s_8_0 8:4 0:4 3115e291fe1SRichard Henderson@ldst_ri8_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 .... .... .... \ 3125e291fe1SRichard Henderson &ldst_ri imm=%imm8s_8_0 p=1 3135e291fe1SRichard Henderson@ldst_ri8_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 .... .... .... \ 3145e291fe1SRichard Henderson &ldst_ri imm=%imm8s_8_0 p=0 w=0 3155e291fe1SRichard Henderson 3165e291fe1SRichard HendersonSTRH_ri .... 000. .1.0 .... .... .... 1011 .... @ldst_ri8_pw0 3175e291fe1SRichard HendersonSTRH_ri .... 000. .1.0 .... .... .... 1011 .... @ldst_ri8_p1w 3185e291fe1SRichard Henderson 3195e291fe1SRichard HendersonLDRD_ri_a32 .... 000. .1.0 .... .... .... 1101 .... @ldst_ri8_pw0 3205e291fe1SRichard HendersonLDRD_ri_a32 .... 000. .1.0 .... .... .... 1101 .... @ldst_ri8_p1w 3215e291fe1SRichard Henderson 3225e291fe1SRichard HendersonSTRD_ri_a32 .... 000. .1.0 .... .... .... 1111 .... @ldst_ri8_pw0 3235e291fe1SRichard HendersonSTRD_ri_a32 .... 000. .1.0 .... .... .... 1111 .... @ldst_ri8_p1w 3245e291fe1SRichard Henderson 3255e291fe1SRichard HendersonLDRH_ri .... 000. .1.1 .... .... .... 1011 .... @ldst_ri8_pw0 3265e291fe1SRichard HendersonLDRH_ri .... 000. .1.1 .... .... .... 1011 .... @ldst_ri8_p1w 3275e291fe1SRichard Henderson 3285e291fe1SRichard HendersonLDRSB_ri .... 000. .1.1 .... .... .... 1101 .... @ldst_ri8_pw0 3295e291fe1SRichard HendersonLDRSB_ri .... 000. .1.1 .... .... .... 1101 .... @ldst_ri8_p1w 3305e291fe1SRichard Henderson 3315e291fe1SRichard HendersonLDRSH_ri .... 000. .1.1 .... .... .... 1111 .... @ldst_ri8_pw0 3325e291fe1SRichard HendersonLDRSH_ri .... 000. .1.1 .... .... .... 1111 .... @ldst_ri8_p1w 3335e291fe1SRichard Henderson 3345e291fe1SRichard Henderson# Note the unpriv load/stores use the previously invalid P=0, W=1 encoding, 3355e291fe1SRichard Henderson# and act as normal post-indexed (P=0, W=0). 3365e291fe1SRichard Henderson@ldst_ri8_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 .... .... .... \ 3375e291fe1SRichard Henderson &ldst_ri imm=%imm8s_8_0 p=0 w=0 3385e291fe1SRichard Henderson 3395e291fe1SRichard HendersonSTRHT_ri .... 000. .1.0 .... .... .... 1011 .... @ldst_ri8_p0w1 3405e291fe1SRichard HendersonLDRHT_ri .... 000. .1.1 .... .... .... 1011 .... @ldst_ri8_p0w1 3415e291fe1SRichard HendersonLDRSBT_ri .... 000. .1.1 .... .... .... 1101 .... @ldst_ri8_p0w1 3425e291fe1SRichard HendersonLDRSHT_ri .... 000. .1.1 .... .... .... 1111 .... @ldst_ri8_p0w1 3435e291fe1SRichard Henderson 3445e291fe1SRichard Henderson# Load/Store word and unsigned byte (immediate) 3455e291fe1SRichard Henderson 3465e291fe1SRichard Henderson@ldst_ri12_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 imm:12 &ldst_ri p=1 3475e291fe1SRichard Henderson@ldst_ri12_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 imm:12 &ldst_ri p=0 w=0 3485e291fe1SRichard Henderson 3495e291fe1SRichard HendersonSTR_ri .... 010. .0.0 .... .... ............ @ldst_ri12_p1w 3505e291fe1SRichard HendersonSTR_ri .... 010. .0.0 .... .... ............ @ldst_ri12_pw0 3515e291fe1SRichard HendersonSTRB_ri .... 010. .1.0 .... .... ............ @ldst_ri12_p1w 3525e291fe1SRichard HendersonSTRB_ri .... 010. .1.0 .... .... ............ @ldst_ri12_pw0 3535e291fe1SRichard Henderson 3545e291fe1SRichard HendersonLDR_ri .... 010. .0.1 .... .... ............ @ldst_ri12_p1w 3555e291fe1SRichard HendersonLDR_ri .... 010. .0.1 .... .... ............ @ldst_ri12_pw0 3565e291fe1SRichard HendersonLDRB_ri .... 010. .1.1 .... .... ............ @ldst_ri12_p1w 3575e291fe1SRichard HendersonLDRB_ri .... 010. .1.1 .... .... ............ @ldst_ri12_pw0 3585e291fe1SRichard Henderson 3595e291fe1SRichard Henderson@ldst_ri12_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 imm:12 &ldst_ri p=0 w=0 3605e291fe1SRichard Henderson 3615e291fe1SRichard HendersonSTRT_ri .... 010. .0.0 .... .... ............ @ldst_ri12_p0w1 3625e291fe1SRichard HendersonSTRBT_ri .... 010. .1.0 .... .... ............ @ldst_ri12_p0w1 3635e291fe1SRichard HendersonLDRT_ri .... 010. .0.1 .... .... ............ @ldst_ri12_p0w1 3645e291fe1SRichard HendersonLDRBT_ri .... 010. .1.1 .... .... ............ @ldst_ri12_p0w1 3651efdd407SRichard Henderson 3661efdd407SRichard Henderson# Synchronization primitives 3671efdd407SRichard Henderson 3681efdd407SRichard Henderson@swp ---- .... .... rn:4 rt:4 .... .... rt2:4 3691efdd407SRichard Henderson 3701efdd407SRichard HendersonSWP .... 0001 0000 .... .... 0000 1001 .... @swp 3711efdd407SRichard HendersonSWPB .... 0001 0100 .... .... 0000 1001 .... @swp 3721efdd407SRichard Henderson 3731efdd407SRichard Henderson# Load/Store Exclusive and Load-Acquire/Store-Release 3741efdd407SRichard Henderson# 3751efdd407SRichard Henderson# Note rt2 for STREXD/LDREXD is set by the helper after checking rt is even. 3761efdd407SRichard Henderson 3771efdd407SRichard Henderson@strex ---- .... .... rn:4 rd:4 .... .... rt:4 \ 3781efdd407SRichard Henderson &strex imm=0 rt2=15 3791efdd407SRichard Henderson@ldrex ---- .... .... rn:4 rt:4 .... .... .... \ 3801efdd407SRichard Henderson &ldrex imm=0 rt2=15 3811efdd407SRichard Henderson@stl ---- .... .... rn:4 .... .... .... rt:4 \ 3821efdd407SRichard Henderson &ldrex imm=0 rt2=15 3831efdd407SRichard Henderson 3841efdd407SRichard HendersonSTREX .... 0001 1000 .... .... 1111 1001 .... @strex 3851efdd407SRichard HendersonSTREXD_a32 .... 0001 1010 .... .... 1111 1001 .... @strex 3861efdd407SRichard HendersonSTREXB .... 0001 1100 .... .... 1111 1001 .... @strex 3871efdd407SRichard HendersonSTREXH .... 0001 1110 .... .... 1111 1001 .... @strex 3881efdd407SRichard Henderson 3891efdd407SRichard HendersonSTLEX .... 0001 1000 .... .... 1110 1001 .... @strex 3901efdd407SRichard HendersonSTLEXD_a32 .... 0001 1010 .... .... 1110 1001 .... @strex 3911efdd407SRichard HendersonSTLEXB .... 0001 1100 .... .... 1110 1001 .... @strex 3921efdd407SRichard HendersonSTLEXH .... 0001 1110 .... .... 1110 1001 .... @strex 3931efdd407SRichard Henderson 3941efdd407SRichard HendersonSTL .... 0001 1000 .... 1111 1100 1001 .... @stl 3951efdd407SRichard HendersonSTLB .... 0001 1100 .... 1111 1100 1001 .... @stl 3961efdd407SRichard HendersonSTLH .... 0001 1110 .... 1111 1100 1001 .... @stl 3971efdd407SRichard Henderson 3981efdd407SRichard HendersonLDREX .... 0001 1001 .... .... 1111 1001 1111 @ldrex 3991efdd407SRichard HendersonLDREXD_a32 .... 0001 1011 .... .... 1111 1001 1111 @ldrex 4001efdd407SRichard HendersonLDREXB .... 0001 1101 .... .... 1111 1001 1111 @ldrex 4011efdd407SRichard HendersonLDREXH .... 0001 1111 .... .... 1111 1001 1111 @ldrex 4021efdd407SRichard Henderson 4031efdd407SRichard HendersonLDAEX .... 0001 1001 .... .... 1110 1001 1111 @ldrex 4041efdd407SRichard HendersonLDAEXD_a32 .... 0001 1011 .... .... 1110 1001 1111 @ldrex 4051efdd407SRichard HendersonLDAEXB .... 0001 1101 .... .... 1110 1001 1111 @ldrex 4061efdd407SRichard HendersonLDAEXH .... 0001 1111 .... .... 1110 1001 1111 @ldrex 4071efdd407SRichard Henderson 4081efdd407SRichard HendersonLDA .... 0001 1001 .... .... 1100 1001 1111 @ldrex 4091efdd407SRichard HendersonLDAB .... 0001 1101 .... .... 1100 1001 1111 @ldrex 4101efdd407SRichard HendersonLDAH .... 0001 1111 .... .... 1100 1001 1111 @ldrex 41186d21e4bSRichard Henderson 41286d21e4bSRichard Henderson# Media instructions 41386d21e4bSRichard Henderson 41486d21e4bSRichard Henderson# usad8 is usada8 w/ ra=15 41586d21e4bSRichard HendersonUSADA8 ---- 0111 1000 rd:4 ra:4 rm:4 0001 rn:4 41686d21e4bSRichard Henderson 41786d21e4bSRichard Henderson# ubfx and sbfx 41886d21e4bSRichard Henderson@bfx ---- .... ... widthm1:5 rd:4 lsb:5 ... rn:4 &bfx 41986d21e4bSRichard Henderson 42086d21e4bSRichard HendersonSBFX .... 0111 101 ..... .... ..... 101 .... @bfx 42186d21e4bSRichard HendersonUBFX .... 0111 111 ..... .... ..... 101 .... @bfx 42286d21e4bSRichard Henderson 42386d21e4bSRichard Henderson# bfc is bfi w/ rn=15 42486d21e4bSRichard HendersonBFCI ---- 0111 110 msb:5 rd:4 lsb:5 001 rn:4 &bfi 42586d21e4bSRichard Henderson 42686d21e4bSRichard Henderson# While we could get UDEF by not including this, add the pattern for 42786d21e4bSRichard Henderson# documentation and to conflict with any other typos in this file. 42886d21e4bSRichard HendersonUDF 1110 0111 1111 ---- ---- ---- 1111 ---- 429adf1a566SRichard Henderson 430adf1a566SRichard Henderson# Parallel addition and subtraction 431adf1a566SRichard Henderson 432adf1a566SRichard HendersonSADD16 .... 0110 0001 .... .... 1111 0001 .... @rndm 433adf1a566SRichard HendersonSASX .... 0110 0001 .... .... 1111 0011 .... @rndm 434adf1a566SRichard HendersonSSAX .... 0110 0001 .... .... 1111 0101 .... @rndm 435adf1a566SRichard HendersonSSUB16 .... 0110 0001 .... .... 1111 0111 .... @rndm 436adf1a566SRichard HendersonSADD8 .... 0110 0001 .... .... 1111 1001 .... @rndm 437adf1a566SRichard HendersonSSUB8 .... 0110 0001 .... .... 1111 1111 .... @rndm 438adf1a566SRichard Henderson 439adf1a566SRichard HendersonQADD16 .... 0110 0010 .... .... 1111 0001 .... @rndm 440adf1a566SRichard HendersonQASX .... 0110 0010 .... .... 1111 0011 .... @rndm 441adf1a566SRichard HendersonQSAX .... 0110 0010 .... .... 1111 0101 .... @rndm 442adf1a566SRichard HendersonQSUB16 .... 0110 0010 .... .... 1111 0111 .... @rndm 443adf1a566SRichard HendersonQADD8 .... 0110 0010 .... .... 1111 1001 .... @rndm 444adf1a566SRichard HendersonQSUB8 .... 0110 0010 .... .... 1111 1111 .... @rndm 445adf1a566SRichard Henderson 446adf1a566SRichard HendersonSHADD16 .... 0110 0011 .... .... 1111 0001 .... @rndm 447adf1a566SRichard HendersonSHASX .... 0110 0011 .... .... 1111 0011 .... @rndm 448adf1a566SRichard HendersonSHSAX .... 0110 0011 .... .... 1111 0101 .... @rndm 449adf1a566SRichard HendersonSHSUB16 .... 0110 0011 .... .... 1111 0111 .... @rndm 450adf1a566SRichard HendersonSHADD8 .... 0110 0011 .... .... 1111 1001 .... @rndm 451adf1a566SRichard HendersonSHSUB8 .... 0110 0011 .... .... 1111 1111 .... @rndm 452adf1a566SRichard Henderson 453adf1a566SRichard HendersonUADD16 .... 0110 0101 .... .... 1111 0001 .... @rndm 454adf1a566SRichard HendersonUASX .... 0110 0101 .... .... 1111 0011 .... @rndm 455adf1a566SRichard HendersonUSAX .... 0110 0101 .... .... 1111 0101 .... @rndm 456adf1a566SRichard HendersonUSUB16 .... 0110 0101 .... .... 1111 0111 .... @rndm 457adf1a566SRichard HendersonUADD8 .... 0110 0101 .... .... 1111 1001 .... @rndm 458adf1a566SRichard HendersonUSUB8 .... 0110 0101 .... .... 1111 1111 .... @rndm 459adf1a566SRichard Henderson 460adf1a566SRichard HendersonUQADD16 .... 0110 0110 .... .... 1111 0001 .... @rndm 461adf1a566SRichard HendersonUQASX .... 0110 0110 .... .... 1111 0011 .... @rndm 462adf1a566SRichard HendersonUQSAX .... 0110 0110 .... .... 1111 0101 .... @rndm 463adf1a566SRichard HendersonUQSUB16 .... 0110 0110 .... .... 1111 0111 .... @rndm 464adf1a566SRichard HendersonUQADD8 .... 0110 0110 .... .... 1111 1001 .... @rndm 465adf1a566SRichard HendersonUQSUB8 .... 0110 0110 .... .... 1111 1111 .... @rndm 466adf1a566SRichard Henderson 467adf1a566SRichard HendersonUHADD16 .... 0110 0111 .... .... 1111 0001 .... @rndm 468adf1a566SRichard HendersonUHASX .... 0110 0111 .... .... 1111 0011 .... @rndm 469adf1a566SRichard HendersonUHSAX .... 0110 0111 .... .... 1111 0101 .... @rndm 470adf1a566SRichard HendersonUHSUB16 .... 0110 0111 .... .... 1111 0111 .... @rndm 471adf1a566SRichard HendersonUHADD8 .... 0110 0111 .... .... 1111 1001 .... @rndm 472adf1a566SRichard HendersonUHSUB8 .... 0110 0111 .... .... 1111 1111 .... @rndm 47346497f6aSRichard Henderson 47446497f6aSRichard Henderson# Packing, unpacking, saturation, and reversal 47546497f6aSRichard Henderson 47646497f6aSRichard HendersonPKH ---- 0110 1000 rn:4 rd:4 imm:5 tb:1 01 rm:4 &pkh 47746497f6aSRichard Henderson 47846497f6aSRichard Henderson@sat ---- .... ... satimm:5 rd:4 imm:5 sh:1 .. rn:4 &sat 47946497f6aSRichard Henderson@sat16 ---- .... .... satimm:4 rd:4 .... .... rn:4 \ 48046497f6aSRichard Henderson &sat imm=0 sh=0 48146497f6aSRichard Henderson 48246497f6aSRichard HendersonSSAT .... 0110 101. .... .... .... ..01 .... @sat 48346497f6aSRichard HendersonUSAT .... 0110 111. .... .... .... ..01 .... @sat 48446497f6aSRichard Henderson 48546497f6aSRichard HendersonSSAT16 .... 0110 1010 .... .... 1111 0011 .... @sat16 48646497f6aSRichard HendersonUSAT16 .... 0110 1110 .... .... 1111 0011 .... @sat16 48746497f6aSRichard Henderson 48846497f6aSRichard Henderson@rrr_rot ---- .... .... rn:4 rd:4 rot:2 ...... rm:4 &rrr_rot 48946497f6aSRichard Henderson 49046497f6aSRichard HendersonSXTAB16 .... 0110 1000 .... .... ..00 0111 .... @rrr_rot 49146497f6aSRichard HendersonSXTAB .... 0110 1010 .... .... ..00 0111 .... @rrr_rot 49246497f6aSRichard HendersonSXTAH .... 0110 1011 .... .... ..00 0111 .... @rrr_rot 49346497f6aSRichard HendersonUXTAB16 .... 0110 1100 .... .... ..00 0111 .... @rrr_rot 49446497f6aSRichard HendersonUXTAB .... 0110 1110 .... .... ..00 0111 .... @rrr_rot 49546497f6aSRichard HendersonUXTAH .... 0110 1111 .... .... ..00 0111 .... @rrr_rot 49646497f6aSRichard Henderson 49746497f6aSRichard HendersonSEL .... 0110 1000 .... .... 1111 1011 .... @rndm 49846497f6aSRichard HendersonREV .... 0110 1011 1111 .... 1111 0011 .... @rdm 49946497f6aSRichard HendersonREV16 .... 0110 1011 1111 .... 1111 1011 .... @rdm 50046497f6aSRichard HendersonREVSH .... 0110 1111 1111 .... 1111 1011 .... @rdm 50146497f6aSRichard HendersonRBIT .... 0110 1111 1111 .... 1111 0011 .... @rdm 5022c7c4e09SRichard Henderson 5032c7c4e09SRichard Henderson# Signed multiply, signed and unsigned divide 5042c7c4e09SRichard Henderson 5052c7c4e09SRichard Henderson@rdmn ---- .... .... rd:4 .... rm:4 .... rn:4 &rrr 5062c7c4e09SRichard Henderson 5072c7c4e09SRichard HendersonSMLAD .... 0111 0000 .... .... .... 0001 .... @rdamn 5082c7c4e09SRichard HendersonSMLADX .... 0111 0000 .... .... .... 0011 .... @rdamn 5092c7c4e09SRichard HendersonSMLSD .... 0111 0000 .... .... .... 0101 .... @rdamn 5102c7c4e09SRichard HendersonSMLSDX .... 0111 0000 .... .... .... 0111 .... @rdamn 5112c7c4e09SRichard Henderson 5122c7c4e09SRichard HendersonSDIV .... 0111 0001 .... 1111 .... 0001 .... @rdmn 5132c7c4e09SRichard HendersonUDIV .... 0111 0011 .... 1111 .... 0001 .... @rdmn 5142c7c4e09SRichard Henderson 5152c7c4e09SRichard HendersonSMLALD .... 0111 0100 .... .... .... 0001 .... @rdamn 5162c7c4e09SRichard HendersonSMLALDX .... 0111 0100 .... .... .... 0011 .... @rdamn 5172c7c4e09SRichard HendersonSMLSLD .... 0111 0100 .... .... .... 0101 .... @rdamn 5182c7c4e09SRichard HendersonSMLSLDX .... 0111 0100 .... .... .... 0111 .... @rdamn 5192c7c4e09SRichard Henderson 5202c7c4e09SRichard HendersonSMMLA .... 0111 0101 .... .... .... 0001 .... @rdamn 5212c7c4e09SRichard HendersonSMMLAR .... 0111 0101 .... .... .... 0011 .... @rdamn 5222c7c4e09SRichard HendersonSMMLS .... 0111 0101 .... .... .... 1101 .... @rdamn 5232c7c4e09SRichard HendersonSMMLSR .... 0111 0101 .... .... .... 1111 .... @rdamn 524c5c426d4SRichard Henderson 525c5c426d4SRichard Henderson# Block data transfer 526c5c426d4SRichard Henderson 527c5c426d4SRichard HendersonSTM ---- 100 b:1 i:1 u:1 w:1 0 rn:4 list:16 &ldst_block 528c5c426d4SRichard HendersonLDM_a32 ---- 100 b:1 i:1 u:1 w:1 1 rn:4 list:16 &ldst_block 529360144f3SRichard Henderson 530360144f3SRichard Henderson# Branch, branch with link 531360144f3SRichard Henderson 532360144f3SRichard Henderson%imm26 0:s24 !function=times_4 533360144f3SRichard Henderson@branch ---- .... ........................ &i imm=%imm26 534360144f3SRichard Henderson 535360144f3SRichard HendersonB .... 1010 ........................ @branch 536360144f3SRichard HendersonBL .... 1011 ........................ @branch 537542f5188SRichard Henderson 538cd8be50eSPeter Maydell# Coprocessor instructions 539cd8be50eSPeter Maydell 540cd8be50eSPeter Maydell# We decode MCR, MCR, MRRC and MCRR only, because for QEMU the 541cd8be50eSPeter Maydell# other coprocessor instructions always UNDEF. 542cd8be50eSPeter Maydell# The trans_ functions for these will ignore cp values 8..13 for v7 or 543cd8be50eSPeter Maydell# earlier, and 0..13 for v8 and later, because those areas of the 544cd8be50eSPeter Maydell# encoding space may be used for other things, such as VFP or Neon. 545cd8be50eSPeter Maydell 546cd8be50eSPeter Maydell@mcr ---- .... opc1:3 . crn:4 rt:4 cp:4 opc2:3 . crm:4 &mcr 547cd8be50eSPeter Maydell@mcrr ---- .... .... rt2:4 rt:4 cp:4 opc1:4 crm:4 &mcrr 548cd8be50eSPeter Maydell 549cd8be50eSPeter MaydellMCRR .... 1100 0100 .... .... .... .... .... @mcrr 550cd8be50eSPeter MaydellMRRC .... 1100 0101 .... .... .... .... .... @mcrr 551cd8be50eSPeter Maydell 552cd8be50eSPeter MaydellMCR .... 1110 ... 0 .... .... .... ... 1 .... @mcr 553cd8be50eSPeter MaydellMRC .... 1110 ... 1 .... .... .... ... 1 .... @mcr 554cd8be50eSPeter Maydell 555542f5188SRichard Henderson# Supervisor call 556542f5188SRichard Henderson 557542f5188SRichard HendersonSVC ---- 1111 imm:24 &i 558