xref: /openbmc/qemu/target/hppa/insns.decode (revision c919bc65c54433420eecf8dc918ed6bcfeab40bf)
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
9d6ea4236SChetan Pant# version 2.1 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
274768c28eSRichard Henderson%assemble_11a   4:12 0:1             !function=expand_11a
2801afb7beSRichard Henderson%assemble_12    0:s1 2:1 3:10        !function=expand_shl2
2946174e14SRichard Henderson%assemble_12a   3:13 0:1             !function=expand_12a
3072bace2dSRichard Henderson%assemble_16    0:16                 !function=expand_16
318340f534SRichard Henderson%assemble_17    0:s1 16:5 2:1 3:10   !function=expand_shl2
328340f534SRichard Henderson%assemble_22    0:s1 16:10 2:1 3:10  !function=expand_shl2
3372bace2dSRichard Henderson%assemble_sp    14:2                 !function=sp0_if_wide
3401afb7beSRichard Henderson
350588e061SRichard Henderson%assemble_21    0:s1 1:11 14:2 16:5 12:2  !function=expand_shl11
360588e061SRichard Henderson
370588e061SRichard Henderson%lowsign_11     0:s1 1:10
380588e061SRichard Henderson
39e36f27efSRichard Henderson%sm_imm         16:10 !function=expand_sm_imm
40e36f27efSRichard Henderson
41740038d7SRichard Henderson%rm64           1:1 16:5
42e8777db7SRichard Henderson%rt64           6:1 0:5
43c3bad4f8SRichard Henderson%ra64           7:1 21:5
44c3bad4f8SRichard Henderson%rb64           12:1 16:5
45c3bad4f8SRichard Henderson%rc64           8:1 13:3 9:2
46c3bad4f8SRichard Henderson%rc32           13:3 9:2
47740038d7SRichard Henderson
481cd012a5SRichard Henderson%im5_0          0:s1 1:4
491cd012a5SRichard Henderson%im5_16         16:s1 17:4
5072ae4f2bSRichard Henderson%len5           0:5      !function=assemble_6
5172ae4f2bSRichard Henderson%len6_8         8:1 0:5  !function=assemble_6
5272ae4f2bSRichard Henderson%len6_12        12:1 0:5 !function=assemble_6
5372ae4f2bSRichard Henderson%cpos6_11       11:1 5:5
541cd012a5SRichard Henderson%ma_to_m        5:1 13:1 !function=ma_to_m
55740038d7SRichard Henderson%ma2_to_m       2:2      !function=ma_to_m
56740038d7SRichard Henderson%pos_to_m       0:1      !function=pos_to_m
57740038d7SRichard Henderson%neg_to_m       0:1      !function=neg_to_m
58740038d7SRichard Henderson%a_to_m         2:1      !function=neg_to_m
59c65c3ee1SRichard Henderson%cmpbid_c       13:2     !function=cmpbid_c
6082d0c831SRichard Henderson%d_5            5:1      !function=pa20_d
6182d0c831SRichard Henderson%d_11           11:1     !function=pa20_d
6282d0c831SRichard Henderson%d_13           13:1     !function=pa20_d
631cd012a5SRichard Henderson
64c603e14aSRichard Henderson####
65deee69a1SRichard Henderson# Argument set definitions
66deee69a1SRichard Henderson####
67deee69a1SRichard Henderson
68*3bdf2081SHelge Deller&empty
69*3bdf2081SHelge Deller
70deee69a1SRichard Henderson# All insns that need to form a virtual address should use this set.
71deee69a1SRichard Henderson&ldst           t b x disp sp m scale size
72deee69a1SRichard Henderson
73af240753SRichard Henderson&rr_cf_d        t r cf d
740843563fSRichard Henderson&rrr            t r1 r2
750c982a28SRichard Henderson&rrr_cf         t r1 r2 cf
76fa8e3bedSRichard Henderson&rrr_cf_d       t r1 r2 cf d
773bbb8e48SRichard Henderson&rrr_sh         t r1 r2 sh
78faf97ba1SRichard Henderson&rrr_cf_d_sh    t r1 r2 cf d sh
79151f309bSRichard Henderson&rri            t r i
800588e061SRichard Henderson&rri_cf         t r i cf
81345aa35fSRichard Henderson&rri_cf_d       t r i cf d
820c982a28SRichard Henderson
8301afb7beSRichard Henderson&rrb_c_f        disp n c f r1 r2
84e9efd4bcSRichard Henderson&rrb_c_d_f      disp n c d f r1 r2
8501afb7beSRichard Henderson&rib_c_f        disp n c f r i
86c65c3ee1SRichard Henderson&rib_c_d_f      disp n c d f r i
8701afb7beSRichard Henderson
880c982a28SRichard Henderson####
890c982a28SRichard Henderson# Format definitions
900c982a28SRichard Henderson####
910c982a28SRichard Henderson
9282d0c831SRichard Henderson@rr_cf_d        ...... r:5 ..... cf:4 ...... . t:5      &rr_cf_d d=%d_5
930843563fSRichard Henderson@rrr            ...... r2:5 r1:5 .... ....... t:5       &rrr
940c982a28SRichard Henderson@rrr_cf         ...... r2:5 r1:5 cf:4 ....... t:5       &rrr_cf
9582d0c831SRichard Henderson@rrr_cf_d       ...... r2:5 r1:5 cf:4 ...... . t:5      &rrr_cf_d d=%d_5
963bbb8e48SRichard Henderson@rrr_sh         ...... r2:5 r1:5 ........ sh:2 . t:5    &rrr_sh
9782d0c831SRichard Henderson@rrr_cf_d_sh    ...... r2:5 r1:5 cf:4 .... sh:2 . t:5   &rrr_cf_d_sh d=%d_5
9882d0c831SRichard Henderson@rrr_cf_d_sh0   ...... r2:5 r1:5 cf:4 ...... . t:5      &rrr_cf_d_sh d=%d_5 sh=0
990588e061SRichard Henderson@rri_cf         ...... r:5  t:5  cf:4 . ...........     &rri_cf i=%lowsign_11
10082d0c831SRichard Henderson@rri_cf_d       ...... r:5  t:5  cf:4 . ...........     \
10182d0c831SRichard Henderson                &rri_cf_d d=%d_11 i=%lowsign_11
1020c982a28SRichard Henderson
10301afb7beSRichard Henderson@rrb_cf         ...... r2:5 r1:5 c:3 ........... n:1 .  \
10401afb7beSRichard Henderson                &rrb_c_f disp=%assemble_12
105e9efd4bcSRichard Henderson@rrb_cdf        ...... r2:5 r1:5 c:3 ........... n:1 .  \
106e9efd4bcSRichard Henderson                &rrb_c_d_f disp=%assemble_12
10701afb7beSRichard Henderson@rib_cf         ...... r:5 ..... c:3 ........... n:1 .  \
10801afb7beSRichard Henderson                &rib_c_f disp=%assemble_12 i=%im5_16
109c65c3ee1SRichard Henderson@rib_cdf        ...... r:5 ..... c:3 ........... n:1 .  \
110c65c3ee1SRichard Henderson                &rib_c_d_f disp=%assemble_12 i=%im5_16
11101afb7beSRichard Henderson
112deee69a1SRichard Henderson####
11340f9f908SRichard Henderson# System
11440f9f908SRichard Henderson####
11540f9f908SRichard Henderson
11640f9f908SRichard Hendersonbreak           000000 ----- ----- --- 00000000 -----
117c603e14aSRichard Henderson
118c603e14aSRichard Hendersonmtsp            000000 ----- r:5   ... 11000001 00000   sp=%assemble_sr3
119c603e14aSRichard Hendersonmtctl           000000 t:5   r:5   --- 11000010 00000
120c603e14aSRichard Hendersonmtsarcm         000000 01011 r:5   --- 11000110 00000
121c603e14aSRichard Hendersonmtsm            000000 00000 r:5   000 11000011 00000
122c603e14aSRichard Henderson
123c603e14aSRichard Hendersonmfia            000000 ----- 00000 ---   10100101 t:5
124c603e14aSRichard Hendersonmfsp            000000 ----- 00000 ...   00100101 t:5   sp=%assemble_sr3
125c603e14aSRichard Hendersonmfctl           000000 r:5   00000- e:1 -01000101 t:5
126e36f27efSRichard Henderson
127e36f27efSRichard Hendersonsync            000000 ----- ----- 000 00100000 00000   # sync, syncdma
128e36f27efSRichard Henderson
129e36f27efSRichard Hendersonldsid           000000 b:5   ----- sp:2 0 10000101 t:5
130e36f27efSRichard Henderson
131e36f27efSRichard Hendersonrsm             000000 ..........  000 01110011 t:5     i=%sm_imm
132e36f27efSRichard Hendersonssm             000000 ..........  000 01101011 t:5     i=%sm_imm
133e36f27efSRichard Henderson
134e36f27efSRichard Hendersonrfi             000000 ----- ----- --- 01100000 00000
135e36f27efSRichard Hendersonrfi_r           000000 ----- ----- --- 01100101 00000
136deee69a1SRichard Henderson
13796927adbSRichard Henderson# These are artificial instructions used by QEMU firmware.
13896927adbSRichard Henderson# They are allocated from the unassigned instruction space.
13996927adbSRichard Hendersonhalt            1111 1111 1111 1101 1110 1010 1101 0000
14096927adbSRichard Hendersonreset           1111 1111 1111 1101 1110 1010 1101 0001
1414a4554c6SHelge Dellergetshadowregs   1111 1111 1111 1101 1110 1010 1101 0010
14296927adbSRichard Henderson
143deee69a1SRichard Henderson####
144deee69a1SRichard Henderson# Memory Management
145deee69a1SRichard Henderson####
146deee69a1SRichard Henderson
147deee69a1SRichard Henderson@addrx          ...... b:5 x:5 .. ........ m:1 .....    \
148deee69a1SRichard Henderson                &ldst disp=0 scale=0 t=0 sp=0 size=0
149deee69a1SRichard Henderson
150deee69a1SRichard Hendersonnop             000001 ----- ----- -- 11001010 0 -----         # fdc, disp
151deee69a1SRichard Hendersonnop_addrx       000001 ..... ..... -- 01001010 . -----  @addrx # fdc, index
152deee69a1SRichard Hendersonnop_addrx       000001 ..... ..... -- 01001011 . -----  @addrx # fdce
153ad1fdacdSSven Schnellefic             000001 ..... ..... --- 0001010 . -----  @addrx # fic 0x0a
154ad1fdacdSSven Schnellefic             000001 ..... ..... -- 01001111 . 00000  @addrx # fic 0x4f
155ad1fdacdSSven Schnellefic             000001 ..... ..... --- 0001011 . -----  @addrx # fice
156deee69a1SRichard Hendersonnop_addrx       000001 ..... ..... -- 01001110 . 00000  @addrx # pdc
157deee69a1SRichard Henderson
158deee69a1SRichard Hendersonprobe           000001 b:5 ri:5 sp:2 imm:1 100011 write:1 0 t:5
159deee69a1SRichard Henderson
1608577f354SRichard Henderson# pa1.x tlb insert instructions
161deee69a1SRichard Hendersonixtlbx          000001 b:5 r:5 sp:2 0100000 addr:1 0 00000      data=1
162deee69a1SRichard Hendersonixtlbx          000001 b:5 r:5 ... 000000 addr:1 0 00000        \
163deee69a1SRichard Henderson                sp=%assemble_sr3x data=0
164deee69a1SRichard Henderson
1656797c315SNick Hudson# pcxl and pcxl2 Fast TLB Insert instructions
1666797c315SNick Hudsonixtlbxf         000001 00000 r:5 00 0 data:1 01000 addr:1 0 00000
1676797c315SNick Hudson
1688577f354SRichard Henderson# pa2.0 tlb insert idtlbt and iitlbt instructions
1698577f354SRichard Hendersonixtlbt          000001 r2:5 r1:5 000 data:1 100000 0 00000    # idtlbt
1708577f354SRichard Henderson
171eb25d10fSHelge Deller# pdtlb, pitlb
172eb25d10fSHelge Dellerpxtlb           000001 b:5 x:5 sp:2 01001000 m:1 ----- \
173eb25d10fSHelge Deller                &ldst disp=0 scale=0 size=0 t=0
174eb25d10fSHelge Dellerpxtlb           000001 b:5 x:5 ...   0001000 m:1 ----- \
175eb25d10fSHelge Deller                &ldst disp=0 scale=0 size=0 t=0 sp=%assemble_sr3x
176eb25d10fSHelge Deller
177eb25d10fSHelge Deller# ... pa20 local
178eb25d10fSHelge Dellerpxtlb_l         000001 b:5 x:5 sp:2 01011000 m:1 ----- \
179eb25d10fSHelge Deller                &ldst disp=0 scale=0 size=0 t=0
180eb25d10fSHelge Dellerpxtlb_l         000001 b:5 x:5 ...   0011000 m:1 ----- \
181eb25d10fSHelge Deller                &ldst disp=0 scale=0 size=0 t=0 sp=%assemble_sr3x
182eb25d10fSHelge Deller
183eb25d10fSHelge Deller# pdtlbe, pitlbe
184eb25d10fSHelge Dellerpxtlbe          000001 b:5 x:5 sp:2 01001001 m:1 ----- \
185eb25d10fSHelge Deller                &ldst disp=0 scale=0 size=0 t=0
186eb25d10fSHelge Dellerpxtlbe          000001 b:5 x:5 ...   0001001 m:1 ----- \
187eb25d10fSHelge Deller                &ldst disp=0 scale=0 size=0 t=0 sp=%assemble_sr3x
188deee69a1SRichard Henderson
189deee69a1SRichard Hendersonlpa             000001 b:5 x:5 sp:2 01001101 m:1 t:5    \
190deee69a1SRichard Henderson                &ldst disp=0 scale=0 size=0
191deee69a1SRichard Henderson
192deee69a1SRichard Hendersonlci             000001 ----- ----- -- 01001100 0 t:5
1930c982a28SRichard Henderson
1940c982a28SRichard Henderson####
1950c982a28SRichard Henderson# Arith/Log
1960c982a28SRichard Henderson####
1970c982a28SRichard Henderson
198fa8e3bedSRichard Hendersonandcm           000010 ..... ..... .... 000000 . .....  @rrr_cf_d
199fa8e3bedSRichard Hendersonand             000010 ..... ..... .... 001000 . .....  @rrr_cf_d
200fa8e3bedSRichard Hendersonor              000010 ..... ..... .... 001001 . .....  @rrr_cf_d
201fa8e3bedSRichard Hendersonxor             000010 ..... ..... .... 001010 . .....  @rrr_cf_d
202af240753SRichard Hendersonuxor            000010 ..... ..... .... 001110 . .....  @rrr_cf_d
2030c982a28SRichard Hendersonds              000010 ..... ..... .... 010001 0 .....  @rrr_cf
204345aa35fSRichard Hendersoncmpclr          000010 ..... ..... .... 100010 . .....  @rrr_cf_d
205af240753SRichard Hendersonuaddcm          000010 ..... ..... .... 100110 . .....  @rrr_cf_d
206af240753SRichard Hendersonuaddcm_tc       000010 ..... ..... .... 100111 . .....  @rrr_cf_d
207af240753SRichard Hendersondcor            000010 ..... 00000 .... 101110 . .....  @rr_cf_d
208af240753SRichard Hendersondcor_i          000010 ..... 00000 .... 101111 . .....  @rr_cf_d
2090c982a28SRichard Henderson
210faf97ba1SRichard Hendersonadd             000010 ..... ..... .... 0110.. . .....  @rrr_cf_d_sh
211faf97ba1SRichard Hendersonadd_l           000010 ..... ..... .... 1010.. . .....  @rrr_cf_d_sh
212faf97ba1SRichard Hendersonadd_tsv         000010 ..... ..... .... 1110.. . .....  @rrr_cf_d_sh
2133bbb8e48SRichard Henderson{
214faf97ba1SRichard Henderson  add_c         000010 ..... ..... .... 011100 . .....  @rrr_cf_d_sh0
2153bbb8e48SRichard Henderson  hshladd       000010 ..... ..... 0000 0111.. 0 .....  @rrr_sh
2163bbb8e48SRichard Henderson}
217faf97ba1SRichard Hendersonadd_c_tsv       000010 ..... ..... .... 111100 . .....  @rrr_cf_d_sh0
2180c982a28SRichard Henderson
21963c427c6SRichard Hendersonsub             000010 ..... ..... .... 010000 . .....  @rrr_cf_d
22063c427c6SRichard Hendersonsub_tsv         000010 ..... ..... .... 110000 . .....  @rrr_cf_d
22163c427c6SRichard Hendersonsub_tc          000010 ..... ..... .... 010011 . .....  @rrr_cf_d
22263c427c6SRichard Hendersonsub_tsv_tc      000010 ..... ..... .... 110011 . .....  @rrr_cf_d
2233bbb8e48SRichard Henderson{
22463c427c6SRichard Henderson  sub_b         000010 ..... ..... .... 010100 . .....  @rrr_cf_d
2253bbb8e48SRichard Henderson  hshradd       000010 ..... ..... 0000 0101.. 0 .....  @rrr_sh
2263bbb8e48SRichard Henderson}
22763c427c6SRichard Hendersonsub_b_tsv       000010 ..... ..... .... 110100 . .....  @rrr_cf_d
2281cd012a5SRichard Henderson
2290588e061SRichard Hendersonldil            001000 t:5 .....................        i=%assemble_21
2300588e061SRichard Hendersonaddil           001010 r:5 .....................        i=%assemble_21
23172bace2dSRichard Hendersonldo             001101 b:5 t:5  ................        i=%assemble_16
2320588e061SRichard Henderson
2330588e061SRichard Hendersonaddi            101101 ..... ..... .... 0 ...........   @rri_cf
2340588e061SRichard Hendersonaddi_tsv        101101 ..... ..... .... 1 ...........   @rri_cf
2350588e061SRichard Hendersonaddi_tc         101100 ..... ..... .... 0 ...........   @rri_cf
2360588e061SRichard Hendersonaddi_tc_tsv     101100 ..... ..... .... 1 ...........   @rri_cf
2370588e061SRichard Henderson
2380588e061SRichard Hendersonsubi            100101 ..... ..... .... 0 ...........   @rri_cf
2390588e061SRichard Hendersonsubi_tsv        100101 ..... ..... .... 1 ...........   @rri_cf
2400588e061SRichard Henderson
241345aa35fSRichard Hendersoncmpiclr         100100 ..... ..... .... . ...........   @rri_cf_d
2420588e061SRichard Henderson
2430843563fSRichard Hendersonhadd            000010 ..... ..... 00000011 11 0 .....  @rrr
2440843563fSRichard Hendersonhadd_ss         000010 ..... ..... 00000011 01 0 .....  @rrr
2450843563fSRichard Hendersonhadd_us         000010 ..... ..... 00000011 00 0 .....  @rrr
2460843563fSRichard Henderson
2471b3cb7c8SRichard Hendersonhavg            000010 ..... ..... 00000010 11 0 .....  @rrr
2481b3cb7c8SRichard Henderson
249151f309bSRichard Hendersonhshl            111110 00000 r:5   100010 i:4  0 t:5    &rri
250151f309bSRichard Hendersonhshr_s          111110 r:5   00000 110011 i:4  0 t:5    &rri
251151f309bSRichard Hendersonhshr_u          111110 r:5   00000 110010 i:4  0 t:5    &rri
252151f309bSRichard Henderson
25310c9e58dSRichard Hendersonhsub            000010 ..... ..... 00000001 11 0 .....  @rrr
25410c9e58dSRichard Hendersonhsub_ss         000010 ..... ..... 00000001 01 0 .....  @rrr
25510c9e58dSRichard Hendersonhsub_us         000010 ..... ..... 00000001 00 0 .....  @rrr
25610c9e58dSRichard Henderson
257c2a7ee3fSRichard Hendersonmixh_l          111110 ..... ..... 1 00 00100000 .....  @rrr
258c2a7ee3fSRichard Hendersonmixh_r          111110 ..... ..... 1 10 00100000 .....  @rrr
259c2a7ee3fSRichard Hendersonmixw_l          111110 ..... ..... 1 00 00000000 .....  @rrr
260c2a7ee3fSRichard Hendersonmixw_r          111110 ..... ..... 1 10 00000000 .....  @rrr
261c2a7ee3fSRichard Henderson
2624e7abdb1SRichard Hendersonpermh           111110 r1:5  r2:5  0 c0:2 0 c1:2 c2:2 c3:2 0 t:5
2634e7abdb1SRichard Henderson
2641cd012a5SRichard Henderson####
2651cd012a5SRichard Henderson# Index Mem
2661cd012a5SRichard Henderson####
2671cd012a5SRichard Henderson
2681cd012a5SRichard Henderson@ldstx          ...... b:5 x:5 sp:2 scale:1 ....... m:1 t:5     &ldst disp=0
2691cd012a5SRichard Henderson@ldim5          ...... b:5 ..... sp:2 ......... t:5     \
2701cd012a5SRichard Henderson                &ldst disp=%im5_16 x=0 scale=0 m=%ma_to_m
2711cd012a5SRichard Henderson@stim5          ...... b:5 t:5 sp:2 ......... .....     \
2721cd012a5SRichard Henderson                &ldst disp=%im5_0 x=0 scale=0 m=%ma_to_m
2731cd012a5SRichard Henderson
2741cd012a5SRichard Hendersonld              000011 ..... ..... .. . 1 -- 00 size:2 ......   @ldim5
2751cd012a5SRichard Hendersonld              000011 ..... ..... .. . 0 -- 00 size:2 ......   @ldstx
2761cd012a5SRichard Hendersonst              000011 ..... ..... .. . 1 -- 10 size:2 ......   @stim5
2771cd012a5SRichard Hendersonldc             000011 ..... ..... .. . 1 -- 0111      ......   @ldim5 size=2
2781cd012a5SRichard Hendersonldc             000011 ..... ..... .. . 0 -- 0111      ......   @ldstx size=2
27951416c4eSRichard Hendersonldc             000011 ..... ..... .. . 1 -- 0101      ......   @ldim5 size=3
28051416c4eSRichard Hendersonldc             000011 ..... ..... .. . 0 -- 0101      ......   @ldstx size=3
2811cd012a5SRichard Hendersonlda             000011 ..... ..... .. . 1 -- 0110      ......   @ldim5 size=2
2821cd012a5SRichard Hendersonlda             000011 ..... ..... .. . 0 -- 0110      ......   @ldstx size=2
28351416c4eSRichard Hendersonlda             000011 ..... ..... .. . 1 -- 0100      ......   @ldim5 size=3
28451416c4eSRichard Hendersonlda             000011 ..... ..... .. . 0 -- 0100      ......   @ldstx size=3
2851cd012a5SRichard Hendersonsta             000011 ..... ..... .. . 1 -- 1110      ......   @stim5 size=2
28651416c4eSRichard Hendersonsta             000011 ..... ..... .. . 1 -- 1111      ......   @stim5 size=3
2871cd012a5SRichard Hendersonstby            000011 b:5 r:5 sp:2 a:1 1 -- 1100 m:1   .....   disp=%im5_0
28825460fc5SRichard Hendersonstdby           000011 b:5 r:5 sp:2 a:1 1 -- 1101 m:1   .....   disp=%im5_0
289b1e2af57SRichard Henderson
290e8777db7SRichard Henderson@fldstwx        ...... b:5 x:5   sp:2 scale:1 ....... m:1 ..... \
291e8777db7SRichard Henderson                &ldst t=%rt64 disp=0 size=2
292e8777db7SRichard Henderson@fldstwi        ...... b:5 ..... sp:2 .       ....... .   ..... \
293e8777db7SRichard Henderson                &ldst t=%rt64 disp=%im5_16 m=%ma_to_m x=0 scale=0 size=2
294e8777db7SRichard Henderson
295e8777db7SRichard Hendersonfldw            001001 ..... ..... .. . 0 -- 000 . . .....      @fldstwx
296e8777db7SRichard Hendersonfldw            001001 ..... ..... .. . 1 -- 000 . . .....      @fldstwi
297e8777db7SRichard Hendersonfstw            001001 ..... ..... .. . 0 -- 100 . . .....      @fldstwx
298e8777db7SRichard Hendersonfstw            001001 ..... ..... .. . 1 -- 100 . . .....      @fldstwi
299e8777db7SRichard Henderson
300e8777db7SRichard Henderson@fldstdx        ...... b:5 x:5   sp:2 scale:1 ....... m:1 t:5 \
301e8777db7SRichard Henderson                &ldst disp=0 size=3
302e8777db7SRichard Henderson@fldstdi        ...... b:5 ..... sp:2 .       ....... .   t:5 \
303e8777db7SRichard Henderson                &ldst disp=%im5_16 m=%ma_to_m x=0 scale=0 size=3
304e8777db7SRichard Henderson
305e8777db7SRichard Hendersonfldd            001011 ..... ..... .. . 0 -- 000 0 . .....      @fldstdx
306e8777db7SRichard Hendersonfldd            001011 ..... ..... .. . 1 -- 000 0 . .....      @fldstdi
307e8777db7SRichard Hendersonfstd            001011 ..... ..... .. . 0 -- 100 0 . .....      @fldstdx
308e8777db7SRichard Hendersonfstd            001011 ..... ..... .. . 1 -- 100 0 . .....      @fldstdi
309e8777db7SRichard Henderson
310b1e2af57SRichard Henderson####
311740038d7SRichard Henderson# Offset Mem
312740038d7SRichard Henderson####
313740038d7SRichard Henderson
3144768c28eSRichard Henderson@ldstim11       ...... b:5 t:5 ................          \
3154768c28eSRichard Henderson                &ldst sp=%assemble_sp disp=%assemble_11a \
3164768c28eSRichard Henderson                m=%ma2_to_m x=0 scale=0 size=3
31772bace2dSRichard Henderson@ldstim14       ...... b:5 t:5 ................          \
31872bace2dSRichard Henderson                &ldst sp=%assemble_sp disp=%assemble_16  \
31972bace2dSRichard Henderson                x=0 scale=0 m=0
32072bace2dSRichard Henderson@ldstim14m      ...... b:5 t:5 ................          \
32172bace2dSRichard Henderson                &ldst sp=%assemble_sp disp=%assemble_16  \
32272bace2dSRichard Henderson                x=0 scale=0 m=%neg_to_m
32346174e14SRichard Henderson@ldstim12m      ...... b:5 t:5 ................          \
32446174e14SRichard Henderson                &ldst sp=%assemble_sp disp=%assemble_12a \
32546174e14SRichard Henderson                x=0 scale=0 m=%pos_to_m
326740038d7SRichard Henderson
327740038d7SRichard Henderson# LDB, LDH, LDW, LDWM
328740038d7SRichard Hendersonld              010000 ..... ..... .. ..............    @ldstim14  size=0
329740038d7SRichard Hendersonld              010001 ..... ..... .. ..............    @ldstim14  size=1
330740038d7SRichard Hendersonld              010010 ..... ..... .. ..............    @ldstim14  size=2
331740038d7SRichard Hendersonld              010011 ..... ..... .. ..............    @ldstim14m size=2
332740038d7SRichard Hendersonld              010111 ..... ..... .. ...........10.    @ldstim12m size=2
333740038d7SRichard Henderson
334740038d7SRichard Henderson# STB, STH, STW, STWM
335740038d7SRichard Hendersonst              011000 ..... ..... .. ..............    @ldstim14  size=0
336740038d7SRichard Hendersonst              011001 ..... ..... .. ..............    @ldstim14  size=1
337740038d7SRichard Hendersonst              011010 ..... ..... .. ..............    @ldstim14  size=2
338740038d7SRichard Hendersonst              011011 ..... ..... .. ..............    @ldstim14m size=2
339740038d7SRichard Hendersonst              011111 ..... ..... .. ...........10.    @ldstim12m size=2
340740038d7SRichard Henderson
34146174e14SRichard Hendersonfldw            010110 b:5 ..... ................        \
34246174e14SRichard Henderson                &ldst disp=%assemble_12a sp=%assemble_sp \
34346174e14SRichard Henderson                t=%rm64 m=%a_to_m x=0 scale=0 size=2
34446174e14SRichard Hendersonfldw            010111 b:5 ..... .............0..        \
34546174e14SRichard Henderson                &ldst disp=%assemble_12a sp=%assemble_sp \
34646174e14SRichard Henderson                t=%rm64 m=0 x=0 scale=0 size=2
347740038d7SRichard Henderson
34846174e14SRichard Hendersonfstw            011110 b:5 ..... ................        \
34946174e14SRichard Henderson                &ldst disp=%assemble_12a sp=%assemble_sp \
35046174e14SRichard Henderson                t=%rm64 m=%a_to_m x=0 scale=0 size=2
35146174e14SRichard Hendersonfstw            011111 b:5 ..... .............0..        \
35246174e14SRichard Henderson                &ldst disp=%assemble_12a sp=%assemble_sp \
35346174e14SRichard Henderson                t=%rm64 m=0 x=0 scale=0 size=2
354740038d7SRichard Henderson
35551416c4eSRichard Hendersonld              010100 ..... ..... .. ............0.    @ldstim11
35651416c4eSRichard Hendersonfldd            010100 ..... ..... .. ............1.    @ldstim11
357740038d7SRichard Henderson
35851416c4eSRichard Hendersonst              011100 ..... ..... .. ............0.    @ldstim11
35951416c4eSRichard Hendersonfstd            011100 ..... ..... .. ............1.    @ldstim11
360740038d7SRichard Henderson
361740038d7SRichard Henderson####
362b1e2af57SRichard Henderson# Floating-point Multiply Add
363b1e2af57SRichard Henderson####
364b1e2af57SRichard Henderson
365b1e2af57SRichard Henderson&mpyadd         rm1 rm2 ta ra tm
366b1e2af57SRichard Henderson@mpyadd         ...... rm1:5 rm2:5 ta:5 ra:5 . tm:5     &mpyadd
367b1e2af57SRichard Henderson
368b1e2af57SRichard Hendersonfmpyadd_f       000110 ..... ..... ..... ..... 0 .....  @mpyadd
369b1e2af57SRichard Hendersonfmpyadd_d       000110 ..... ..... ..... ..... 1 .....  @mpyadd
370b1e2af57SRichard Hendersonfmpysub_f       100110 ..... ..... ..... ..... 0 .....  @mpyadd
371b1e2af57SRichard Hendersonfmpysub_d       100110 ..... ..... ..... ..... 1 .....  @mpyadd
37201afb7beSRichard Henderson
37301afb7beSRichard Henderson####
37401afb7beSRichard Henderson# Conditional Branches
37501afb7beSRichard Henderson####
37601afb7beSRichard Henderson
37782d0c831SRichard Hendersonbb_sar          110000 00000 r:5 c:1 1 . ........... n:1 . \
37882d0c831SRichard Henderson                disp=%assemble_12 d=%d_13
37982d0c831SRichard Hendersonbb_imm          110001 p:5   r:5 c:1 1 . ........... n:1 . \
38082d0c831SRichard Henderson                disp=%assemble_12 d=%d_13
38101afb7beSRichard Henderson
38201afb7beSRichard Hendersonmovb            110010 ..... ..... ... ........... . .  @rrb_cf f=0
38301afb7beSRichard Hendersonmovbi           110011 ..... ..... ... ........... . .  @rib_cf f=0
38401afb7beSRichard Henderson
385e9efd4bcSRichard Hendersoncmpb            100000 ..... ..... ... ........... . .  @rrb_cdf d=0 f=0
386e9efd4bcSRichard Hendersoncmpb            100010 ..... ..... ... ........... . .  @rrb_cdf d=0 f=1
387e9efd4bcSRichard Hendersoncmpb            100111 ..... ..... ... ........... . .  @rrb_cdf d=1 f=0
388e9efd4bcSRichard Hendersoncmpb            101111 ..... ..... ... ........... . .  @rrb_cdf d=1 f=1
389c65c3ee1SRichard Hendersoncmpbi           100001 ..... ..... ... ........... . .  @rib_cdf d=0 f=0
390c65c3ee1SRichard Hendersoncmpbi           100011 ..... ..... ... ........... . .  @rib_cdf d=0 f=1
391c65c3ee1SRichard Hendersoncmpbi           111011 r:5 ..... f:1 .. ........... n:1 . \
392c65c3ee1SRichard Henderson                &rib_c_d_f d=1 disp=%assemble_12 c=%cmpbid_c i=%im5_16
39301afb7beSRichard Henderson
39401afb7beSRichard Hendersonaddb            101000 ..... ..... ... ........... . .  @rrb_cf f=0
39501afb7beSRichard Hendersonaddb            101010 ..... ..... ... ........... . .  @rrb_cf f=1
39601afb7beSRichard Hendersonaddbi           101001 ..... ..... ... ........... . .  @rib_cf f=0
39701afb7beSRichard Hendersonaddbi           101011 ..... ..... ... ........... . .  @rib_cf f=1
39830878590SRichard Henderson
39930878590SRichard Henderson####
40030878590SRichard Henderson# Shift, Extract, Deposit
40130878590SRichard Henderson####
40230878590SRichard Henderson
403f7b775a9SRichard Hendersonshrp_sar        110100 r2:5 r1:5 c:3 00 0 d:1 0000  t:5
404f7b775a9SRichard Hendersonshrp_imm        110100 r2:5 r1:5 c:3 01 0 cpos:5    t:5       d=0
405f7b775a9SRichard Hendersonshrp_imm        110100 r2:5 r1:5 c:3 0. 1 .....  t:5          \
406f7b775a9SRichard Henderson                d=1 cpos=%cpos6_11
40730878590SRichard Henderson
408bd792da3SRichard Hendersonextr_sar        110100 r:5  t:5  c:3 10 se:1 00 000 .....     d=0 len=%len5
409bd792da3SRichard Hendersonextr_sar        110100 r:5  t:5  c:3 10 se:1 1. 000 .....     d=1 len=%len6_8
410bd792da3SRichard Hendersonextr_imm        110100 r:5  t:5  c:3 11 se:1 pos:5  .....     d=0 len=%len5
411bd792da3SRichard Hendersonextr_imm        110110 r:5  t:5  c:3 .. se:1 ..... .....      \
412bd792da3SRichard Henderson                d=1 len=%len6_12 pos=%cpos6_11
41330878590SRichard Henderson
41472ae4f2bSRichard Hendersondep_sar         110101 t:5 r:5   c:3 00 nz:1 00 000 .....     d=0 len=%len5
41572ae4f2bSRichard Hendersondep_sar         110101 t:5 r:5   c:3 00 nz:1 1. 000 .....     d=1 len=%len6_8
41672ae4f2bSRichard Hendersondep_imm         110101 t:5 r:5   c:3 01 nz:1 cpos:5 .....     d=0 len=%len5
41772ae4f2bSRichard Hendersondep_imm         111100 t:5 r:5   c:3 .. nz:1 ..... .....      \
41872ae4f2bSRichard Henderson                d=1 len=%len6_12 cpos=%cpos6_11
41972ae4f2bSRichard Hendersondepi_sar        110101 t:5 ..... c:3 10 nz:1 d:1 . 000 .....  \
42072ae4f2bSRichard Henderson                i=%im5_16 len=%len6_8
42172ae4f2bSRichard Hendersondepi_imm        110101 t:5 ..... c:3 11 nz:1 cpos:5 .....     \
42272ae4f2bSRichard Henderson                d=0 i=%im5_16 len=%len5
42372ae4f2bSRichard Hendersondepi_imm        111101 t:5 ..... c:3 .. nz:1 ..... .....      \
42472ae4f2bSRichard Henderson                d=1 i=%im5_16 len=%len6_12 cpos=%cpos6_11
4258340f534SRichard Henderson
4268340f534SRichard Henderson####
4278340f534SRichard Henderson# Branch External
4288340f534SRichard Henderson####
4298340f534SRichard Henderson
4308340f534SRichard Henderson&BE             b l n disp sp
4318340f534SRichard Henderson@be             ...... b:5 ..... ... ........... n:1 .  \
4328340f534SRichard Henderson                &BE disp=%assemble_17 sp=%assemble_sr3
4338340f534SRichard Henderson
4348340f534SRichard Hendersonbe              111000 ..... ..... ... ........... . .  @be l=0
4358340f534SRichard Hendersonbe              111001 ..... ..... ... ........... . .  @be l=31
4368340f534SRichard Henderson
4378340f534SRichard Henderson####
4388340f534SRichard Henderson# Branch
4398340f534SRichard Henderson####
4408340f534SRichard Henderson
4418340f534SRichard Henderson&BL             l n disp
4428340f534SRichard Henderson@bl             ...... l:5 ..... ... ........... n:1 .  &BL disp=%assemble_17
4438340f534SRichard Henderson
4448340f534SRichard Henderson# B,L and B,L,PUSH
4458340f534SRichard Hendersonbl              111010 ..... ..... 000 ........... .   .        @bl
4468340f534SRichard Hendersonbl              111010 ..... ..... 100 ........... .   .        @bl
4478340f534SRichard Henderson# B,L (long displacement)
4488340f534SRichard Hendersonbl              111010 ..... ..... 101 ........... n:1 .        &BL l=2 \
4498340f534SRichard Henderson                disp=%assemble_22
4508340f534SRichard Hendersonb_gate          111010 ..... ..... 001 ........... .   .        @bl
4518340f534SRichard Hendersonblr             111010 l:5   x:5   010 00000000000 n:1 0
452a8966ba7SRichard Hendersonnopbts          111010 00000 00000 010 0---------1   0 1    # clrbts/popbts
453a8966ba7SRichard Hendersonnopbts          111010 00000 ----- 010 00000000000   0 1    # pushbts/pushnom
4548340f534SRichard Hendersonbv              111010 b:5   x:5   110 00000000000 n:1 0
4558340f534SRichard Hendersonbve             111010 b:5   00000 110 10000000000 n:1 -        l=0
4568340f534SRichard Hendersonbve             111010 b:5   00000 111 10000000000 n:1 -        l=2
457c3bad4f8SRichard Henderson
458c3bad4f8SRichard Henderson####
459c3bad4f8SRichard Henderson# FP Fused Multiple-Add
460c3bad4f8SRichard Henderson####
461c3bad4f8SRichard Henderson
462c3bad4f8SRichard Hendersonfmpyfadd_f      101110 ..... ..... ... . 0 ... . . neg:1 ..... \
463c3bad4f8SRichard Henderson                rm1=%ra64 rm2=%rb64 ra3=%rc64 t=%rt64
464c3bad4f8SRichard Hendersonfmpyfadd_d      101110 rm1:5 rm2:5 ... 0 1 ..0 0 0 neg:1 t:5    ra3=%rc32
4651ca74648SRichard Henderson
4661ca74648SRichard Henderson####
4671ca74648SRichard Henderson# FP operations
4681ca74648SRichard Henderson####
4691ca74648SRichard Henderson
4701ca74648SRichard Henderson&fclass01       r t
4711ca74648SRichard Henderson&fclass2        r1 r2 c y
4721ca74648SRichard Henderson&fclass3        r1 r2 t
4731ca74648SRichard Henderson
4741ca74648SRichard Henderson@f0c_0          ...... r:5  00000 ..... 00 000 0 t:5    &fclass01
4751ca74648SRichard Henderson@f0c_1          ...... r:5  000.. ..... 01 000 0 t:5    &fclass01
4761ca74648SRichard Henderson@f0c_2          ...... r1:5 r2:5 y:3 .. 10 000 . c:5    &fclass2
4771ca74648SRichard Henderson@f0c_3          ...... r1:5 r2:5  ..... 11 000 0 t:5    &fclass3
4781ca74648SRichard Henderson
4791ca74648SRichard Henderson@f0e_f_0        ...... ..... 00000 ... 0 0 000 .. 0 .....  \
4801ca74648SRichard Henderson                &fclass01 r=%ra64 t=%rt64
4811ca74648SRichard Henderson@f0e_d_0        ...... r:5   00000 ... 0 1 000 00 0 t:5    &fclass01
4821ca74648SRichard Henderson
4831ca74648SRichard Henderson@f0e_ff_1       ...... ..... 000  ... 0000 010 .. 0 .....  \
4841ca74648SRichard Henderson                &fclass01 r=%ra64 t=%rt64
4851ca74648SRichard Henderson@f0e_fd_1       ...... ..... 000  ... 0100 010 .0 0 t:5    &fclass01 r=%ra64
4861ca74648SRichard Henderson@f0e_df_1       ...... r:5   000  ... 0001 010 0. 0 .....  &fclass01 t=%rt64
4871ca74648SRichard Henderson@f0e_dd_1       ...... r:5   000  ... 0101 010 00 0 t:5    &fclass01
4881ca74648SRichard Henderson
4891ca74648SRichard Henderson@f0e_f_2        ...... ..... ..... y:3 .0 100 .00 c:5      \
4901ca74648SRichard Henderson                &fclass2 r1=%ra64 r2=%rb64
4911ca74648SRichard Henderson@f0e_d_2        ...... r1:5  r2:5  y:3 01 100 000 c:5      &fclass2
4921ca74648SRichard Henderson
4931ca74648SRichard Henderson@f0e_f_3        ...... ..... ..... ... .0 110 ..0 .....    \
4941ca74648SRichard Henderson                &fclass3 r1=%ra64 r2=%rb64 t=%rt64
4950843563fSRichard Henderson@f0e_d_3        ...... r1:5  r2:5  ... 01 110 000 t:5      &fclass3
4961ca74648SRichard Henderson
4971ca74648SRichard Henderson# Floating point class 0
4981ca74648SRichard Henderson
49959f8c04bSHelge Dellerfid_f           001100 00000 00000 000 00 000000 00000
5001ca74648SRichard Henderson
5011ca74648SRichard Hendersonfcpy_f          001100 ..... ..... 010 00 ...... .....  @f0c_0
5021ca74648SRichard Hendersonfabs_f          001100 ..... ..... 011 00 ...... .....  @f0c_0
5031ca74648SRichard Hendersonfsqrt_f         001100 ..... ..... 100 00 ...... .....  @f0c_0
5041ca74648SRichard Hendersonfrnd_f          001100 ..... ..... 101 00 ...... .....  @f0c_0
5051ca74648SRichard Hendersonfneg_f          001100 ..... ..... 110 00 ...... .....  @f0c_0
5061ca74648SRichard Hendersonfnegabs_f       001100 ..... ..... 111 00 ...... .....  @f0c_0
5071ca74648SRichard Henderson
5081ca74648SRichard Hendersonfcpy_d          001100 ..... ..... 010 01 ...... .....  @f0c_0
5091ca74648SRichard Hendersonfabs_d          001100 ..... ..... 011 01 ...... .....  @f0c_0
5101ca74648SRichard Hendersonfsqrt_d         001100 ..... ..... 100 01 ...... .....  @f0c_0
5111ca74648SRichard Hendersonfrnd_d          001100 ..... ..... 101 01 ...... .....  @f0c_0
5121ca74648SRichard Hendersonfneg_d          001100 ..... ..... 110 01 ...... .....  @f0c_0
5131ca74648SRichard Hendersonfnegabs_d       001100 ..... ..... 111 01 ...... .....  @f0c_0
5141ca74648SRichard Henderson
5151ca74648SRichard Hendersonfcpy_f          001110 ..... ..... 010 ........ .....   @f0e_f_0
5161ca74648SRichard Hendersonfabs_f          001110 ..... ..... 011 ........ .....   @f0e_f_0
5171ca74648SRichard Hendersonfsqrt_f         001110 ..... ..... 100 ........ .....   @f0e_f_0
5181ca74648SRichard Hendersonfrnd_f          001110 ..... ..... 101 ........ .....   @f0e_f_0
5191ca74648SRichard Hendersonfneg_f          001110 ..... ..... 110 ........ .....   @f0e_f_0
5201ca74648SRichard Hendersonfnegabs_f       001110 ..... ..... 111 ........ .....   @f0e_f_0
5211ca74648SRichard Henderson
5221ca74648SRichard Hendersonfcpy_d          001110 ..... ..... 010 ........ .....   @f0e_d_0
5231ca74648SRichard Hendersonfabs_d          001110 ..... ..... 011 ........ .....   @f0e_d_0
5241ca74648SRichard Hendersonfsqrt_d         001110 ..... ..... 100 ........ .....   @f0e_d_0
5251ca74648SRichard Hendersonfrnd_d          001110 ..... ..... 101 ........ .....   @f0e_d_0
5261ca74648SRichard Hendersonfneg_d          001110 ..... ..... 110 ........ .....   @f0e_d_0
5271ca74648SRichard Hendersonfnegabs_d       001110 ..... ..... 111 ........ .....   @f0e_d_0
5281ca74648SRichard Henderson
5291ca74648SRichard Henderson# Floating point class 1
5301ca74648SRichard Henderson
5311ca74648SRichard Henderson# float/float
5321ca74648SRichard Hendersonfcnv_d_f        001100 ..... ... 000 00 01 ...... ..... @f0c_1
5331ca74648SRichard Hendersonfcnv_f_d        001100 ..... ... 000 01 00 ...... ..... @f0c_1
5341ca74648SRichard Henderson
5351ca74648SRichard Hendersonfcnv_d_f        001110 ..... ... 000 .......... .....   @f0e_df_1
5361ca74648SRichard Hendersonfcnv_f_d        001110 ..... ... 000 .......... .....   @f0e_fd_1
5371ca74648SRichard Henderson
5381ca74648SRichard Henderson# int/float
5391ca74648SRichard Hendersonfcnv_w_f        001100 ..... ... 001 00 00 ...... ..... @f0c_1
5401ca74648SRichard Hendersonfcnv_q_f        001100 ..... ... 001 00 01 ...... ..... @f0c_1
5411ca74648SRichard Hendersonfcnv_w_d        001100 ..... ... 001 01 00 ...... ..... @f0c_1
5421ca74648SRichard Hendersonfcnv_q_d        001100 ..... ... 001 01 01 ...... ..... @f0c_1
5431ca74648SRichard Henderson
5441ca74648SRichard Hendersonfcnv_w_f        001110 ..... ... 001 .......... .....   @f0e_ff_1
5451ca74648SRichard Hendersonfcnv_q_f        001110 ..... ... 001 .......... .....   @f0e_df_1
5461ca74648SRichard Hendersonfcnv_w_d        001110 ..... ... 001 .......... .....   @f0e_fd_1
5471ca74648SRichard Hendersonfcnv_q_d        001110 ..... ... 001 .......... .....   @f0e_dd_1
5481ca74648SRichard Henderson
5491ca74648SRichard Henderson# float/int
5501ca74648SRichard Hendersonfcnv_f_w        001100 ..... ... 010 00 00 ...... ..... @f0c_1
5511ca74648SRichard Hendersonfcnv_d_w        001100 ..... ... 010 00 01 ...... ..... @f0c_1
5521ca74648SRichard Hendersonfcnv_f_q        001100 ..... ... 010 01 00 ...... ..... @f0c_1
5531ca74648SRichard Hendersonfcnv_d_q        001100 ..... ... 010 01 01 ...... ..... @f0c_1
5541ca74648SRichard Henderson
5551ca74648SRichard Hendersonfcnv_f_w        001110 ..... ... 010 .......... .....   @f0e_ff_1
5561ca74648SRichard Hendersonfcnv_d_w        001110 ..... ... 010 .......... .....   @f0e_df_1
5571ca74648SRichard Hendersonfcnv_f_q        001110 ..... ... 010 .......... .....   @f0e_fd_1
5581ca74648SRichard Hendersonfcnv_d_q        001110 ..... ... 010 .......... .....   @f0e_dd_1
5591ca74648SRichard Henderson
5601ca74648SRichard Henderson# float/int truncate
5611ca74648SRichard Hendersonfcnv_t_f_w      001100 ..... ... 011 00 00 ...... ..... @f0c_1
5621ca74648SRichard Hendersonfcnv_t_d_w      001100 ..... ... 011 00 01 ...... ..... @f0c_1
5631ca74648SRichard Hendersonfcnv_t_f_q      001100 ..... ... 011 01 00 ...... ..... @f0c_1
5641ca74648SRichard Hendersonfcnv_t_d_q      001100 ..... ... 011 01 01 ...... ..... @f0c_1
5651ca74648SRichard Henderson
5661ca74648SRichard Hendersonfcnv_t_f_w      001110 ..... ... 011 .......... .....   @f0e_ff_1
5671ca74648SRichard Hendersonfcnv_t_d_w      001110 ..... ... 011 .......... .....   @f0e_df_1
5681ca74648SRichard Hendersonfcnv_t_f_q      001110 ..... ... 011 .......... .....   @f0e_fd_1
5691ca74648SRichard Hendersonfcnv_t_d_q      001110 ..... ... 011 .......... .....   @f0e_dd_1
5701ca74648SRichard Henderson
5711ca74648SRichard Henderson# uint/float
5721ca74648SRichard Hendersonfcnv_uw_f       001100 ..... ... 101 00 00 ...... ..... @f0c_1
5731ca74648SRichard Hendersonfcnv_uq_f       001100 ..... ... 101 00 01 ...... ..... @f0c_1
5741ca74648SRichard Hendersonfcnv_uw_d       001100 ..... ... 101 01 00 ...... ..... @f0c_1
5751ca74648SRichard Hendersonfcnv_uq_d       001100 ..... ... 101 01 01 ...... ..... @f0c_1
5761ca74648SRichard Henderson
5771ca74648SRichard Hendersonfcnv_uw_f       001110 ..... ... 101 .......... .....   @f0e_ff_1
5781ca74648SRichard Hendersonfcnv_uq_f       001110 ..... ... 101 .......... .....   @f0e_df_1
5791ca74648SRichard Hendersonfcnv_uw_d       001110 ..... ... 101 .......... .....   @f0e_fd_1
5801ca74648SRichard Hendersonfcnv_uq_d       001110 ..... ... 101 .......... .....   @f0e_dd_1
5811ca74648SRichard Henderson
5821ca74648SRichard Henderson# float/int
5831ca74648SRichard Hendersonfcnv_f_uw       001100 ..... ... 110 00 00 ...... ..... @f0c_1
5841ca74648SRichard Hendersonfcnv_d_uw       001100 ..... ... 110 00 01 ...... ..... @f0c_1
5851ca74648SRichard Hendersonfcnv_f_uq       001100 ..... ... 110 01 00 ...... ..... @f0c_1
5861ca74648SRichard Hendersonfcnv_d_uq       001100 ..... ... 110 01 01 ...... ..... @f0c_1
5871ca74648SRichard Henderson
5881ca74648SRichard Hendersonfcnv_f_uw       001110 ..... ... 110 .......... .....   @f0e_ff_1
5891ca74648SRichard Hendersonfcnv_d_uw       001110 ..... ... 110 .......... .....   @f0e_df_1
5901ca74648SRichard Hendersonfcnv_f_uq       001110 ..... ... 110 .......... .....   @f0e_fd_1
5911ca74648SRichard Hendersonfcnv_d_uq       001110 ..... ... 110 .......... .....   @f0e_dd_1
5921ca74648SRichard Henderson
5931ca74648SRichard Henderson# float/int truncate
5941ca74648SRichard Hendersonfcnv_t_f_uw     001100 ..... ... 111 00 00 ...... ..... @f0c_1
5951ca74648SRichard Hendersonfcnv_t_d_uw     001100 ..... ... 111 00 01 ...... ..... @f0c_1
5961ca74648SRichard Hendersonfcnv_t_f_uq     001100 ..... ... 111 01 00 ...... ..... @f0c_1
5971ca74648SRichard Hendersonfcnv_t_d_uq     001100 ..... ... 111 01 01 ...... ..... @f0c_1
5981ca74648SRichard Henderson
5991ca74648SRichard Hendersonfcnv_t_f_uw     001110 ..... ... 111 .......... .....   @f0e_ff_1
6001ca74648SRichard Hendersonfcnv_t_d_uw     001110 ..... ... 111 .......... .....   @f0e_df_1
6011ca74648SRichard Hendersonfcnv_t_f_uq     001110 ..... ... 111 .......... .....   @f0e_fd_1
6021ca74648SRichard Hendersonfcnv_t_d_uq     001110 ..... ... 111 .......... .....   @f0e_dd_1
6031ca74648SRichard Henderson
6041ca74648SRichard Henderson# Floating point class 2
6051ca74648SRichard Henderson
6061ca74648SRichard Hendersonftest           001100 00000 00000 y:3 00 10000 1 c:5
6071ca74648SRichard Henderson
6081ca74648SRichard Hendersonfcmp_f          001100 ..... ..... ... 00 ..... 0 ..... @f0c_2
6091ca74648SRichard Hendersonfcmp_d          001100 ..... ..... ... 01 ..... 0 ..... @f0c_2
6101ca74648SRichard Henderson
6111ca74648SRichard Hendersonfcmp_f          001110 ..... ..... ... ..... ... .....  @f0e_f_2
6121ca74648SRichard Hendersonfcmp_d          001110 ..... ..... ... ..... ... .....  @f0e_d_2
6131ca74648SRichard Henderson
6141ca74648SRichard Henderson# Floating point class 3
6151ca74648SRichard Henderson
6161ca74648SRichard Hendersonfadd_f          001100 ..... ..... 000 00 ...... .....  @f0c_3
6171ca74648SRichard Hendersonfsub_f          001100 ..... ..... 001 00 ...... .....  @f0c_3
6181ca74648SRichard Hendersonfmpy_f          001100 ..... ..... 010 00 ...... .....  @f0c_3
6191ca74648SRichard Hendersonfdiv_f          001100 ..... ..... 011 00 ...... .....  @f0c_3
6201ca74648SRichard Henderson
6211ca74648SRichard Hendersonfadd_d          001100 ..... ..... 000 01 ...... .....  @f0c_3
6221ca74648SRichard Hendersonfsub_d          001100 ..... ..... 001 01 ...... .....  @f0c_3
6231ca74648SRichard Hendersonfmpy_d          001100 ..... ..... 010 01 ...... .....  @f0c_3
6241ca74648SRichard Hendersonfdiv_d          001100 ..... ..... 011 01 ...... .....  @f0c_3
6251ca74648SRichard Henderson
6261ca74648SRichard Hendersonfadd_f          001110 ..... ..... 000 ..... ... .....  @f0e_f_3
6271ca74648SRichard Hendersonfsub_f          001110 ..... ..... 001 ..... ... .....  @f0e_f_3
6281ca74648SRichard Hendersonfmpy_f          001110 ..... ..... 010 ..... ... .....  @f0e_f_3
6291ca74648SRichard Hendersonfdiv_f          001110 ..... ..... 011 ..... ... .....  @f0e_f_3
6301ca74648SRichard Henderson
6311ca74648SRichard Hendersonfadd_d          001110 ..... ..... 000 ..... ... .....  @f0e_d_3
6321ca74648SRichard Hendersonfsub_d          001110 ..... ..... 001 ..... ... .....  @f0e_d_3
6331ca74648SRichard Hendersonfmpy_d          001110 ..... ..... 010 ..... ... .....  @f0e_d_3
6341ca74648SRichard Hendersonfdiv_d          001110 ..... ..... 011 ..... ... .....  @f0e_d_3
6351ca74648SRichard Henderson
6361ca74648SRichard Hendersonxmpyu           001110 ..... ..... 010 .0111 .00 t:5    r1=%ra64 r2=%rb64
63715da177bSSven Schnelle
63815da177bSSven Schnelle# diag
63938193127SRichard Henderson{
64038193127SRichard Henderson  [
64138193127SRichard Henderson    diag_btlb               000101 00 0000 0000 0000 0001 0000 0000
64238193127SRichard Henderson    diag_cout               000101 00 0000 0000 0000 0001 0000 0001
643*3bdf2081SHelge Deller
644*3bdf2081SHelge Deller    # For 32-bit PA-7300LC (PCX-L2)
645*3bdf2081SHelge Deller    diag_getshadowregs_pa1  000101 00 0000 0000 0001 1010 0000 0000
646*3bdf2081SHelge Deller    diag_putshadowregs_pa1  000101 00 0000 0000 0001 1010 0100 0000
647*3bdf2081SHelge Deller
648*3bdf2081SHelge Deller    # For 64-bit PA8700 (PCX-W2)
649*3bdf2081SHelge Deller    diag_getshadowregs_pa2  000101 00 0111 1000 0001 1000 0100 0000
650*3bdf2081SHelge Deller    diag_putshadowregs_pa2  000101 00 0111 0000 0001 1000 0100 0000
65138193127SRichard Henderson  ]
65238193127SRichard Henderson  diag_unimp                000101 i:26
65338193127SRichard Henderson}
654