xref: /qemu/target/hppa/insns.decode (revision c3bad4f839ed961729ba7c502181bdbf0502c7de)
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