140f9f908SRichard Henderson# 240f9f908SRichard Henderson# HPPA instruction decode definitions. 340f9f908SRichard Henderson# 440f9f908SRichard Henderson# Copyright (c) 2018 Richard Henderson <rth@twiddle.net> 540f9f908SRichard Henderson# 640f9f908SRichard Henderson# This library is free software; you can redistribute it and/or 740f9f908SRichard Henderson# modify it under the terms of the GNU Lesser General Public 840f9f908SRichard Henderson# License as published by the Free Software Foundation; either 940f9f908SRichard Henderson# version 2 of the License, or (at your option) any later version. 1040f9f908SRichard Henderson# 1140f9f908SRichard Henderson# This library is distributed in the hope that it will be useful, 1240f9f908SRichard Henderson# but WITHOUT ANY WARRANTY; without even the implied warranty of 1340f9f908SRichard Henderson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1440f9f908SRichard Henderson# Lesser General Public License for more details. 1540f9f908SRichard Henderson# 1640f9f908SRichard Henderson# You should have received a copy of the GNU Lesser General Public 1740f9f908SRichard Henderson# License along with this library; if not, see <http://www.gnu.org/licenses/>. 1840f9f908SRichard Henderson# 1940f9f908SRichard Henderson 2040f9f908SRichard Henderson#### 21c603e14aSRichard Henderson# Field definitions 22c603e14aSRichard Henderson#### 23c603e14aSRichard Henderson 24c603e14aSRichard Henderson%assemble_sr3 13:1 14:2 25deee69a1SRichard Henderson%assemble_sr3x 13:1 14:2 !function=expand_sr3x 26c603e14aSRichard Henderson 27740038d7SRichard Henderson%assemble_11a 0:s1 4:10 !function=expand_shl3 2801afb7beSRichard Henderson%assemble_12 0:s1 2:1 3:10 !function=expand_shl2 29740038d7SRichard Henderson%assemble_12a 0:s1 3:11 !function=expand_shl2 308340f534SRichard Henderson%assemble_17 0:s1 16:5 2:1 3:10 !function=expand_shl2 318340f534SRichard Henderson%assemble_22 0:s1 16:10 2:1 3:10 !function=expand_shl2 3201afb7beSRichard Henderson 330588e061SRichard Henderson%assemble_21 0:s1 1:11 14:2 16:5 12:2 !function=expand_shl11 340588e061SRichard Henderson 350588e061SRichard Henderson%lowsign_11 0:s1 1:10 360588e061SRichard Henderson%lowsign_14 0:s1 1:13 370588e061SRichard Henderson 38e36f27efSRichard Henderson%sm_imm 16:10 !function=expand_sm_imm 39e36f27efSRichard Henderson 40740038d7SRichard Henderson%rm64 1:1 16:5 41e8777db7SRichard Henderson%rt64 6:1 0:5 42*c3bad4f8SRichard Henderson%ra64 7:1 21:5 43*c3bad4f8SRichard Henderson%rb64 12:1 16:5 44*c3bad4f8SRichard Henderson%rc64 8:1 13:3 9:2 45*c3bad4f8SRichard Henderson%rc32 13:3 9:2 46740038d7SRichard Henderson 471cd012a5SRichard Henderson%im5_0 0:s1 1:4 481cd012a5SRichard Henderson%im5_16 16:s1 17:4 491cd012a5SRichard Henderson%ma_to_m 5:1 13:1 !function=ma_to_m 50740038d7SRichard Henderson%ma2_to_m 2:2 !function=ma_to_m 51740038d7SRichard Henderson%pos_to_m 0:1 !function=pos_to_m 52740038d7SRichard Henderson%neg_to_m 0:1 !function=neg_to_m 53740038d7SRichard Henderson%a_to_m 2:1 !function=neg_to_m 541cd012a5SRichard Henderson 55c603e14aSRichard Henderson#### 56deee69a1SRichard Henderson# Argument set definitions 57deee69a1SRichard Henderson#### 58deee69a1SRichard Henderson 59deee69a1SRichard Henderson# All insns that need to form a virtual address should use this set. 60deee69a1SRichard Henderson&ldst t b x disp sp m scale size 61deee69a1SRichard Henderson 620c982a28SRichard Henderson&rr_cf t r cf 630c982a28SRichard Henderson&rrr_cf t r1 r2 cf 640c982a28SRichard Henderson&rrr_cf_sh t r1 r2 cf sh 650588e061SRichard Henderson&rri_cf t r i cf 660c982a28SRichard Henderson 6701afb7beSRichard Henderson&rrb_c_f disp n c f r1 r2 6801afb7beSRichard Henderson&rib_c_f disp n c f r i 6901afb7beSRichard Henderson 700c982a28SRichard Henderson#### 710c982a28SRichard Henderson# Format definitions 720c982a28SRichard Henderson#### 730c982a28SRichard Henderson 740c982a28SRichard Henderson@rr_cf ...... r:5 ..... cf:4 ....... t:5 &rr_cf 750c982a28SRichard Henderson@rrr_cf ...... r2:5 r1:5 cf:4 ....... t:5 &rrr_cf 760c982a28SRichard Henderson@rrr_cf_sh ...... r2:5 r1:5 cf:4 .... sh:2 . t:5 &rrr_cf_sh 770c982a28SRichard Henderson@rrr_cf_sh0 ...... r2:5 r1:5 cf:4 ....... t:5 &rrr_cf_sh sh=0 780588e061SRichard Henderson@rri_cf ...... r:5 t:5 cf:4 . ........... &rri_cf i=%lowsign_11 790c982a28SRichard Henderson 8001afb7beSRichard Henderson@rrb_cf ...... r2:5 r1:5 c:3 ........... n:1 . \ 8101afb7beSRichard Henderson &rrb_c_f disp=%assemble_12 8201afb7beSRichard Henderson@rib_cf ...... r:5 ..... c:3 ........... n:1 . \ 8301afb7beSRichard Henderson &rib_c_f disp=%assemble_12 i=%im5_16 8401afb7beSRichard Henderson 85deee69a1SRichard Henderson#### 8640f9f908SRichard Henderson# System 8740f9f908SRichard Henderson#### 8840f9f908SRichard Henderson 8940f9f908SRichard Hendersonbreak 000000 ----- ----- --- 00000000 ----- 90c603e14aSRichard Henderson 91c603e14aSRichard Hendersonmtsp 000000 ----- r:5 ... 11000001 00000 sp=%assemble_sr3 92c603e14aSRichard Hendersonmtctl 000000 t:5 r:5 --- 11000010 00000 93c603e14aSRichard Hendersonmtsarcm 000000 01011 r:5 --- 11000110 00000 94c603e14aSRichard Hendersonmtsm 000000 00000 r:5 000 11000011 00000 95c603e14aSRichard Henderson 96c603e14aSRichard Hendersonmfia 000000 ----- 00000 --- 10100101 t:5 97c603e14aSRichard Hendersonmfsp 000000 ----- 00000 ... 00100101 t:5 sp=%assemble_sr3 98c603e14aSRichard Hendersonmfctl 000000 r:5 00000- e:1 -01000101 t:5 99e36f27efSRichard Henderson 100e36f27efSRichard Hendersonsync 000000 ----- ----- 000 00100000 00000 # sync, syncdma 101e36f27efSRichard Henderson 102e36f27efSRichard Hendersonldsid 000000 b:5 ----- sp:2 0 10000101 t:5 103e36f27efSRichard Henderson 104e36f27efSRichard Hendersonrsm 000000 .......... 000 01110011 t:5 i=%sm_imm 105e36f27efSRichard Hendersonssm 000000 .......... 000 01101011 t:5 i=%sm_imm 106e36f27efSRichard Henderson 107e36f27efSRichard Hendersonrfi 000000 ----- ----- --- 01100000 00000 108e36f27efSRichard Hendersonrfi_r 000000 ----- ----- --- 01100101 00000 109deee69a1SRichard Henderson 11096927adbSRichard Henderson# These are artificial instructions used by QEMU firmware. 11196927adbSRichard Henderson# They are allocated from the unassigned instruction space. 11296927adbSRichard Hendersonhalt 1111 1111 1111 1101 1110 1010 1101 0000 11396927adbSRichard Hendersonreset 1111 1111 1111 1101 1110 1010 1101 0001 11496927adbSRichard Henderson 115deee69a1SRichard Henderson#### 116deee69a1SRichard Henderson# Memory Management 117deee69a1SRichard Henderson#### 118deee69a1SRichard Henderson 119deee69a1SRichard Henderson@addrx ...... b:5 x:5 .. ........ m:1 ..... \ 120deee69a1SRichard Henderson &ldst disp=0 scale=0 t=0 sp=0 size=0 121deee69a1SRichard Henderson 122deee69a1SRichard Hendersonnop 000001 ----- ----- -- 11001010 0 ----- # fdc, disp 123deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001010 . ----- @addrx # fdc, index 124deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001011 . ----- @addrx # fdce 125deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... --- 0001010 . ----- @addrx # fic 0x0a 126deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001111 . 00000 @addrx # fic 0x4f 127deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... --- 0001011 . ----- @addrx # fice 128deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001110 . 00000 @addrx # pdc 129deee69a1SRichard Henderson 130deee69a1SRichard Hendersonprobe 000001 b:5 ri:5 sp:2 imm:1 100011 write:1 0 t:5 131deee69a1SRichard Henderson 132deee69a1SRichard Hendersonixtlbx 000001 b:5 r:5 sp:2 0100000 addr:1 0 00000 data=1 133deee69a1SRichard Hendersonixtlbx 000001 b:5 r:5 ... 000000 addr:1 0 00000 \ 134deee69a1SRichard Henderson sp=%assemble_sr3x data=0 135deee69a1SRichard Henderson 136deee69a1SRichard Hendersonpxtlbx 000001 b:5 x:5 sp:2 0100100 local:1 m:1 ----- data=1 137deee69a1SRichard Hendersonpxtlbx 000001 b:5 x:5 ... 000100 local:1 m:1 ----- \ 138deee69a1SRichard Henderson sp=%assemble_sr3x data=0 139deee69a1SRichard Henderson 140deee69a1SRichard Hendersonlpa 000001 b:5 x:5 sp:2 01001101 m:1 t:5 \ 141deee69a1SRichard Henderson &ldst disp=0 scale=0 size=0 142deee69a1SRichard Henderson 143deee69a1SRichard Hendersonlci 000001 ----- ----- -- 01001100 0 t:5 1440c982a28SRichard Henderson 1450c982a28SRichard Henderson#### 1460c982a28SRichard Henderson# Arith/Log 1470c982a28SRichard Henderson#### 1480c982a28SRichard Henderson 1490c982a28SRichard Hendersonandcm 000010 ..... ..... .... 000000 0 ..... @rrr_cf 1500c982a28SRichard Hendersonand 000010 ..... ..... .... 001000 0 ..... @rrr_cf 1510c982a28SRichard Hendersonor 000010 ..... ..... .... 001001 0 ..... @rrr_cf 1520c982a28SRichard Hendersonxor 000010 ..... ..... .... 001010 0 ..... @rrr_cf 1530c982a28SRichard Hendersonuxor 000010 ..... ..... .... 001110 0 ..... @rrr_cf 1540c982a28SRichard Hendersonds 000010 ..... ..... .... 010001 0 ..... @rrr_cf 1550c982a28SRichard Hendersoncmpclr 000010 ..... ..... .... 100010 0 ..... @rrr_cf 1560c982a28SRichard Hendersonuaddcm 000010 ..... ..... .... 100110 0 ..... @rrr_cf 1570c982a28SRichard Hendersonuaddcm_tc 000010 ..... ..... .... 100111 0 ..... @rrr_cf 1580c982a28SRichard Hendersondcor 000010 ..... 00000 .... 101110 0 ..... @rr_cf 1590c982a28SRichard Hendersondcor_i 000010 ..... 00000 .... 101111 0 ..... @rr_cf 1600c982a28SRichard Henderson 1610c982a28SRichard Hendersonadd 000010 ..... ..... .... 0110.. 0 ..... @rrr_cf_sh 1620c982a28SRichard Hendersonadd_l 000010 ..... ..... .... 1010.. 0 ..... @rrr_cf_sh 1630c982a28SRichard Hendersonadd_tsv 000010 ..... ..... .... 1110.. 0 ..... @rrr_cf_sh 1640c982a28SRichard Hendersonadd_c 000010 ..... ..... .... 011100 0 ..... @rrr_cf_sh0 1650c982a28SRichard Hendersonadd_c_tsv 000010 ..... ..... .... 111100 0 ..... @rrr_cf_sh0 1660c982a28SRichard Henderson 1670c982a28SRichard Hendersonsub 000010 ..... ..... .... 010000 0 ..... @rrr_cf 1680c982a28SRichard Hendersonsub_tsv 000010 ..... ..... .... 110000 0 ..... @rrr_cf 1690c982a28SRichard Hendersonsub_tc 000010 ..... ..... .... 010011 0 ..... @rrr_cf 1700c982a28SRichard Hendersonsub_tsv_tc 000010 ..... ..... .... 110011 0 ..... @rrr_cf 1710c982a28SRichard Hendersonsub_b 000010 ..... ..... .... 010100 0 ..... @rrr_cf 1720c982a28SRichard Hendersonsub_b_tsv 000010 ..... ..... .... 110100 0 ..... @rrr_cf 1731cd012a5SRichard Henderson 1740588e061SRichard Hendersonldil 001000 t:5 ..................... i=%assemble_21 1750588e061SRichard Hendersonaddil 001010 r:5 ..................... i=%assemble_21 1760588e061SRichard Hendersonldo 001101 b:5 t:5 -- .............. i=%lowsign_14 1770588e061SRichard Henderson 1780588e061SRichard Hendersonaddi 101101 ..... ..... .... 0 ........... @rri_cf 1790588e061SRichard Hendersonaddi_tsv 101101 ..... ..... .... 1 ........... @rri_cf 1800588e061SRichard Hendersonaddi_tc 101100 ..... ..... .... 0 ........... @rri_cf 1810588e061SRichard Hendersonaddi_tc_tsv 101100 ..... ..... .... 1 ........... @rri_cf 1820588e061SRichard Henderson 1830588e061SRichard Hendersonsubi 100101 ..... ..... .... 0 ........... @rri_cf 1840588e061SRichard Hendersonsubi_tsv 100101 ..... ..... .... 1 ........... @rri_cf 1850588e061SRichard Henderson 1860588e061SRichard Hendersoncmpiclr 100100 ..... ..... .... 0 ........... @rri_cf 1870588e061SRichard Henderson 1881cd012a5SRichard Henderson#### 1891cd012a5SRichard Henderson# Index Mem 1901cd012a5SRichard Henderson#### 1911cd012a5SRichard Henderson 1921cd012a5SRichard Henderson@ldstx ...... b:5 x:5 sp:2 scale:1 ....... m:1 t:5 &ldst disp=0 1931cd012a5SRichard Henderson@ldim5 ...... b:5 ..... sp:2 ......... t:5 \ 1941cd012a5SRichard Henderson &ldst disp=%im5_16 x=0 scale=0 m=%ma_to_m 1951cd012a5SRichard Henderson@stim5 ...... b:5 t:5 sp:2 ......... ..... \ 1961cd012a5SRichard Henderson &ldst disp=%im5_0 x=0 scale=0 m=%ma_to_m 1971cd012a5SRichard Henderson 1981cd012a5SRichard Hendersonld 000011 ..... ..... .. . 1 -- 00 size:2 ...... @ldim5 1991cd012a5SRichard Hendersonld 000011 ..... ..... .. . 0 -- 00 size:2 ...... @ldstx 2001cd012a5SRichard Hendersonst 000011 ..... ..... .. . 1 -- 10 size:2 ...... @stim5 2011cd012a5SRichard Hendersonldc 000011 ..... ..... .. . 1 -- 0111 ...... @ldim5 size=2 2021cd012a5SRichard Hendersonldc 000011 ..... ..... .. . 0 -- 0111 ...... @ldstx size=2 2031cd012a5SRichard Hendersonlda 000011 ..... ..... .. . 1 -- 0110 ...... @ldim5 size=2 2041cd012a5SRichard Hendersonlda 000011 ..... ..... .. . 0 -- 0110 ...... @ldstx size=2 2051cd012a5SRichard Hendersonsta 000011 ..... ..... .. . 1 -- 1110 ...... @stim5 size=2 2061cd012a5SRichard Hendersonstby 000011 b:5 r:5 sp:2 a:1 1 -- 1100 m:1 ..... disp=%im5_0 207b1e2af57SRichard Henderson 208e8777db7SRichard Henderson@fldstwx ...... b:5 x:5 sp:2 scale:1 ....... m:1 ..... \ 209e8777db7SRichard Henderson &ldst t=%rt64 disp=0 size=2 210e8777db7SRichard Henderson@fldstwi ...... b:5 ..... sp:2 . ....... . ..... \ 211e8777db7SRichard Henderson &ldst t=%rt64 disp=%im5_16 m=%ma_to_m x=0 scale=0 size=2 212e8777db7SRichard Henderson 213e8777db7SRichard Hendersonfldw 001001 ..... ..... .. . 0 -- 000 . . ..... @fldstwx 214e8777db7SRichard Hendersonfldw 001001 ..... ..... .. . 1 -- 000 . . ..... @fldstwi 215e8777db7SRichard Hendersonfstw 001001 ..... ..... .. . 0 -- 100 . . ..... @fldstwx 216e8777db7SRichard Hendersonfstw 001001 ..... ..... .. . 1 -- 100 . . ..... @fldstwi 217e8777db7SRichard Henderson 218e8777db7SRichard Henderson@fldstdx ...... b:5 x:5 sp:2 scale:1 ....... m:1 t:5 \ 219e8777db7SRichard Henderson &ldst disp=0 size=3 220e8777db7SRichard Henderson@fldstdi ...... b:5 ..... sp:2 . ....... . t:5 \ 221e8777db7SRichard Henderson &ldst disp=%im5_16 m=%ma_to_m x=0 scale=0 size=3 222e8777db7SRichard Henderson 223e8777db7SRichard Hendersonfldd 001011 ..... ..... .. . 0 -- 000 0 . ..... @fldstdx 224e8777db7SRichard Hendersonfldd 001011 ..... ..... .. . 1 -- 000 0 . ..... @fldstdi 225e8777db7SRichard Hendersonfstd 001011 ..... ..... .. . 0 -- 100 0 . ..... @fldstdx 226e8777db7SRichard Hendersonfstd 001011 ..... ..... .. . 1 -- 100 0 . ..... @fldstdi 227e8777db7SRichard Henderson 228b1e2af57SRichard Henderson#### 229740038d7SRichard Henderson# Offset Mem 230740038d7SRichard Henderson#### 231740038d7SRichard Henderson 232740038d7SRichard Henderson@ldstim14 ...... b:5 t:5 sp:2 .............. \ 233740038d7SRichard Henderson &ldst disp=%lowsign_14 x=0 scale=0 m=0 234740038d7SRichard Henderson@ldstim14m ...... b:5 t:5 sp:2 .............. \ 235740038d7SRichard Henderson &ldst disp=%lowsign_14 x=0 scale=0 m=%neg_to_m 236740038d7SRichard Henderson@ldstim12m ...... b:5 t:5 sp:2 .............. \ 237740038d7SRichard Henderson &ldst disp=%assemble_12a x=0 scale=0 m=%pos_to_m 238740038d7SRichard Henderson 239740038d7SRichard Henderson# LDB, LDH, LDW, LDWM 240740038d7SRichard Hendersonld 010000 ..... ..... .. .............. @ldstim14 size=0 241740038d7SRichard Hendersonld 010001 ..... ..... .. .............. @ldstim14 size=1 242740038d7SRichard Hendersonld 010010 ..... ..... .. .............. @ldstim14 size=2 243740038d7SRichard Hendersonld 010011 ..... ..... .. .............. @ldstim14m size=2 244740038d7SRichard Hendersonld 010111 ..... ..... .. ...........10. @ldstim12m size=2 245740038d7SRichard Henderson 246740038d7SRichard Henderson# STB, STH, STW, STWM 247740038d7SRichard Hendersonst 011000 ..... ..... .. .............. @ldstim14 size=0 248740038d7SRichard Hendersonst 011001 ..... ..... .. .............. @ldstim14 size=1 249740038d7SRichard Hendersonst 011010 ..... ..... .. .............. @ldstim14 size=2 250740038d7SRichard Hendersonst 011011 ..... ..... .. .............. @ldstim14m size=2 251740038d7SRichard Hendersonst 011111 ..... ..... .. ...........10. @ldstim12m size=2 252740038d7SRichard Henderson 253740038d7SRichard Hendersonfldw 010110 b:5 ..... sp:2 .............. \ 254740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=%a_to_m x=0 scale=0 size=2 255740038d7SRichard Hendersonfldw 010111 b:5 ..... sp:2 ...........0.. \ 256740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=0 x=0 scale=0 size=2 257740038d7SRichard Henderson 258740038d7SRichard Hendersonfstw 011110 b:5 ..... sp:2 .............. \ 259740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=%a_to_m x=0 scale=0 size=2 260740038d7SRichard Hendersonfstw 011111 b:5 ..... sp:2 ...........0.. \ 261740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=0 x=0 scale=0 size=2 262740038d7SRichard Henderson 263740038d7SRichard Hendersonfldd 010100 b:5 t:5 sp:2 .......... .. 1 . \ 264740038d7SRichard Henderson &ldst disp=%assemble_11a m=%ma2_to_m x=0 scale=0 size=3 265740038d7SRichard Henderson 266740038d7SRichard Hendersonfstd 011100 b:5 t:5 sp:2 .......... .. 1 . \ 267740038d7SRichard Henderson &ldst disp=%assemble_11a m=%ma2_to_m x=0 scale=0 size=3 268740038d7SRichard Henderson 269740038d7SRichard Henderson#### 270b1e2af57SRichard Henderson# Floating-point Multiply Add 271b1e2af57SRichard Henderson#### 272b1e2af57SRichard Henderson 273b1e2af57SRichard Henderson&mpyadd rm1 rm2 ta ra tm 274b1e2af57SRichard Henderson@mpyadd ...... rm1:5 rm2:5 ta:5 ra:5 . tm:5 &mpyadd 275b1e2af57SRichard Henderson 276b1e2af57SRichard Hendersonfmpyadd_f 000110 ..... ..... ..... ..... 0 ..... @mpyadd 277b1e2af57SRichard Hendersonfmpyadd_d 000110 ..... ..... ..... ..... 1 ..... @mpyadd 278b1e2af57SRichard Hendersonfmpysub_f 100110 ..... ..... ..... ..... 0 ..... @mpyadd 279b1e2af57SRichard Hendersonfmpysub_d 100110 ..... ..... ..... ..... 1 ..... @mpyadd 28001afb7beSRichard Henderson 28101afb7beSRichard Henderson#### 28201afb7beSRichard Henderson# Conditional Branches 28301afb7beSRichard Henderson#### 28401afb7beSRichard Henderson 28501afb7beSRichard Hendersonbb_sar 110000 00000 r:5 c:1 10 ........... n:1 . disp=%assemble_12 28601afb7beSRichard Hendersonbb_imm 110001 p:5 r:5 c:1 10 ........... n:1 . disp=%assemble_12 28701afb7beSRichard Henderson 28801afb7beSRichard Hendersonmovb 110010 ..... ..... ... ........... . . @rrb_cf f=0 28901afb7beSRichard Hendersonmovbi 110011 ..... ..... ... ........... . . @rib_cf f=0 29001afb7beSRichard Henderson 29101afb7beSRichard Hendersoncmpb 100000 ..... ..... ... ........... . . @rrb_cf f=0 29201afb7beSRichard Hendersoncmpb 100010 ..... ..... ... ........... . . @rrb_cf f=1 29301afb7beSRichard Hendersoncmpbi 100001 ..... ..... ... ........... . . @rib_cf f=0 29401afb7beSRichard Hendersoncmpbi 100011 ..... ..... ... ........... . . @rib_cf f=1 29501afb7beSRichard Henderson 29601afb7beSRichard Hendersonaddb 101000 ..... ..... ... ........... . . @rrb_cf f=0 29701afb7beSRichard Hendersonaddb 101010 ..... ..... ... ........... . . @rrb_cf f=1 29801afb7beSRichard Hendersonaddbi 101001 ..... ..... ... ........... . . @rib_cf f=0 29901afb7beSRichard Hendersonaddbi 101011 ..... ..... ... ........... . . @rib_cf f=1 30030878590SRichard Henderson 30130878590SRichard Henderson#### 30230878590SRichard Henderson# Shift, Extract, Deposit 30330878590SRichard Henderson#### 30430878590SRichard Henderson 30530878590SRichard Hendersonshrpw_sar 110100 r2:5 r1:5 c:3 00 0 00000 t:5 30630878590SRichard Hendersonshrpw_imm 110100 r2:5 r1:5 c:3 01 0 cpos:5 t:5 30730878590SRichard Henderson 30830878590SRichard Hendersonextrw_sar 110100 r:5 t:5 c:3 10 se:1 00000 clen:5 30930878590SRichard Hendersonextrw_imm 110100 r:5 t:5 c:3 11 se:1 pos:5 clen:5 31030878590SRichard Henderson 31130878590SRichard Hendersondepw_sar 110101 t:5 r:5 c:3 00 nz:1 00000 clen:5 31230878590SRichard Hendersondepw_imm 110101 t:5 r:5 c:3 01 nz:1 cpos:5 clen:5 31330878590SRichard Hendersondepwi_sar 110101 t:5 ..... c:3 10 nz:1 00000 clen:5 i=%im5_16 31430878590SRichard Hendersondepwi_imm 110101 t:5 ..... c:3 11 nz:1 cpos:5 clen:5 i=%im5_16 3158340f534SRichard Henderson 3168340f534SRichard Henderson#### 3178340f534SRichard Henderson# Branch External 3188340f534SRichard Henderson#### 3198340f534SRichard Henderson 3208340f534SRichard Henderson&BE b l n disp sp 3218340f534SRichard Henderson@be ...... b:5 ..... ... ........... n:1 . \ 3228340f534SRichard Henderson &BE disp=%assemble_17 sp=%assemble_sr3 3238340f534SRichard Henderson 3248340f534SRichard Hendersonbe 111000 ..... ..... ... ........... . . @be l=0 3258340f534SRichard Hendersonbe 111001 ..... ..... ... ........... . . @be l=31 3268340f534SRichard Henderson 3278340f534SRichard Henderson#### 3288340f534SRichard Henderson# Branch 3298340f534SRichard Henderson#### 3308340f534SRichard Henderson 3318340f534SRichard Henderson&BL l n disp 3328340f534SRichard Henderson@bl ...... l:5 ..... ... ........... n:1 . &BL disp=%assemble_17 3338340f534SRichard Henderson 3348340f534SRichard Henderson# B,L and B,L,PUSH 3358340f534SRichard Hendersonbl 111010 ..... ..... 000 ........... . . @bl 3368340f534SRichard Hendersonbl 111010 ..... ..... 100 ........... . . @bl 3378340f534SRichard Henderson# B,L (long displacement) 3388340f534SRichard Hendersonbl 111010 ..... ..... 101 ........... n:1 . &BL l=2 \ 3398340f534SRichard Henderson disp=%assemble_22 3408340f534SRichard Hendersonb_gate 111010 ..... ..... 001 ........... . . @bl 3418340f534SRichard Hendersonblr 111010 l:5 x:5 010 00000000000 n:1 0 3428340f534SRichard Hendersonbv 111010 b:5 x:5 110 00000000000 n:1 0 3438340f534SRichard Hendersonbve 111010 b:5 00000 110 10000000000 n:1 - l=0 3448340f534SRichard Hendersonbve 111010 b:5 00000 111 10000000000 n:1 - l=2 345*c3bad4f8SRichard Henderson 346*c3bad4f8SRichard Henderson#### 347*c3bad4f8SRichard Henderson# FP Fused Multiple-Add 348*c3bad4f8SRichard Henderson#### 349*c3bad4f8SRichard Henderson 350*c3bad4f8SRichard Hendersonfmpyfadd_f 101110 ..... ..... ... . 0 ... . . neg:1 ..... \ 351*c3bad4f8SRichard Henderson rm1=%ra64 rm2=%rb64 ra3=%rc64 t=%rt64 352*c3bad4f8SRichard Hendersonfmpyfadd_d 101110 rm1:5 rm2:5 ... 0 1 ..0 0 0 neg:1 t:5 ra3=%rc32 353