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 851409b9eSRichard Henderson# version 2 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 5025ae32c5SRichard Henderson 5125ae32c5SRichard Henderson# Data-processing (register) 5225ae32c5SRichard Henderson 5325ae32c5SRichard Henderson@s_rrr_shi ---- ... .... s:1 rn:4 rd:4 shim:5 shty:2 . rm:4 \ 5425ae32c5SRichard Henderson &s_rrr_shi 5525ae32c5SRichard Henderson@s_rxr_shi ---- ... .... s:1 .... rd:4 shim:5 shty:2 . rm:4 \ 5625ae32c5SRichard Henderson &s_rrr_shi rn=0 5725ae32c5SRichard Henderson@S_xrr_shi ---- ... .... . rn:4 .... shim:5 shty:2 . rm:4 \ 5825ae32c5SRichard Henderson &s_rrr_shi s=1 rd=0 5925ae32c5SRichard Henderson 6025ae32c5SRichard HendersonAND_rrri .... 000 0000 . .... .... ..... .. 0 .... @s_rrr_shi 6125ae32c5SRichard HendersonEOR_rrri .... 000 0001 . .... .... ..... .. 0 .... @s_rrr_shi 6225ae32c5SRichard HendersonSUB_rrri .... 000 0010 . .... .... ..... .. 0 .... @s_rrr_shi 6325ae32c5SRichard HendersonRSB_rrri .... 000 0011 . .... .... ..... .. 0 .... @s_rrr_shi 6425ae32c5SRichard HendersonADD_rrri .... 000 0100 . .... .... ..... .. 0 .... @s_rrr_shi 6525ae32c5SRichard HendersonADC_rrri .... 000 0101 . .... .... ..... .. 0 .... @s_rrr_shi 6625ae32c5SRichard HendersonSBC_rrri .... 000 0110 . .... .... ..... .. 0 .... @s_rrr_shi 6725ae32c5SRichard HendersonRSC_rrri .... 000 0111 . .... .... ..... .. 0 .... @s_rrr_shi 6825ae32c5SRichard HendersonTST_xrri .... 000 1000 1 .... 0000 ..... .. 0 .... @S_xrr_shi 6925ae32c5SRichard HendersonTEQ_xrri .... 000 1001 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7025ae32c5SRichard HendersonCMP_xrri .... 000 1010 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7125ae32c5SRichard HendersonCMN_xrri .... 000 1011 1 .... 0000 ..... .. 0 .... @S_xrr_shi 7225ae32c5SRichard HendersonORR_rrri .... 000 1100 . .... .... ..... .. 0 .... @s_rrr_shi 7325ae32c5SRichard HendersonMOV_rxri .... 000 1101 . 0000 .... ..... .. 0 .... @s_rxr_shi 7425ae32c5SRichard HendersonBIC_rrri .... 000 1110 . .... .... ..... .. 0 .... @s_rrr_shi 7525ae32c5SRichard HendersonMVN_rxri .... 000 1111 . 0000 .... ..... .. 0 .... @s_rxr_shi 765be2c123SRichard Henderson 778f445127SRichard Henderson%imm16 16:4 0:12 788f445127SRichard Henderson@mov16 ---- .... .... .... rd:4 ............ &ri imm=%imm16 798f445127SRichard Henderson 808f445127SRichard HendersonMOVW .... 0011 0000 .... .... ............ @mov16 818f445127SRichard HendersonMOVT .... 0011 0100 .... .... ............ @mov16 828f445127SRichard Henderson 835be2c123SRichard Henderson# Data-processing (register-shifted register) 845be2c123SRichard Henderson 855be2c123SRichard Henderson@s_rrr_shr ---- ... .... s:1 rn:4 rd:4 rs:4 . shty:2 . rm:4 \ 865be2c123SRichard Henderson &s_rrr_shr 875be2c123SRichard Henderson@s_rxr_shr ---- ... .... s:1 .... rd:4 rs:4 . shty:2 . rm:4 \ 885be2c123SRichard Henderson &s_rrr_shr rn=0 895be2c123SRichard Henderson@S_xrr_shr ---- ... .... . rn:4 .... rs:4 . shty:2 . rm:4 \ 905be2c123SRichard Henderson &s_rrr_shr rd=0 s=1 915be2c123SRichard Henderson 925be2c123SRichard HendersonAND_rrrr .... 000 0000 . .... .... .... 0 .. 1 .... @s_rrr_shr 935be2c123SRichard HendersonEOR_rrrr .... 000 0001 . .... .... .... 0 .. 1 .... @s_rrr_shr 945be2c123SRichard HendersonSUB_rrrr .... 000 0010 . .... .... .... 0 .. 1 .... @s_rrr_shr 955be2c123SRichard HendersonRSB_rrrr .... 000 0011 . .... .... .... 0 .. 1 .... @s_rrr_shr 965be2c123SRichard HendersonADD_rrrr .... 000 0100 . .... .... .... 0 .. 1 .... @s_rrr_shr 975be2c123SRichard HendersonADC_rrrr .... 000 0101 . .... .... .... 0 .. 1 .... @s_rrr_shr 985be2c123SRichard HendersonSBC_rrrr .... 000 0110 . .... .... .... 0 .. 1 .... @s_rrr_shr 995be2c123SRichard HendersonRSC_rrrr .... 000 0111 . .... .... .... 0 .. 1 .... @s_rrr_shr 1005be2c123SRichard HendersonTST_xrrr .... 000 1000 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1015be2c123SRichard HendersonTEQ_xrrr .... 000 1001 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1025be2c123SRichard HendersonCMP_xrrr .... 000 1010 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1035be2c123SRichard HendersonCMN_xrrr .... 000 1011 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr 1045be2c123SRichard HendersonORR_rrrr .... 000 1100 . .... .... .... 0 .. 1 .... @s_rrr_shr 1055be2c123SRichard HendersonMOV_rxrr .... 000 1101 . 0000 .... .... 0 .. 1 .... @s_rxr_shr 1065be2c123SRichard HendersonBIC_rrrr .... 000 1110 . .... .... .... 0 .. 1 .... @s_rrr_shr 1075be2c123SRichard HendersonMVN_rxrr .... 000 1111 . 0000 .... .... 0 .. 1 .... @s_rxr_shr 108581c6ebdSRichard Henderson 109581c6ebdSRichard Henderson# Data-processing (immediate) 110581c6ebdSRichard Henderson 111581c6ebdSRichard Henderson%a32extrot 8:4 !function=times_2 112581c6ebdSRichard Henderson 113581c6ebdSRichard Henderson@s_rri_rot ---- ... .... s:1 rn:4 rd:4 .... imm:8 \ 114581c6ebdSRichard Henderson &s_rri_rot rot=%a32extrot 115581c6ebdSRichard Henderson@s_rxi_rot ---- ... .... s:1 .... rd:4 .... imm:8 \ 116581c6ebdSRichard Henderson &s_rri_rot rot=%a32extrot rn=0 117581c6ebdSRichard Henderson@S_xri_rot ---- ... .... . rn:4 .... .... imm:8 \ 118581c6ebdSRichard Henderson &s_rri_rot rot=%a32extrot rd=0 s=1 119581c6ebdSRichard Henderson 120581c6ebdSRichard HendersonAND_rri .... 001 0000 . .... .... ............ @s_rri_rot 121581c6ebdSRichard HendersonEOR_rri .... 001 0001 . .... .... ............ @s_rri_rot 122581c6ebdSRichard HendersonSUB_rri .... 001 0010 . .... .... ............ @s_rri_rot 123581c6ebdSRichard HendersonRSB_rri .... 001 0011 . .... .... ............ @s_rri_rot 124581c6ebdSRichard HendersonADD_rri .... 001 0100 . .... .... ............ @s_rri_rot 125581c6ebdSRichard HendersonADC_rri .... 001 0101 . .... .... ............ @s_rri_rot 126581c6ebdSRichard HendersonSBC_rri .... 001 0110 . .... .... ............ @s_rri_rot 127581c6ebdSRichard HendersonRSC_rri .... 001 0111 . .... .... ............ @s_rri_rot 128581c6ebdSRichard HendersonTST_xri .... 001 1000 1 .... 0000 ............ @S_xri_rot 129581c6ebdSRichard HendersonTEQ_xri .... 001 1001 1 .... 0000 ............ @S_xri_rot 130581c6ebdSRichard HendersonCMP_xri .... 001 1010 1 .... 0000 ............ @S_xri_rot 131581c6ebdSRichard HendersonCMN_xri .... 001 1011 1 .... 0000 ............ @S_xri_rot 132581c6ebdSRichard HendersonORR_rri .... 001 1100 . .... .... ............ @s_rri_rot 133581c6ebdSRichard HendersonMOV_rxi .... 001 1101 . 0000 .... ............ @s_rxi_rot 134581c6ebdSRichard HendersonBIC_rri .... 001 1110 . .... .... ............ @s_rri_rot 135581c6ebdSRichard HendersonMVN_rxi .... 001 1111 . 0000 .... ............ @s_rxi_rot 136bd92fe35SRichard Henderson 137bd92fe35SRichard Henderson# Multiply and multiply accumulate 138bd92fe35SRichard Henderson 139bd92fe35SRichard Henderson@s_rdamn ---- .... ... s:1 rd:4 ra:4 rm:4 .... rn:4 &s_rrrr 140bd92fe35SRichard Henderson@s_rd0mn ---- .... ... s:1 rd:4 .... rm:4 .... rn:4 &s_rrrr ra=0 141bd92fe35SRichard Henderson@rdamn ---- .... ... . rd:4 ra:4 rm:4 .... rn:4 &rrrr 14226c6923dSRichard Henderson@rd0mn ---- .... ... . rd:4 .... rm:4 .... rn:4 &rrrr ra=0 143bd92fe35SRichard Henderson 144bd92fe35SRichard HendersonMUL .... 0000 000 . .... 0000 .... 1001 .... @s_rd0mn 145bd92fe35SRichard HendersonMLA .... 0000 001 . .... .... .... 1001 .... @s_rdamn 146bd92fe35SRichard HendersonUMAAL .... 0000 010 0 .... .... .... 1001 .... @rdamn 147bd92fe35SRichard HendersonMLS .... 0000 011 0 .... .... .... 1001 .... @rdamn 148bd92fe35SRichard HendersonUMULL .... 0000 100 . .... .... .... 1001 .... @s_rdamn 149bd92fe35SRichard HendersonUMLAL .... 0000 101 . .... .... .... 1001 .... @s_rdamn 150bd92fe35SRichard HendersonSMULL .... 0000 110 . .... .... .... 1001 .... @s_rdamn 151bd92fe35SRichard HendersonSMLAL .... 0000 111 . .... .... .... 1001 .... @s_rdamn 1526d0730a8SRichard Henderson 1536d0730a8SRichard Henderson# Saturating addition and subtraction 1546d0730a8SRichard Henderson 1556d0730a8SRichard Henderson@rndm ---- .... .... rn:4 rd:4 .... .... rm:4 &rrr 1566d0730a8SRichard Henderson 1576d0730a8SRichard HendersonQADD .... 0001 0000 .... .... 0000 0101 .... @rndm 1586d0730a8SRichard HendersonQSUB .... 0001 0010 .... .... 0000 0101 .... @rndm 1596d0730a8SRichard HendersonQDADD .... 0001 0100 .... .... 0000 0101 .... @rndm 1606d0730a8SRichard HendersonQDSUB .... 0001 0110 .... .... 0000 0101 .... @rndm 16126c6923dSRichard Henderson 16226c6923dSRichard Henderson# Halfword multiply and multiply accumulate 16326c6923dSRichard Henderson 16426c6923dSRichard HendersonSMLABB .... 0001 0000 .... .... .... 1000 .... @rdamn 16526c6923dSRichard HendersonSMLABT .... 0001 0000 .... .... .... 1100 .... @rdamn 16626c6923dSRichard HendersonSMLATB .... 0001 0000 .... .... .... 1010 .... @rdamn 16726c6923dSRichard HendersonSMLATT .... 0001 0000 .... .... .... 1110 .... @rdamn 16826c6923dSRichard HendersonSMLAWB .... 0001 0010 .... .... .... 1000 .... @rdamn 16926c6923dSRichard HendersonSMULWB .... 0001 0010 .... 0000 .... 1010 .... @rd0mn 17026c6923dSRichard HendersonSMLAWT .... 0001 0010 .... .... .... 1100 .... @rdamn 17126c6923dSRichard HendersonSMULWT .... 0001 0010 .... 0000 .... 1110 .... @rd0mn 17226c6923dSRichard HendersonSMLALBB .... 0001 0100 .... .... .... 1000 .... @rdamn 17326c6923dSRichard HendersonSMLALBT .... 0001 0100 .... .... .... 1100 .... @rdamn 17426c6923dSRichard HendersonSMLALTB .... 0001 0100 .... .... .... 1010 .... @rdamn 17526c6923dSRichard HendersonSMLALTT .... 0001 0100 .... .... .... 1110 .... @rdamn 17626c6923dSRichard HendersonSMULBB .... 0001 0110 .... 0000 .... 1000 .... @rd0mn 17726c6923dSRichard HendersonSMULBT .... 0001 0110 .... 0000 .... 1100 .... @rd0mn 17826c6923dSRichard HendersonSMULTB .... 0001 0110 .... 0000 .... 1010 .... @rd0mn 17926c6923dSRichard HendersonSMULTT .... 0001 0110 .... 0000 .... 1110 .... @rd0mn 18063130596SRichard Henderson 18163130596SRichard Henderson# MSR (immediate) and hints 18263130596SRichard Henderson 18363130596SRichard Henderson&msr_i r mask rot imm 18463130596SRichard Henderson@msr_i ---- .... .... mask:4 .... rot:4 imm:8 &msr_i 18563130596SRichard Henderson 18663130596SRichard Henderson{ 18763130596SRichard Henderson { 18863130596SRichard Henderson YIELD ---- 0011 0010 0000 1111 ---- 0000 0001 18963130596SRichard Henderson WFE ---- 0011 0010 0000 1111 ---- 0000 0010 19063130596SRichard Henderson WFI ---- 0011 0010 0000 1111 ---- 0000 0011 19163130596SRichard Henderson 19263130596SRichard Henderson # TODO: Implement SEV, SEVL; may help SMP performance. 19363130596SRichard Henderson # SEV ---- 0011 0010 0000 1111 ---- 0000 0100 19463130596SRichard Henderson # SEVL ---- 0011 0010 0000 1111 ---- 0000 0101 19563130596SRichard Henderson 19663130596SRichard Henderson # The canonical nop ends in 00000000, but the whole of the 19763130596SRichard Henderson # rest of the space executes as nop if otherwise unsupported. 19863130596SRichard Henderson NOP ---- 0011 0010 0000 1111 ---- ---- ---- 19963130596SRichard Henderson } 20063130596SRichard Henderson # Note mask = 0 is covered by NOP 20163130596SRichard Henderson MSR_imm .... 0011 0010 .... 1111 .... .... .... @msr_i r=0 20263130596SRichard Henderson} 20363130596SRichard HendersonMSR_imm .... 0011 0110 .... 1111 .... .... .... @msr_i r=1 204d0b26644SRichard Henderson 2056c35d53fSRichard Henderson# Cyclic Redundancy Check 2066c35d53fSRichard Henderson 2076c35d53fSRichard HendersonCRC32B .... 0001 0000 .... .... 0000 0100 .... @rndm 2086c35d53fSRichard HendersonCRC32H .... 0001 0010 .... .... 0000 0100 .... @rndm 2096c35d53fSRichard HendersonCRC32W .... 0001 0100 .... .... 0000 0100 .... @rndm 2106c35d53fSRichard HendersonCRC32CB .... 0001 0000 .... .... 0010 0100 .... @rndm 2116c35d53fSRichard HendersonCRC32CH .... 0001 0010 .... .... 0010 0100 .... @rndm 2126c35d53fSRichard HendersonCRC32CW .... 0001 0100 .... .... 0010 0100 .... @rndm 2136c35d53fSRichard Henderson 214d0b26644SRichard Henderson# Miscellaneous instructions 215d0b26644SRichard Henderson 216d0b26644SRichard Henderson%sysm 8:1 16:4 2172cde9ea5SRichard Henderson%imm16_8_0 8:12 0:4 218d0b26644SRichard Henderson 2194ed95abdSRichard Henderson@rm ---- .... .... .... .... .... .... rm:4 &r 2204c97f5b2SRichard Henderson@rdm ---- .... .... .... rd:4 .... .... rm:4 &rr 2212cde9ea5SRichard Henderson@i16 ---- .... .... .... .... .... .... .... &i imm=%imm16_8_0 2224ed95abdSRichard Henderson 223d0b26644SRichard HendersonMRS_bank ---- 0001 0 r:1 00 .... rd:4 001. 0000 0000 &mrs_bank %sysm 224d0b26644SRichard HendersonMSR_bank ---- 0001 0 r:1 10 .... 1111 001. 0000 rn:4 &msr_bank %sysm 225d0b26644SRichard Henderson 226d0b26644SRichard HendersonMRS_reg ---- 0001 0 r:1 00 1111 rd:4 0000 0000 0000 &mrs_reg 227d0b26644SRichard HendersonMSR_reg ---- 0001 0 r:1 10 mask:4 1111 0000 0000 rn:4 &msr_reg 2284ed95abdSRichard Henderson 2294ed95abdSRichard HendersonBX .... 0001 0010 1111 1111 1111 0001 .... @rm 2304ed95abdSRichard HendersonBXJ .... 0001 0010 1111 1111 1111 0010 .... @rm 2314ed95abdSRichard HendersonBLX_r .... 0001 0010 1111 1111 1111 0011 .... @rm 2324c97f5b2SRichard Henderson 2334c97f5b2SRichard HendersonCLZ .... 0001 0110 1111 .... 1111 0001 .... @rdm 234ef11bc3cSRichard Henderson 235ef11bc3cSRichard HendersonERET ---- 0001 0110 0000 0000 0000 0110 1110 2362cde9ea5SRichard Henderson 2372cde9ea5SRichard HendersonHLT .... 0001 0000 .... .... .... 0111 .... @i16 2382cde9ea5SRichard HendersonBKPT .... 0001 0010 .... .... .... 0111 .... @i16 2392cde9ea5SRichard HendersonHVC .... 0001 0100 .... .... .... 0111 .... @i16 2402cde9ea5SRichard HendersonSMC ---- 0001 0110 0000 0000 0000 0111 imm:4 &i 2415e291fe1SRichard Henderson 2425e291fe1SRichard Henderson# Load/Store Dual, Half, Signed Byte (register) 2435e291fe1SRichard Henderson 2445e291fe1SRichard Henderson@ldst_rr_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 .... .... rm:4 \ 2455e291fe1SRichard Henderson &ldst_rr p=1 shimm=0 shtype=0 2465e291fe1SRichard Henderson@ldst_rr_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 .... .... rm:4 \ 2475e291fe1SRichard Henderson &ldst_rr p=0 w=0 shimm=0 shtype=0 2485e291fe1SRichard Henderson 2495e291fe1SRichard HendersonSTRH_rr .... 000. .0.0 .... .... 0000 1011 .... @ldst_rr_pw0 2505e291fe1SRichard HendersonSTRH_rr .... 000. .0.0 .... .... 0000 1011 .... @ldst_rr_p1w 2515e291fe1SRichard Henderson 2525e291fe1SRichard HendersonLDRD_rr .... 000. .0.0 .... .... 0000 1101 .... @ldst_rr_pw0 2535e291fe1SRichard HendersonLDRD_rr .... 000. .0.0 .... .... 0000 1101 .... @ldst_rr_p1w 2545e291fe1SRichard Henderson 2555e291fe1SRichard HendersonSTRD_rr .... 000. .0.0 .... .... 0000 1111 .... @ldst_rr_pw0 2565e291fe1SRichard HendersonSTRD_rr .... 000. .0.0 .... .... 0000 1111 .... @ldst_rr_p1w 2575e291fe1SRichard Henderson 2585e291fe1SRichard HendersonLDRH_rr .... 000. .0.1 .... .... 0000 1011 .... @ldst_rr_pw0 2595e291fe1SRichard HendersonLDRH_rr .... 000. .0.1 .... .... 0000 1011 .... @ldst_rr_p1w 2605e291fe1SRichard Henderson 2615e291fe1SRichard HendersonLDRSB_rr .... 000. .0.1 .... .... 0000 1101 .... @ldst_rr_pw0 2625e291fe1SRichard HendersonLDRSB_rr .... 000. .0.1 .... .... 0000 1101 .... @ldst_rr_p1w 2635e291fe1SRichard Henderson 2645e291fe1SRichard HendersonLDRSH_rr .... 000. .0.1 .... .... 0000 1111 .... @ldst_rr_pw0 2655e291fe1SRichard HendersonLDRSH_rr .... 000. .0.1 .... .... 0000 1111 .... @ldst_rr_p1w 2665e291fe1SRichard Henderson 2675e291fe1SRichard Henderson# Note the unpriv load/stores use the previously invalid P=0, W=1 encoding, 2685e291fe1SRichard Henderson# and act as normal post-indexed (P=0, W=0). 2695e291fe1SRichard Henderson@ldst_rr_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 .... .... rm:4 \ 2705e291fe1SRichard Henderson &ldst_rr p=0 w=0 shimm=0 shtype=0 2715e291fe1SRichard Henderson 2725e291fe1SRichard HendersonSTRHT_rr .... 000. .0.0 .... .... 0000 1011 .... @ldst_rr_p0w1 2735e291fe1SRichard HendersonLDRHT_rr .... 000. .0.1 .... .... 0000 1011 .... @ldst_rr_p0w1 2745e291fe1SRichard HendersonLDRSBT_rr .... 000. .0.1 .... .... 0000 1101 .... @ldst_rr_p0w1 2755e291fe1SRichard HendersonLDRSHT_rr .... 000. .0.1 .... .... 0000 1111 .... @ldst_rr_p0w1 2765e291fe1SRichard Henderson 2775e291fe1SRichard Henderson# Load/Store word and unsigned byte (register) 2785e291fe1SRichard Henderson 2795e291fe1SRichard Henderson@ldst_rs_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 shimm:5 shtype:2 . rm:4 \ 2805e291fe1SRichard Henderson &ldst_rr p=1 2815e291fe1SRichard Henderson@ldst_rs_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 shimm:5 shtype:2 . rm:4 \ 2825e291fe1SRichard Henderson &ldst_rr p=0 w=0 2835e291fe1SRichard Henderson 2845e291fe1SRichard HendersonSTR_rr .... 011. .0.0 .... .... .... ...0 .... @ldst_rs_pw0 2855e291fe1SRichard HendersonSTR_rr .... 011. .0.0 .... .... .... ...0 .... @ldst_rs_p1w 2865e291fe1SRichard HendersonSTRB_rr .... 011. .1.0 .... .... .... ...0 .... @ldst_rs_pw0 2875e291fe1SRichard HendersonSTRB_rr .... 011. .1.0 .... .... .... ...0 .... @ldst_rs_p1w 2885e291fe1SRichard Henderson 2895e291fe1SRichard HendersonLDR_rr .... 011. .0.1 .... .... .... ...0 .... @ldst_rs_pw0 2905e291fe1SRichard HendersonLDR_rr .... 011. .0.1 .... .... .... ...0 .... @ldst_rs_p1w 2915e291fe1SRichard HendersonLDRB_rr .... 011. .1.1 .... .... .... ...0 .... @ldst_rs_pw0 2925e291fe1SRichard HendersonLDRB_rr .... 011. .1.1 .... .... .... ...0 .... @ldst_rs_p1w 2935e291fe1SRichard Henderson 2945e291fe1SRichard Henderson@ldst_rs_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 shimm:5 shtype:2 . rm:4 \ 2955e291fe1SRichard Henderson &ldst_rr p=0 w=0 2965e291fe1SRichard Henderson 2975e291fe1SRichard HendersonSTRT_rr .... 011. .0.0 .... .... .... ...0 .... @ldst_rs_p0w1 2985e291fe1SRichard HendersonSTRBT_rr .... 011. .1.0 .... .... .... ...0 .... @ldst_rs_p0w1 2995e291fe1SRichard HendersonLDRT_rr .... 011. .0.1 .... .... .... ...0 .... @ldst_rs_p0w1 3005e291fe1SRichard HendersonLDRBT_rr .... 011. .1.1 .... .... .... ...0 .... @ldst_rs_p0w1 3015e291fe1SRichard Henderson 3025e291fe1SRichard Henderson# Load/Store Dual, Half, Signed Byte (immediate) 3035e291fe1SRichard Henderson 3045e291fe1SRichard Henderson%imm8s_8_0 8:4 0:4 3055e291fe1SRichard Henderson@ldst_ri8_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 .... .... .... \ 3065e291fe1SRichard Henderson &ldst_ri imm=%imm8s_8_0 p=1 3075e291fe1SRichard Henderson@ldst_ri8_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 .... .... .... \ 3085e291fe1SRichard Henderson &ldst_ri imm=%imm8s_8_0 p=0 w=0 3095e291fe1SRichard Henderson 3105e291fe1SRichard HendersonSTRH_ri .... 000. .1.0 .... .... .... 1011 .... @ldst_ri8_pw0 3115e291fe1SRichard HendersonSTRH_ri .... 000. .1.0 .... .... .... 1011 .... @ldst_ri8_p1w 3125e291fe1SRichard Henderson 3135e291fe1SRichard HendersonLDRD_ri_a32 .... 000. .1.0 .... .... .... 1101 .... @ldst_ri8_pw0 3145e291fe1SRichard HendersonLDRD_ri_a32 .... 000. .1.0 .... .... .... 1101 .... @ldst_ri8_p1w 3155e291fe1SRichard Henderson 3165e291fe1SRichard HendersonSTRD_ri_a32 .... 000. .1.0 .... .... .... 1111 .... @ldst_ri8_pw0 3175e291fe1SRichard HendersonSTRD_ri_a32 .... 000. .1.0 .... .... .... 1111 .... @ldst_ri8_p1w 3185e291fe1SRichard Henderson 3195e291fe1SRichard HendersonLDRH_ri .... 000. .1.1 .... .... .... 1011 .... @ldst_ri8_pw0 3205e291fe1SRichard HendersonLDRH_ri .... 000. .1.1 .... .... .... 1011 .... @ldst_ri8_p1w 3215e291fe1SRichard Henderson 3225e291fe1SRichard HendersonLDRSB_ri .... 000. .1.1 .... .... .... 1101 .... @ldst_ri8_pw0 3235e291fe1SRichard HendersonLDRSB_ri .... 000. .1.1 .... .... .... 1101 .... @ldst_ri8_p1w 3245e291fe1SRichard Henderson 3255e291fe1SRichard HendersonLDRSH_ri .... 000. .1.1 .... .... .... 1111 .... @ldst_ri8_pw0 3265e291fe1SRichard HendersonLDRSH_ri .... 000. .1.1 .... .... .... 1111 .... @ldst_ri8_p1w 3275e291fe1SRichard Henderson 3285e291fe1SRichard Henderson# Note the unpriv load/stores use the previously invalid P=0, W=1 encoding, 3295e291fe1SRichard Henderson# and act as normal post-indexed (P=0, W=0). 3305e291fe1SRichard Henderson@ldst_ri8_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 .... .... .... \ 3315e291fe1SRichard Henderson &ldst_ri imm=%imm8s_8_0 p=0 w=0 3325e291fe1SRichard Henderson 3335e291fe1SRichard HendersonSTRHT_ri .... 000. .1.0 .... .... .... 1011 .... @ldst_ri8_p0w1 3345e291fe1SRichard HendersonLDRHT_ri .... 000. .1.1 .... .... .... 1011 .... @ldst_ri8_p0w1 3355e291fe1SRichard HendersonLDRSBT_ri .... 000. .1.1 .... .... .... 1101 .... @ldst_ri8_p0w1 3365e291fe1SRichard HendersonLDRSHT_ri .... 000. .1.1 .... .... .... 1111 .... @ldst_ri8_p0w1 3375e291fe1SRichard Henderson 3385e291fe1SRichard Henderson# Load/Store word and unsigned byte (immediate) 3395e291fe1SRichard Henderson 3405e291fe1SRichard Henderson@ldst_ri12_p1w ---- ...1 u:1 . w:1 . rn:4 rt:4 imm:12 &ldst_ri p=1 3415e291fe1SRichard Henderson@ldst_ri12_pw0 ---- ...0 u:1 . 0 . rn:4 rt:4 imm:12 &ldst_ri p=0 w=0 3425e291fe1SRichard Henderson 3435e291fe1SRichard HendersonSTR_ri .... 010. .0.0 .... .... ............ @ldst_ri12_p1w 3445e291fe1SRichard HendersonSTR_ri .... 010. .0.0 .... .... ............ @ldst_ri12_pw0 3455e291fe1SRichard HendersonSTRB_ri .... 010. .1.0 .... .... ............ @ldst_ri12_p1w 3465e291fe1SRichard HendersonSTRB_ri .... 010. .1.0 .... .... ............ @ldst_ri12_pw0 3475e291fe1SRichard Henderson 3485e291fe1SRichard HendersonLDR_ri .... 010. .0.1 .... .... ............ @ldst_ri12_p1w 3495e291fe1SRichard HendersonLDR_ri .... 010. .0.1 .... .... ............ @ldst_ri12_pw0 3505e291fe1SRichard HendersonLDRB_ri .... 010. .1.1 .... .... ............ @ldst_ri12_p1w 3515e291fe1SRichard HendersonLDRB_ri .... 010. .1.1 .... .... ............ @ldst_ri12_pw0 3525e291fe1SRichard Henderson 3535e291fe1SRichard Henderson@ldst_ri12_p0w1 ---- ...0 u:1 . 1 . rn:4 rt:4 imm:12 &ldst_ri p=0 w=0 3545e291fe1SRichard Henderson 3555e291fe1SRichard HendersonSTRT_ri .... 010. .0.0 .... .... ............ @ldst_ri12_p0w1 3565e291fe1SRichard HendersonSTRBT_ri .... 010. .1.0 .... .... ............ @ldst_ri12_p0w1 3575e291fe1SRichard HendersonLDRT_ri .... 010. .0.1 .... .... ............ @ldst_ri12_p0w1 3585e291fe1SRichard HendersonLDRBT_ri .... 010. .1.1 .... .... ............ @ldst_ri12_p0w1 3591efdd407SRichard Henderson 3601efdd407SRichard Henderson# Synchronization primitives 3611efdd407SRichard Henderson 3621efdd407SRichard Henderson@swp ---- .... .... rn:4 rt:4 .... .... rt2:4 3631efdd407SRichard Henderson 3641efdd407SRichard HendersonSWP .... 0001 0000 .... .... 0000 1001 .... @swp 3651efdd407SRichard HendersonSWPB .... 0001 0100 .... .... 0000 1001 .... @swp 3661efdd407SRichard Henderson 3671efdd407SRichard Henderson# Load/Store Exclusive and Load-Acquire/Store-Release 3681efdd407SRichard Henderson# 3691efdd407SRichard Henderson# Note rt2 for STREXD/LDREXD is set by the helper after checking rt is even. 3701efdd407SRichard Henderson 3711efdd407SRichard Henderson@strex ---- .... .... rn:4 rd:4 .... .... rt:4 \ 3721efdd407SRichard Henderson &strex imm=0 rt2=15 3731efdd407SRichard Henderson@ldrex ---- .... .... rn:4 rt:4 .... .... .... \ 3741efdd407SRichard Henderson &ldrex imm=0 rt2=15 3751efdd407SRichard Henderson@stl ---- .... .... rn:4 .... .... .... rt:4 \ 3761efdd407SRichard Henderson &ldrex imm=0 rt2=15 3771efdd407SRichard Henderson 3781efdd407SRichard HendersonSTREX .... 0001 1000 .... .... 1111 1001 .... @strex 3791efdd407SRichard HendersonSTREXD_a32 .... 0001 1010 .... .... 1111 1001 .... @strex 3801efdd407SRichard HendersonSTREXB .... 0001 1100 .... .... 1111 1001 .... @strex 3811efdd407SRichard HendersonSTREXH .... 0001 1110 .... .... 1111 1001 .... @strex 3821efdd407SRichard Henderson 3831efdd407SRichard HendersonSTLEX .... 0001 1000 .... .... 1110 1001 .... @strex 3841efdd407SRichard HendersonSTLEXD_a32 .... 0001 1010 .... .... 1110 1001 .... @strex 3851efdd407SRichard HendersonSTLEXB .... 0001 1100 .... .... 1110 1001 .... @strex 3861efdd407SRichard HendersonSTLEXH .... 0001 1110 .... .... 1110 1001 .... @strex 3871efdd407SRichard Henderson 3881efdd407SRichard HendersonSTL .... 0001 1000 .... 1111 1100 1001 .... @stl 3891efdd407SRichard HendersonSTLB .... 0001 1100 .... 1111 1100 1001 .... @stl 3901efdd407SRichard HendersonSTLH .... 0001 1110 .... 1111 1100 1001 .... @stl 3911efdd407SRichard Henderson 3921efdd407SRichard HendersonLDREX .... 0001 1001 .... .... 1111 1001 1111 @ldrex 3931efdd407SRichard HendersonLDREXD_a32 .... 0001 1011 .... .... 1111 1001 1111 @ldrex 3941efdd407SRichard HendersonLDREXB .... 0001 1101 .... .... 1111 1001 1111 @ldrex 3951efdd407SRichard HendersonLDREXH .... 0001 1111 .... .... 1111 1001 1111 @ldrex 3961efdd407SRichard Henderson 3971efdd407SRichard HendersonLDAEX .... 0001 1001 .... .... 1110 1001 1111 @ldrex 3981efdd407SRichard HendersonLDAEXD_a32 .... 0001 1011 .... .... 1110 1001 1111 @ldrex 3991efdd407SRichard HendersonLDAEXB .... 0001 1101 .... .... 1110 1001 1111 @ldrex 4001efdd407SRichard HendersonLDAEXH .... 0001 1111 .... .... 1110 1001 1111 @ldrex 4011efdd407SRichard Henderson 4021efdd407SRichard HendersonLDA .... 0001 1001 .... .... 1100 1001 1111 @ldrex 4031efdd407SRichard HendersonLDAB .... 0001 1101 .... .... 1100 1001 1111 @ldrex 4041efdd407SRichard HendersonLDAH .... 0001 1111 .... .... 1100 1001 1111 @ldrex 40586d21e4bSRichard Henderson 40686d21e4bSRichard Henderson# Media instructions 40786d21e4bSRichard Henderson 40886d21e4bSRichard Henderson# usad8 is usada8 w/ ra=15 40986d21e4bSRichard HendersonUSADA8 ---- 0111 1000 rd:4 ra:4 rm:4 0001 rn:4 41086d21e4bSRichard Henderson 41186d21e4bSRichard Henderson# ubfx and sbfx 41286d21e4bSRichard Henderson@bfx ---- .... ... widthm1:5 rd:4 lsb:5 ... rn:4 &bfx 41386d21e4bSRichard Henderson 41486d21e4bSRichard HendersonSBFX .... 0111 101 ..... .... ..... 101 .... @bfx 41586d21e4bSRichard HendersonUBFX .... 0111 111 ..... .... ..... 101 .... @bfx 41686d21e4bSRichard Henderson 41786d21e4bSRichard Henderson# bfc is bfi w/ rn=15 41886d21e4bSRichard HendersonBFCI ---- 0111 110 msb:5 rd:4 lsb:5 001 rn:4 &bfi 41986d21e4bSRichard Henderson 42086d21e4bSRichard Henderson# While we could get UDEF by not including this, add the pattern for 42186d21e4bSRichard Henderson# documentation and to conflict with any other typos in this file. 42286d21e4bSRichard HendersonUDF 1110 0111 1111 ---- ---- ---- 1111 ---- 423adf1a566SRichard Henderson 424adf1a566SRichard Henderson# Parallel addition and subtraction 425adf1a566SRichard Henderson 426adf1a566SRichard HendersonSADD16 .... 0110 0001 .... .... 1111 0001 .... @rndm 427adf1a566SRichard HendersonSASX .... 0110 0001 .... .... 1111 0011 .... @rndm 428adf1a566SRichard HendersonSSAX .... 0110 0001 .... .... 1111 0101 .... @rndm 429adf1a566SRichard HendersonSSUB16 .... 0110 0001 .... .... 1111 0111 .... @rndm 430adf1a566SRichard HendersonSADD8 .... 0110 0001 .... .... 1111 1001 .... @rndm 431adf1a566SRichard HendersonSSUB8 .... 0110 0001 .... .... 1111 1111 .... @rndm 432adf1a566SRichard Henderson 433adf1a566SRichard HendersonQADD16 .... 0110 0010 .... .... 1111 0001 .... @rndm 434adf1a566SRichard HendersonQASX .... 0110 0010 .... .... 1111 0011 .... @rndm 435adf1a566SRichard HendersonQSAX .... 0110 0010 .... .... 1111 0101 .... @rndm 436adf1a566SRichard HendersonQSUB16 .... 0110 0010 .... .... 1111 0111 .... @rndm 437adf1a566SRichard HendersonQADD8 .... 0110 0010 .... .... 1111 1001 .... @rndm 438adf1a566SRichard HendersonQSUB8 .... 0110 0010 .... .... 1111 1111 .... @rndm 439adf1a566SRichard Henderson 440adf1a566SRichard HendersonSHADD16 .... 0110 0011 .... .... 1111 0001 .... @rndm 441adf1a566SRichard HendersonSHASX .... 0110 0011 .... .... 1111 0011 .... @rndm 442adf1a566SRichard HendersonSHSAX .... 0110 0011 .... .... 1111 0101 .... @rndm 443adf1a566SRichard HendersonSHSUB16 .... 0110 0011 .... .... 1111 0111 .... @rndm 444adf1a566SRichard HendersonSHADD8 .... 0110 0011 .... .... 1111 1001 .... @rndm 445adf1a566SRichard HendersonSHSUB8 .... 0110 0011 .... .... 1111 1111 .... @rndm 446adf1a566SRichard Henderson 447adf1a566SRichard HendersonUADD16 .... 0110 0101 .... .... 1111 0001 .... @rndm 448adf1a566SRichard HendersonUASX .... 0110 0101 .... .... 1111 0011 .... @rndm 449adf1a566SRichard HendersonUSAX .... 0110 0101 .... .... 1111 0101 .... @rndm 450adf1a566SRichard HendersonUSUB16 .... 0110 0101 .... .... 1111 0111 .... @rndm 451adf1a566SRichard HendersonUADD8 .... 0110 0101 .... .... 1111 1001 .... @rndm 452adf1a566SRichard HendersonUSUB8 .... 0110 0101 .... .... 1111 1111 .... @rndm 453adf1a566SRichard Henderson 454adf1a566SRichard HendersonUQADD16 .... 0110 0110 .... .... 1111 0001 .... @rndm 455adf1a566SRichard HendersonUQASX .... 0110 0110 .... .... 1111 0011 .... @rndm 456adf1a566SRichard HendersonUQSAX .... 0110 0110 .... .... 1111 0101 .... @rndm 457adf1a566SRichard HendersonUQSUB16 .... 0110 0110 .... .... 1111 0111 .... @rndm 458adf1a566SRichard HendersonUQADD8 .... 0110 0110 .... .... 1111 1001 .... @rndm 459adf1a566SRichard HendersonUQSUB8 .... 0110 0110 .... .... 1111 1111 .... @rndm 460adf1a566SRichard Henderson 461adf1a566SRichard HendersonUHADD16 .... 0110 0111 .... .... 1111 0001 .... @rndm 462adf1a566SRichard HendersonUHASX .... 0110 0111 .... .... 1111 0011 .... @rndm 463adf1a566SRichard HendersonUHSAX .... 0110 0111 .... .... 1111 0101 .... @rndm 464adf1a566SRichard HendersonUHSUB16 .... 0110 0111 .... .... 1111 0111 .... @rndm 465adf1a566SRichard HendersonUHADD8 .... 0110 0111 .... .... 1111 1001 .... @rndm 466adf1a566SRichard HendersonUHSUB8 .... 0110 0111 .... .... 1111 1111 .... @rndm 46746497f6aSRichard Henderson 46846497f6aSRichard Henderson# Packing, unpacking, saturation, and reversal 46946497f6aSRichard Henderson 47046497f6aSRichard HendersonPKH ---- 0110 1000 rn:4 rd:4 imm:5 tb:1 01 rm:4 &pkh 47146497f6aSRichard Henderson 47246497f6aSRichard Henderson@sat ---- .... ... satimm:5 rd:4 imm:5 sh:1 .. rn:4 &sat 47346497f6aSRichard Henderson@sat16 ---- .... .... satimm:4 rd:4 .... .... rn:4 \ 47446497f6aSRichard Henderson &sat imm=0 sh=0 47546497f6aSRichard Henderson 47646497f6aSRichard HendersonSSAT .... 0110 101. .... .... .... ..01 .... @sat 47746497f6aSRichard HendersonUSAT .... 0110 111. .... .... .... ..01 .... @sat 47846497f6aSRichard Henderson 47946497f6aSRichard HendersonSSAT16 .... 0110 1010 .... .... 1111 0011 .... @sat16 48046497f6aSRichard HendersonUSAT16 .... 0110 1110 .... .... 1111 0011 .... @sat16 48146497f6aSRichard Henderson 48246497f6aSRichard Henderson@rrr_rot ---- .... .... rn:4 rd:4 rot:2 ...... rm:4 &rrr_rot 48346497f6aSRichard Henderson 48446497f6aSRichard HendersonSXTAB16 .... 0110 1000 .... .... ..00 0111 .... @rrr_rot 48546497f6aSRichard HendersonSXTAB .... 0110 1010 .... .... ..00 0111 .... @rrr_rot 48646497f6aSRichard HendersonSXTAH .... 0110 1011 .... .... ..00 0111 .... @rrr_rot 48746497f6aSRichard HendersonUXTAB16 .... 0110 1100 .... .... ..00 0111 .... @rrr_rot 48846497f6aSRichard HendersonUXTAB .... 0110 1110 .... .... ..00 0111 .... @rrr_rot 48946497f6aSRichard HendersonUXTAH .... 0110 1111 .... .... ..00 0111 .... @rrr_rot 49046497f6aSRichard Henderson 49146497f6aSRichard HendersonSEL .... 0110 1000 .... .... 1111 1011 .... @rndm 49246497f6aSRichard HendersonREV .... 0110 1011 1111 .... 1111 0011 .... @rdm 49346497f6aSRichard HendersonREV16 .... 0110 1011 1111 .... 1111 1011 .... @rdm 49446497f6aSRichard HendersonREVSH .... 0110 1111 1111 .... 1111 1011 .... @rdm 49546497f6aSRichard HendersonRBIT .... 0110 1111 1111 .... 1111 0011 .... @rdm 4962c7c4e09SRichard Henderson 4972c7c4e09SRichard Henderson# Signed multiply, signed and unsigned divide 4982c7c4e09SRichard Henderson 4992c7c4e09SRichard Henderson@rdmn ---- .... .... rd:4 .... rm:4 .... rn:4 &rrr 5002c7c4e09SRichard Henderson 5012c7c4e09SRichard HendersonSMLAD .... 0111 0000 .... .... .... 0001 .... @rdamn 5022c7c4e09SRichard HendersonSMLADX .... 0111 0000 .... .... .... 0011 .... @rdamn 5032c7c4e09SRichard HendersonSMLSD .... 0111 0000 .... .... .... 0101 .... @rdamn 5042c7c4e09SRichard HendersonSMLSDX .... 0111 0000 .... .... .... 0111 .... @rdamn 5052c7c4e09SRichard Henderson 5062c7c4e09SRichard HendersonSDIV .... 0111 0001 .... 1111 .... 0001 .... @rdmn 5072c7c4e09SRichard HendersonUDIV .... 0111 0011 .... 1111 .... 0001 .... @rdmn 5082c7c4e09SRichard Henderson 5092c7c4e09SRichard HendersonSMLALD .... 0111 0100 .... .... .... 0001 .... @rdamn 5102c7c4e09SRichard HendersonSMLALDX .... 0111 0100 .... .... .... 0011 .... @rdamn 5112c7c4e09SRichard HendersonSMLSLD .... 0111 0100 .... .... .... 0101 .... @rdamn 5122c7c4e09SRichard HendersonSMLSLDX .... 0111 0100 .... .... .... 0111 .... @rdamn 5132c7c4e09SRichard Henderson 5142c7c4e09SRichard HendersonSMMLA .... 0111 0101 .... .... .... 0001 .... @rdamn 5152c7c4e09SRichard HendersonSMMLAR .... 0111 0101 .... .... .... 0011 .... @rdamn 5162c7c4e09SRichard HendersonSMMLS .... 0111 0101 .... .... .... 1101 .... @rdamn 5172c7c4e09SRichard HendersonSMMLSR .... 0111 0101 .... .... .... 1111 .... @rdamn 518c5c426d4SRichard Henderson 519c5c426d4SRichard Henderson# Block data transfer 520c5c426d4SRichard Henderson 521c5c426d4SRichard HendersonSTM ---- 100 b:1 i:1 u:1 w:1 0 rn:4 list:16 &ldst_block 522c5c426d4SRichard HendersonLDM_a32 ---- 100 b:1 i:1 u:1 w:1 1 rn:4 list:16 &ldst_block 523*360144f3SRichard Henderson 524*360144f3SRichard Henderson# Branch, branch with link 525*360144f3SRichard Henderson 526*360144f3SRichard Henderson%imm26 0:s24 !function=times_4 527*360144f3SRichard Henderson@branch ---- .... ........................ &i imm=%imm26 528*360144f3SRichard Henderson 529*360144f3SRichard HendersonB .... 1010 ........................ @branch 530*360144f3SRichard HendersonBL .... 1011 ........................ @branch 531