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 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 42c3bad4f8SRichard Henderson%ra64 7:1 21:5 43c3bad4f8SRichard Henderson%rb64 12:1 16:5 44c3bad4f8SRichard Henderson%rc64 8:1 13:3 9:2 45c3bad4f8SRichard 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 62af240753SRichard Henderson&rr_cf_d t r cf d 630c982a28SRichard Henderson&rrr_cf t r1 r2 cf 64fa8e3bedSRichard Henderson&rrr_cf_d t r1 r2 cf d 65faf97ba1SRichard Henderson&rrr_cf_d_sh t r1 r2 cf d sh 660588e061SRichard Henderson&rri_cf t r i cf 67345aa35fSRichard Henderson&rri_cf_d t r i cf d 680c982a28SRichard Henderson 6901afb7beSRichard Henderson&rrb_c_f disp n c f r1 r2 7001afb7beSRichard Henderson&rib_c_f disp n c f r i 7101afb7beSRichard Henderson 720c982a28SRichard Henderson#### 730c982a28SRichard Henderson# Format definitions 740c982a28SRichard Henderson#### 750c982a28SRichard Henderson 76af240753SRichard Henderson@rr_cf_d ...... r:5 ..... cf:4 ...... d:1 t:5 &rr_cf_d 770c982a28SRichard Henderson@rrr_cf ...... r2:5 r1:5 cf:4 ....... t:5 &rrr_cf 78fa8e3bedSRichard Henderson@rrr_cf_d ...... r2:5 r1:5 cf:4 ...... d:1 t:5 &rrr_cf_d 79faf97ba1SRichard Henderson@rrr_cf_d_sh ...... r2:5 r1:5 cf:4 .... sh:2 d:1 t:5 &rrr_cf_d_sh 80faf97ba1SRichard Henderson@rrr_cf_d_sh0 ...... r2:5 r1:5 cf:4 ...... d:1 t:5 &rrr_cf_d_sh sh=0 810588e061SRichard Henderson@rri_cf ...... r:5 t:5 cf:4 . ........... &rri_cf i=%lowsign_11 82345aa35fSRichard Henderson@rri_cf_d ...... r:5 t:5 cf:4 d:1 ........... &rri_cf_d i=%lowsign_11 830c982a28SRichard Henderson 8401afb7beSRichard Henderson@rrb_cf ...... r2:5 r1:5 c:3 ........... n:1 . \ 8501afb7beSRichard Henderson &rrb_c_f disp=%assemble_12 8601afb7beSRichard Henderson@rib_cf ...... r:5 ..... c:3 ........... n:1 . \ 8701afb7beSRichard Henderson &rib_c_f disp=%assemble_12 i=%im5_16 8801afb7beSRichard Henderson 89deee69a1SRichard Henderson#### 9040f9f908SRichard Henderson# System 9140f9f908SRichard Henderson#### 9240f9f908SRichard Henderson 9340f9f908SRichard Hendersonbreak 000000 ----- ----- --- 00000000 ----- 94c603e14aSRichard Henderson 95c603e14aSRichard Hendersonmtsp 000000 ----- r:5 ... 11000001 00000 sp=%assemble_sr3 96c603e14aSRichard Hendersonmtctl 000000 t:5 r:5 --- 11000010 00000 97c603e14aSRichard Hendersonmtsarcm 000000 01011 r:5 --- 11000110 00000 98c603e14aSRichard Hendersonmtsm 000000 00000 r:5 000 11000011 00000 99c603e14aSRichard Henderson 100c603e14aSRichard Hendersonmfia 000000 ----- 00000 --- 10100101 t:5 101c603e14aSRichard Hendersonmfsp 000000 ----- 00000 ... 00100101 t:5 sp=%assemble_sr3 102c603e14aSRichard Hendersonmfctl 000000 r:5 00000- e:1 -01000101 t:5 103e36f27efSRichard Henderson 104e36f27efSRichard Hendersonsync 000000 ----- ----- 000 00100000 00000 # sync, syncdma 105e36f27efSRichard Henderson 106e36f27efSRichard Hendersonldsid 000000 b:5 ----- sp:2 0 10000101 t:5 107e36f27efSRichard Henderson 108e36f27efSRichard Hendersonrsm 000000 .......... 000 01110011 t:5 i=%sm_imm 109e36f27efSRichard Hendersonssm 000000 .......... 000 01101011 t:5 i=%sm_imm 110e36f27efSRichard Henderson 111e36f27efSRichard Hendersonrfi 000000 ----- ----- --- 01100000 00000 112e36f27efSRichard Hendersonrfi_r 000000 ----- ----- --- 01100101 00000 113deee69a1SRichard Henderson 11496927adbSRichard Henderson# These are artificial instructions used by QEMU firmware. 11596927adbSRichard Henderson# They are allocated from the unassigned instruction space. 11696927adbSRichard Hendersonhalt 1111 1111 1111 1101 1110 1010 1101 0000 11796927adbSRichard Hendersonreset 1111 1111 1111 1101 1110 1010 1101 0001 1184a4554c6SHelge Dellergetshadowregs 1111 1111 1111 1101 1110 1010 1101 0010 11996927adbSRichard Henderson 120deee69a1SRichard Henderson#### 121deee69a1SRichard Henderson# Memory Management 122deee69a1SRichard Henderson#### 123deee69a1SRichard Henderson 124deee69a1SRichard Henderson@addrx ...... b:5 x:5 .. ........ m:1 ..... \ 125deee69a1SRichard Henderson &ldst disp=0 scale=0 t=0 sp=0 size=0 126deee69a1SRichard Henderson 127deee69a1SRichard Hendersonnop 000001 ----- ----- -- 11001010 0 ----- # fdc, disp 128deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001010 . ----- @addrx # fdc, index 129deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001011 . ----- @addrx # fdce 130deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... --- 0001010 . ----- @addrx # fic 0x0a 131deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001111 . 00000 @addrx # fic 0x4f 132deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... --- 0001011 . ----- @addrx # fice 133deee69a1SRichard Hendersonnop_addrx 000001 ..... ..... -- 01001110 . 00000 @addrx # pdc 134deee69a1SRichard Henderson 135deee69a1SRichard Hendersonprobe 000001 b:5 ri:5 sp:2 imm:1 100011 write:1 0 t:5 136deee69a1SRichard Henderson 137deee69a1SRichard Hendersonixtlbx 000001 b:5 r:5 sp:2 0100000 addr:1 0 00000 data=1 138deee69a1SRichard Hendersonixtlbx 000001 b:5 r:5 ... 000000 addr:1 0 00000 \ 139deee69a1SRichard Henderson sp=%assemble_sr3x data=0 140deee69a1SRichard Henderson 1416797c315SNick Hudson# pcxl and pcxl2 Fast TLB Insert instructions 1426797c315SNick Hudsonixtlbxf 000001 00000 r:5 00 0 data:1 01000 addr:1 0 00000 1436797c315SNick Hudson 144deee69a1SRichard Hendersonpxtlbx 000001 b:5 x:5 sp:2 0100100 local:1 m:1 ----- data=1 145deee69a1SRichard Hendersonpxtlbx 000001 b:5 x:5 ... 000100 local:1 m:1 ----- \ 146deee69a1SRichard Henderson sp=%assemble_sr3x data=0 147deee69a1SRichard Henderson 148deee69a1SRichard Hendersonlpa 000001 b:5 x:5 sp:2 01001101 m:1 t:5 \ 149deee69a1SRichard Henderson &ldst disp=0 scale=0 size=0 150deee69a1SRichard Henderson 151deee69a1SRichard Hendersonlci 000001 ----- ----- -- 01001100 0 t:5 1520c982a28SRichard Henderson 1530c982a28SRichard Henderson#### 1540c982a28SRichard Henderson# Arith/Log 1550c982a28SRichard Henderson#### 1560c982a28SRichard Henderson 157fa8e3bedSRichard Hendersonandcm 000010 ..... ..... .... 000000 . ..... @rrr_cf_d 158fa8e3bedSRichard Hendersonand 000010 ..... ..... .... 001000 . ..... @rrr_cf_d 159fa8e3bedSRichard Hendersonor 000010 ..... ..... .... 001001 . ..... @rrr_cf_d 160fa8e3bedSRichard Hendersonxor 000010 ..... ..... .... 001010 . ..... @rrr_cf_d 161af240753SRichard Hendersonuxor 000010 ..... ..... .... 001110 . ..... @rrr_cf_d 1620c982a28SRichard Hendersonds 000010 ..... ..... .... 010001 0 ..... @rrr_cf 163345aa35fSRichard Hendersoncmpclr 000010 ..... ..... .... 100010 . ..... @rrr_cf_d 164af240753SRichard Hendersonuaddcm 000010 ..... ..... .... 100110 . ..... @rrr_cf_d 165af240753SRichard Hendersonuaddcm_tc 000010 ..... ..... .... 100111 . ..... @rrr_cf_d 166af240753SRichard Hendersondcor 000010 ..... 00000 .... 101110 . ..... @rr_cf_d 167af240753SRichard Hendersondcor_i 000010 ..... 00000 .... 101111 . ..... @rr_cf_d 1680c982a28SRichard Henderson 169faf97ba1SRichard Hendersonadd 000010 ..... ..... .... 0110.. . ..... @rrr_cf_d_sh 170faf97ba1SRichard Hendersonadd_l 000010 ..... ..... .... 1010.. . ..... @rrr_cf_d_sh 171faf97ba1SRichard Hendersonadd_tsv 000010 ..... ..... .... 1110.. . ..... @rrr_cf_d_sh 172faf97ba1SRichard Hendersonadd_c 000010 ..... ..... .... 011100 . ..... @rrr_cf_d_sh0 173faf97ba1SRichard Hendersonadd_c_tsv 000010 ..... ..... .... 111100 . ..... @rrr_cf_d_sh0 1740c982a28SRichard Henderson 17563c427c6SRichard Hendersonsub 000010 ..... ..... .... 010000 . ..... @rrr_cf_d 17663c427c6SRichard Hendersonsub_tsv 000010 ..... ..... .... 110000 . ..... @rrr_cf_d 17763c427c6SRichard Hendersonsub_tc 000010 ..... ..... .... 010011 . ..... @rrr_cf_d 17863c427c6SRichard Hendersonsub_tsv_tc 000010 ..... ..... .... 110011 . ..... @rrr_cf_d 17963c427c6SRichard Hendersonsub_b 000010 ..... ..... .... 010100 . ..... @rrr_cf_d 18063c427c6SRichard Hendersonsub_b_tsv 000010 ..... ..... .... 110100 . ..... @rrr_cf_d 1811cd012a5SRichard Henderson 1820588e061SRichard Hendersonldil 001000 t:5 ..................... i=%assemble_21 1830588e061SRichard Hendersonaddil 001010 r:5 ..................... i=%assemble_21 1840588e061SRichard Hendersonldo 001101 b:5 t:5 -- .............. i=%lowsign_14 1850588e061SRichard Henderson 1860588e061SRichard Hendersonaddi 101101 ..... ..... .... 0 ........... @rri_cf 1870588e061SRichard Hendersonaddi_tsv 101101 ..... ..... .... 1 ........... @rri_cf 1880588e061SRichard Hendersonaddi_tc 101100 ..... ..... .... 0 ........... @rri_cf 1890588e061SRichard Hendersonaddi_tc_tsv 101100 ..... ..... .... 1 ........... @rri_cf 1900588e061SRichard Henderson 1910588e061SRichard Hendersonsubi 100101 ..... ..... .... 0 ........... @rri_cf 1920588e061SRichard Hendersonsubi_tsv 100101 ..... ..... .... 1 ........... @rri_cf 1930588e061SRichard Henderson 194345aa35fSRichard Hendersoncmpiclr 100100 ..... ..... .... . ........... @rri_cf_d 1950588e061SRichard Henderson 1961cd012a5SRichard Henderson#### 1971cd012a5SRichard Henderson# Index Mem 1981cd012a5SRichard Henderson#### 1991cd012a5SRichard Henderson 2001cd012a5SRichard Henderson@ldstx ...... b:5 x:5 sp:2 scale:1 ....... m:1 t:5 &ldst disp=0 2011cd012a5SRichard Henderson@ldim5 ...... b:5 ..... sp:2 ......... t:5 \ 2021cd012a5SRichard Henderson &ldst disp=%im5_16 x=0 scale=0 m=%ma_to_m 2031cd012a5SRichard Henderson@stim5 ...... b:5 t:5 sp:2 ......... ..... \ 2041cd012a5SRichard Henderson &ldst disp=%im5_0 x=0 scale=0 m=%ma_to_m 2051cd012a5SRichard Henderson 2061cd012a5SRichard Hendersonld 000011 ..... ..... .. . 1 -- 00 size:2 ...... @ldim5 2071cd012a5SRichard Hendersonld 000011 ..... ..... .. . 0 -- 00 size:2 ...... @ldstx 2081cd012a5SRichard Hendersonst 000011 ..... ..... .. . 1 -- 10 size:2 ...... @stim5 2091cd012a5SRichard Hendersonldc 000011 ..... ..... .. . 1 -- 0111 ...... @ldim5 size=2 2101cd012a5SRichard Hendersonldc 000011 ..... ..... .. . 0 -- 0111 ...... @ldstx size=2 2111cd012a5SRichard Hendersonlda 000011 ..... ..... .. . 1 -- 0110 ...... @ldim5 size=2 2121cd012a5SRichard Hendersonlda 000011 ..... ..... .. . 0 -- 0110 ...... @ldstx size=2 2131cd012a5SRichard Hendersonsta 000011 ..... ..... .. . 1 -- 1110 ...... @stim5 size=2 2141cd012a5SRichard Hendersonstby 000011 b:5 r:5 sp:2 a:1 1 -- 1100 m:1 ..... disp=%im5_0 215b1e2af57SRichard Henderson 216e8777db7SRichard Henderson@fldstwx ...... b:5 x:5 sp:2 scale:1 ....... m:1 ..... \ 217e8777db7SRichard Henderson &ldst t=%rt64 disp=0 size=2 218e8777db7SRichard Henderson@fldstwi ...... b:5 ..... sp:2 . ....... . ..... \ 219e8777db7SRichard Henderson &ldst t=%rt64 disp=%im5_16 m=%ma_to_m x=0 scale=0 size=2 220e8777db7SRichard Henderson 221e8777db7SRichard Hendersonfldw 001001 ..... ..... .. . 0 -- 000 . . ..... @fldstwx 222e8777db7SRichard Hendersonfldw 001001 ..... ..... .. . 1 -- 000 . . ..... @fldstwi 223e8777db7SRichard Hendersonfstw 001001 ..... ..... .. . 0 -- 100 . . ..... @fldstwx 224e8777db7SRichard Hendersonfstw 001001 ..... ..... .. . 1 -- 100 . . ..... @fldstwi 225e8777db7SRichard Henderson 226e8777db7SRichard Henderson@fldstdx ...... b:5 x:5 sp:2 scale:1 ....... m:1 t:5 \ 227e8777db7SRichard Henderson &ldst disp=0 size=3 228e8777db7SRichard Henderson@fldstdi ...... b:5 ..... sp:2 . ....... . t:5 \ 229e8777db7SRichard Henderson &ldst disp=%im5_16 m=%ma_to_m x=0 scale=0 size=3 230e8777db7SRichard Henderson 231e8777db7SRichard Hendersonfldd 001011 ..... ..... .. . 0 -- 000 0 . ..... @fldstdx 232e8777db7SRichard Hendersonfldd 001011 ..... ..... .. . 1 -- 000 0 . ..... @fldstdi 233e8777db7SRichard Hendersonfstd 001011 ..... ..... .. . 0 -- 100 0 . ..... @fldstdx 234e8777db7SRichard Hendersonfstd 001011 ..... ..... .. . 1 -- 100 0 . ..... @fldstdi 235e8777db7SRichard Henderson 236b1e2af57SRichard Henderson#### 237740038d7SRichard Henderson# Offset Mem 238740038d7SRichard Henderson#### 239740038d7SRichard Henderson 240740038d7SRichard Henderson@ldstim14 ...... b:5 t:5 sp:2 .............. \ 241740038d7SRichard Henderson &ldst disp=%lowsign_14 x=0 scale=0 m=0 242740038d7SRichard Henderson@ldstim14m ...... b:5 t:5 sp:2 .............. \ 243740038d7SRichard Henderson &ldst disp=%lowsign_14 x=0 scale=0 m=%neg_to_m 244740038d7SRichard Henderson@ldstim12m ...... b:5 t:5 sp:2 .............. \ 245740038d7SRichard Henderson &ldst disp=%assemble_12a x=0 scale=0 m=%pos_to_m 246740038d7SRichard Henderson 247740038d7SRichard Henderson# LDB, LDH, LDW, LDWM 248740038d7SRichard Hendersonld 010000 ..... ..... .. .............. @ldstim14 size=0 249740038d7SRichard Hendersonld 010001 ..... ..... .. .............. @ldstim14 size=1 250740038d7SRichard Hendersonld 010010 ..... ..... .. .............. @ldstim14 size=2 251740038d7SRichard Hendersonld 010011 ..... ..... .. .............. @ldstim14m size=2 252740038d7SRichard Hendersonld 010111 ..... ..... .. ...........10. @ldstim12m size=2 253740038d7SRichard Henderson 254740038d7SRichard Henderson# STB, STH, STW, STWM 255740038d7SRichard Hendersonst 011000 ..... ..... .. .............. @ldstim14 size=0 256740038d7SRichard Hendersonst 011001 ..... ..... .. .............. @ldstim14 size=1 257740038d7SRichard Hendersonst 011010 ..... ..... .. .............. @ldstim14 size=2 258740038d7SRichard Hendersonst 011011 ..... ..... .. .............. @ldstim14m size=2 259740038d7SRichard Hendersonst 011111 ..... ..... .. ...........10. @ldstim12m size=2 260740038d7SRichard Henderson 261740038d7SRichard Hendersonfldw 010110 b:5 ..... sp:2 .............. \ 262740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=%a_to_m x=0 scale=0 size=2 263740038d7SRichard Hendersonfldw 010111 b:5 ..... sp:2 ...........0.. \ 264740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=0 x=0 scale=0 size=2 265740038d7SRichard Henderson 266740038d7SRichard Hendersonfstw 011110 b:5 ..... sp:2 .............. \ 267740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=%a_to_m x=0 scale=0 size=2 268740038d7SRichard Hendersonfstw 011111 b:5 ..... sp:2 ...........0.. \ 269740038d7SRichard Henderson &ldst disp=%assemble_12a t=%rm64 m=0 x=0 scale=0 size=2 270740038d7SRichard Henderson 271740038d7SRichard Hendersonfldd 010100 b:5 t:5 sp:2 .......... .. 1 . \ 272740038d7SRichard Henderson &ldst disp=%assemble_11a m=%ma2_to_m x=0 scale=0 size=3 273740038d7SRichard Henderson 274740038d7SRichard Hendersonfstd 011100 b:5 t:5 sp:2 .......... .. 1 . \ 275740038d7SRichard Henderson &ldst disp=%assemble_11a m=%ma2_to_m x=0 scale=0 size=3 276740038d7SRichard Henderson 277740038d7SRichard Henderson#### 278b1e2af57SRichard Henderson# Floating-point Multiply Add 279b1e2af57SRichard Henderson#### 280b1e2af57SRichard Henderson 281b1e2af57SRichard Henderson&mpyadd rm1 rm2 ta ra tm 282b1e2af57SRichard Henderson@mpyadd ...... rm1:5 rm2:5 ta:5 ra:5 . tm:5 &mpyadd 283b1e2af57SRichard Henderson 284b1e2af57SRichard Hendersonfmpyadd_f 000110 ..... ..... ..... ..... 0 ..... @mpyadd 285b1e2af57SRichard Hendersonfmpyadd_d 000110 ..... ..... ..... ..... 1 ..... @mpyadd 286b1e2af57SRichard Hendersonfmpysub_f 100110 ..... ..... ..... ..... 0 ..... @mpyadd 287b1e2af57SRichard Hendersonfmpysub_d 100110 ..... ..... ..... ..... 1 ..... @mpyadd 28801afb7beSRichard Henderson 28901afb7beSRichard Henderson#### 29001afb7beSRichard Henderson# Conditional Branches 29101afb7beSRichard Henderson#### 29201afb7beSRichard Henderson 293*84e224d4SRichard Hendersonbb_sar 110000 00000 r:5 c:1 1 d:1 ........... n:1 . disp=%assemble_12 294*84e224d4SRichard Hendersonbb_imm 110001 p:5 r:5 c:1 1 d:1 ........... n:1 . disp=%assemble_12 29501afb7beSRichard Henderson 29601afb7beSRichard Hendersonmovb 110010 ..... ..... ... ........... . . @rrb_cf f=0 29701afb7beSRichard Hendersonmovbi 110011 ..... ..... ... ........... . . @rib_cf f=0 29801afb7beSRichard Henderson 29901afb7beSRichard Hendersoncmpb 100000 ..... ..... ... ........... . . @rrb_cf f=0 30001afb7beSRichard Hendersoncmpb 100010 ..... ..... ... ........... . . @rrb_cf f=1 30101afb7beSRichard Hendersoncmpbi 100001 ..... ..... ... ........... . . @rib_cf f=0 30201afb7beSRichard Hendersoncmpbi 100011 ..... ..... ... ........... . . @rib_cf f=1 30301afb7beSRichard Henderson 30401afb7beSRichard Hendersonaddb 101000 ..... ..... ... ........... . . @rrb_cf f=0 30501afb7beSRichard Hendersonaddb 101010 ..... ..... ... ........... . . @rrb_cf f=1 30601afb7beSRichard Hendersonaddbi 101001 ..... ..... ... ........... . . @rib_cf f=0 30701afb7beSRichard Hendersonaddbi 101011 ..... ..... ... ........... . . @rib_cf f=1 30830878590SRichard Henderson 30930878590SRichard Henderson#### 31030878590SRichard Henderson# Shift, Extract, Deposit 31130878590SRichard Henderson#### 31230878590SRichard Henderson 31330878590SRichard Hendersonshrpw_sar 110100 r2:5 r1:5 c:3 00 0 00000 t:5 31430878590SRichard Hendersonshrpw_imm 110100 r2:5 r1:5 c:3 01 0 cpos:5 t:5 31530878590SRichard Henderson 31630878590SRichard Hendersonextrw_sar 110100 r:5 t:5 c:3 10 se:1 00000 clen:5 31730878590SRichard Hendersonextrw_imm 110100 r:5 t:5 c:3 11 se:1 pos:5 clen:5 31830878590SRichard Henderson 31930878590SRichard Hendersondepw_sar 110101 t:5 r:5 c:3 00 nz:1 00000 clen:5 32030878590SRichard Hendersondepw_imm 110101 t:5 r:5 c:3 01 nz:1 cpos:5 clen:5 32130878590SRichard Hendersondepwi_sar 110101 t:5 ..... c:3 10 nz:1 00000 clen:5 i=%im5_16 32230878590SRichard Hendersondepwi_imm 110101 t:5 ..... c:3 11 nz:1 cpos:5 clen:5 i=%im5_16 3238340f534SRichard Henderson 3248340f534SRichard Henderson#### 3258340f534SRichard Henderson# Branch External 3268340f534SRichard Henderson#### 3278340f534SRichard Henderson 3288340f534SRichard Henderson&BE b l n disp sp 3298340f534SRichard Henderson@be ...... b:5 ..... ... ........... n:1 . \ 3308340f534SRichard Henderson &BE disp=%assemble_17 sp=%assemble_sr3 3318340f534SRichard Henderson 3328340f534SRichard Hendersonbe 111000 ..... ..... ... ........... . . @be l=0 3338340f534SRichard Hendersonbe 111001 ..... ..... ... ........... . . @be l=31 3348340f534SRichard Henderson 3358340f534SRichard Henderson#### 3368340f534SRichard Henderson# Branch 3378340f534SRichard Henderson#### 3388340f534SRichard Henderson 3398340f534SRichard Henderson&BL l n disp 3408340f534SRichard Henderson@bl ...... l:5 ..... ... ........... n:1 . &BL disp=%assemble_17 3418340f534SRichard Henderson 3428340f534SRichard Henderson# B,L and B,L,PUSH 3438340f534SRichard Hendersonbl 111010 ..... ..... 000 ........... . . @bl 3448340f534SRichard Hendersonbl 111010 ..... ..... 100 ........... . . @bl 3458340f534SRichard Henderson# B,L (long displacement) 3468340f534SRichard Hendersonbl 111010 ..... ..... 101 ........... n:1 . &BL l=2 \ 3478340f534SRichard Henderson disp=%assemble_22 3488340f534SRichard Hendersonb_gate 111010 ..... ..... 001 ........... . . @bl 3498340f534SRichard Hendersonblr 111010 l:5 x:5 010 00000000000 n:1 0 3508340f534SRichard Hendersonbv 111010 b:5 x:5 110 00000000000 n:1 0 3518340f534SRichard Hendersonbve 111010 b:5 00000 110 10000000000 n:1 - l=0 3528340f534SRichard Hendersonbve 111010 b:5 00000 111 10000000000 n:1 - l=2 353c3bad4f8SRichard Henderson 354c3bad4f8SRichard Henderson#### 355c3bad4f8SRichard Henderson# FP Fused Multiple-Add 356c3bad4f8SRichard Henderson#### 357c3bad4f8SRichard Henderson 358c3bad4f8SRichard Hendersonfmpyfadd_f 101110 ..... ..... ... . 0 ... . . neg:1 ..... \ 359c3bad4f8SRichard Henderson rm1=%ra64 rm2=%rb64 ra3=%rc64 t=%rt64 360c3bad4f8SRichard Hendersonfmpyfadd_d 101110 rm1:5 rm2:5 ... 0 1 ..0 0 0 neg:1 t:5 ra3=%rc32 3611ca74648SRichard Henderson 3621ca74648SRichard Henderson#### 3631ca74648SRichard Henderson# FP operations 3641ca74648SRichard Henderson#### 3651ca74648SRichard Henderson 3661ca74648SRichard Henderson&fclass01 r t 3671ca74648SRichard Henderson&fclass2 r1 r2 c y 3681ca74648SRichard Henderson&fclass3 r1 r2 t 3691ca74648SRichard Henderson 3701ca74648SRichard Henderson@f0c_0 ...... r:5 00000 ..... 00 000 0 t:5 &fclass01 3711ca74648SRichard Henderson@f0c_1 ...... r:5 000.. ..... 01 000 0 t:5 &fclass01 3721ca74648SRichard Henderson@f0c_2 ...... r1:5 r2:5 y:3 .. 10 000 . c:5 &fclass2 3731ca74648SRichard Henderson@f0c_3 ...... r1:5 r2:5 ..... 11 000 0 t:5 &fclass3 3741ca74648SRichard Henderson 3751ca74648SRichard Henderson@f0e_f_0 ...... ..... 00000 ... 0 0 000 .. 0 ..... \ 3761ca74648SRichard Henderson &fclass01 r=%ra64 t=%rt64 3771ca74648SRichard Henderson@f0e_d_0 ...... r:5 00000 ... 0 1 000 00 0 t:5 &fclass01 3781ca74648SRichard Henderson 3791ca74648SRichard Henderson@f0e_ff_1 ...... ..... 000 ... 0000 010 .. 0 ..... \ 3801ca74648SRichard Henderson &fclass01 r=%ra64 t=%rt64 3811ca74648SRichard Henderson@f0e_fd_1 ...... ..... 000 ... 0100 010 .0 0 t:5 &fclass01 r=%ra64 3821ca74648SRichard Henderson@f0e_df_1 ...... r:5 000 ... 0001 010 0. 0 ..... &fclass01 t=%rt64 3831ca74648SRichard Henderson@f0e_dd_1 ...... r:5 000 ... 0101 010 00 0 t:5 &fclass01 3841ca74648SRichard Henderson 3851ca74648SRichard Henderson@f0e_f_2 ...... ..... ..... y:3 .0 100 .00 c:5 \ 3861ca74648SRichard Henderson &fclass2 r1=%ra64 r2=%rb64 3871ca74648SRichard Henderson@f0e_d_2 ...... r1:5 r2:5 y:3 01 100 000 c:5 &fclass2 3881ca74648SRichard Henderson 3891ca74648SRichard Henderson@f0e_f_3 ...... ..... ..... ... .0 110 ..0 ..... \ 3901ca74648SRichard Henderson &fclass3 r1=%ra64 r2=%rb64 t=%rt64 3911ca74648SRichard Henderson@f0e_d_3 ...... r1:5 r2:5 ... 01 110 000 t:5 3921ca74648SRichard Henderson 3931ca74648SRichard Henderson# Floating point class 0 3941ca74648SRichard Henderson 39559f8c04bSHelge Dellerfid_f 001100 00000 00000 000 00 000000 00000 3961ca74648SRichard Henderson 3971ca74648SRichard Hendersonfcpy_f 001100 ..... ..... 010 00 ...... ..... @f0c_0 3981ca74648SRichard Hendersonfabs_f 001100 ..... ..... 011 00 ...... ..... @f0c_0 3991ca74648SRichard Hendersonfsqrt_f 001100 ..... ..... 100 00 ...... ..... @f0c_0 4001ca74648SRichard Hendersonfrnd_f 001100 ..... ..... 101 00 ...... ..... @f0c_0 4011ca74648SRichard Hendersonfneg_f 001100 ..... ..... 110 00 ...... ..... @f0c_0 4021ca74648SRichard Hendersonfnegabs_f 001100 ..... ..... 111 00 ...... ..... @f0c_0 4031ca74648SRichard Henderson 4041ca74648SRichard Hendersonfcpy_d 001100 ..... ..... 010 01 ...... ..... @f0c_0 4051ca74648SRichard Hendersonfabs_d 001100 ..... ..... 011 01 ...... ..... @f0c_0 4061ca74648SRichard Hendersonfsqrt_d 001100 ..... ..... 100 01 ...... ..... @f0c_0 4071ca74648SRichard Hendersonfrnd_d 001100 ..... ..... 101 01 ...... ..... @f0c_0 4081ca74648SRichard Hendersonfneg_d 001100 ..... ..... 110 01 ...... ..... @f0c_0 4091ca74648SRichard Hendersonfnegabs_d 001100 ..... ..... 111 01 ...... ..... @f0c_0 4101ca74648SRichard Henderson 4111ca74648SRichard Hendersonfcpy_f 001110 ..... ..... 010 ........ ..... @f0e_f_0 4121ca74648SRichard Hendersonfabs_f 001110 ..... ..... 011 ........ ..... @f0e_f_0 4131ca74648SRichard Hendersonfsqrt_f 001110 ..... ..... 100 ........ ..... @f0e_f_0 4141ca74648SRichard Hendersonfrnd_f 001110 ..... ..... 101 ........ ..... @f0e_f_0 4151ca74648SRichard Hendersonfneg_f 001110 ..... ..... 110 ........ ..... @f0e_f_0 4161ca74648SRichard Hendersonfnegabs_f 001110 ..... ..... 111 ........ ..... @f0e_f_0 4171ca74648SRichard Henderson 4181ca74648SRichard Hendersonfcpy_d 001110 ..... ..... 010 ........ ..... @f0e_d_0 4191ca74648SRichard Hendersonfabs_d 001110 ..... ..... 011 ........ ..... @f0e_d_0 4201ca74648SRichard Hendersonfsqrt_d 001110 ..... ..... 100 ........ ..... @f0e_d_0 4211ca74648SRichard Hendersonfrnd_d 001110 ..... ..... 101 ........ ..... @f0e_d_0 4221ca74648SRichard Hendersonfneg_d 001110 ..... ..... 110 ........ ..... @f0e_d_0 4231ca74648SRichard Hendersonfnegabs_d 001110 ..... ..... 111 ........ ..... @f0e_d_0 4241ca74648SRichard Henderson 4251ca74648SRichard Henderson# Floating point class 1 4261ca74648SRichard Henderson 4271ca74648SRichard Henderson# float/float 4281ca74648SRichard Hendersonfcnv_d_f 001100 ..... ... 000 00 01 ...... ..... @f0c_1 4291ca74648SRichard Hendersonfcnv_f_d 001100 ..... ... 000 01 00 ...... ..... @f0c_1 4301ca74648SRichard Henderson 4311ca74648SRichard Hendersonfcnv_d_f 001110 ..... ... 000 .......... ..... @f0e_df_1 4321ca74648SRichard Hendersonfcnv_f_d 001110 ..... ... 000 .......... ..... @f0e_fd_1 4331ca74648SRichard Henderson 4341ca74648SRichard Henderson# int/float 4351ca74648SRichard Hendersonfcnv_w_f 001100 ..... ... 001 00 00 ...... ..... @f0c_1 4361ca74648SRichard Hendersonfcnv_q_f 001100 ..... ... 001 00 01 ...... ..... @f0c_1 4371ca74648SRichard Hendersonfcnv_w_d 001100 ..... ... 001 01 00 ...... ..... @f0c_1 4381ca74648SRichard Hendersonfcnv_q_d 001100 ..... ... 001 01 01 ...... ..... @f0c_1 4391ca74648SRichard Henderson 4401ca74648SRichard Hendersonfcnv_w_f 001110 ..... ... 001 .......... ..... @f0e_ff_1 4411ca74648SRichard Hendersonfcnv_q_f 001110 ..... ... 001 .......... ..... @f0e_df_1 4421ca74648SRichard Hendersonfcnv_w_d 001110 ..... ... 001 .......... ..... @f0e_fd_1 4431ca74648SRichard Hendersonfcnv_q_d 001110 ..... ... 001 .......... ..... @f0e_dd_1 4441ca74648SRichard Henderson 4451ca74648SRichard Henderson# float/int 4461ca74648SRichard Hendersonfcnv_f_w 001100 ..... ... 010 00 00 ...... ..... @f0c_1 4471ca74648SRichard Hendersonfcnv_d_w 001100 ..... ... 010 00 01 ...... ..... @f0c_1 4481ca74648SRichard Hendersonfcnv_f_q 001100 ..... ... 010 01 00 ...... ..... @f0c_1 4491ca74648SRichard Hendersonfcnv_d_q 001100 ..... ... 010 01 01 ...... ..... @f0c_1 4501ca74648SRichard Henderson 4511ca74648SRichard Hendersonfcnv_f_w 001110 ..... ... 010 .......... ..... @f0e_ff_1 4521ca74648SRichard Hendersonfcnv_d_w 001110 ..... ... 010 .......... ..... @f0e_df_1 4531ca74648SRichard Hendersonfcnv_f_q 001110 ..... ... 010 .......... ..... @f0e_fd_1 4541ca74648SRichard Hendersonfcnv_d_q 001110 ..... ... 010 .......... ..... @f0e_dd_1 4551ca74648SRichard Henderson 4561ca74648SRichard Henderson# float/int truncate 4571ca74648SRichard Hendersonfcnv_t_f_w 001100 ..... ... 011 00 00 ...... ..... @f0c_1 4581ca74648SRichard Hendersonfcnv_t_d_w 001100 ..... ... 011 00 01 ...... ..... @f0c_1 4591ca74648SRichard Hendersonfcnv_t_f_q 001100 ..... ... 011 01 00 ...... ..... @f0c_1 4601ca74648SRichard Hendersonfcnv_t_d_q 001100 ..... ... 011 01 01 ...... ..... @f0c_1 4611ca74648SRichard Henderson 4621ca74648SRichard Hendersonfcnv_t_f_w 001110 ..... ... 011 .......... ..... @f0e_ff_1 4631ca74648SRichard Hendersonfcnv_t_d_w 001110 ..... ... 011 .......... ..... @f0e_df_1 4641ca74648SRichard Hendersonfcnv_t_f_q 001110 ..... ... 011 .......... ..... @f0e_fd_1 4651ca74648SRichard Hendersonfcnv_t_d_q 001110 ..... ... 011 .......... ..... @f0e_dd_1 4661ca74648SRichard Henderson 4671ca74648SRichard Henderson# uint/float 4681ca74648SRichard Hendersonfcnv_uw_f 001100 ..... ... 101 00 00 ...... ..... @f0c_1 4691ca74648SRichard Hendersonfcnv_uq_f 001100 ..... ... 101 00 01 ...... ..... @f0c_1 4701ca74648SRichard Hendersonfcnv_uw_d 001100 ..... ... 101 01 00 ...... ..... @f0c_1 4711ca74648SRichard Hendersonfcnv_uq_d 001100 ..... ... 101 01 01 ...... ..... @f0c_1 4721ca74648SRichard Henderson 4731ca74648SRichard Hendersonfcnv_uw_f 001110 ..... ... 101 .......... ..... @f0e_ff_1 4741ca74648SRichard Hendersonfcnv_uq_f 001110 ..... ... 101 .......... ..... @f0e_df_1 4751ca74648SRichard Hendersonfcnv_uw_d 001110 ..... ... 101 .......... ..... @f0e_fd_1 4761ca74648SRichard Hendersonfcnv_uq_d 001110 ..... ... 101 .......... ..... @f0e_dd_1 4771ca74648SRichard Henderson 4781ca74648SRichard Henderson# float/int 4791ca74648SRichard Hendersonfcnv_f_uw 001100 ..... ... 110 00 00 ...... ..... @f0c_1 4801ca74648SRichard Hendersonfcnv_d_uw 001100 ..... ... 110 00 01 ...... ..... @f0c_1 4811ca74648SRichard Hendersonfcnv_f_uq 001100 ..... ... 110 01 00 ...... ..... @f0c_1 4821ca74648SRichard Hendersonfcnv_d_uq 001100 ..... ... 110 01 01 ...... ..... @f0c_1 4831ca74648SRichard Henderson 4841ca74648SRichard Hendersonfcnv_f_uw 001110 ..... ... 110 .......... ..... @f0e_ff_1 4851ca74648SRichard Hendersonfcnv_d_uw 001110 ..... ... 110 .......... ..... @f0e_df_1 4861ca74648SRichard Hendersonfcnv_f_uq 001110 ..... ... 110 .......... ..... @f0e_fd_1 4871ca74648SRichard Hendersonfcnv_d_uq 001110 ..... ... 110 .......... ..... @f0e_dd_1 4881ca74648SRichard Henderson 4891ca74648SRichard Henderson# float/int truncate 4901ca74648SRichard Hendersonfcnv_t_f_uw 001100 ..... ... 111 00 00 ...... ..... @f0c_1 4911ca74648SRichard Hendersonfcnv_t_d_uw 001100 ..... ... 111 00 01 ...... ..... @f0c_1 4921ca74648SRichard Hendersonfcnv_t_f_uq 001100 ..... ... 111 01 00 ...... ..... @f0c_1 4931ca74648SRichard Hendersonfcnv_t_d_uq 001100 ..... ... 111 01 01 ...... ..... @f0c_1 4941ca74648SRichard Henderson 4951ca74648SRichard Hendersonfcnv_t_f_uw 001110 ..... ... 111 .......... ..... @f0e_ff_1 4961ca74648SRichard Hendersonfcnv_t_d_uw 001110 ..... ... 111 .......... ..... @f0e_df_1 4971ca74648SRichard Hendersonfcnv_t_f_uq 001110 ..... ... 111 .......... ..... @f0e_fd_1 4981ca74648SRichard Hendersonfcnv_t_d_uq 001110 ..... ... 111 .......... ..... @f0e_dd_1 4991ca74648SRichard Henderson 5001ca74648SRichard Henderson# Floating point class 2 5011ca74648SRichard Henderson 5021ca74648SRichard Hendersonftest 001100 00000 00000 y:3 00 10000 1 c:5 5031ca74648SRichard Henderson 5041ca74648SRichard Hendersonfcmp_f 001100 ..... ..... ... 00 ..... 0 ..... @f0c_2 5051ca74648SRichard Hendersonfcmp_d 001100 ..... ..... ... 01 ..... 0 ..... @f0c_2 5061ca74648SRichard Henderson 5071ca74648SRichard Hendersonfcmp_f 001110 ..... ..... ... ..... ... ..... @f0e_f_2 5081ca74648SRichard Hendersonfcmp_d 001110 ..... ..... ... ..... ... ..... @f0e_d_2 5091ca74648SRichard Henderson 5101ca74648SRichard Henderson# Floating point class 3 5111ca74648SRichard Henderson 5121ca74648SRichard Hendersonfadd_f 001100 ..... ..... 000 00 ...... ..... @f0c_3 5131ca74648SRichard Hendersonfsub_f 001100 ..... ..... 001 00 ...... ..... @f0c_3 5141ca74648SRichard Hendersonfmpy_f 001100 ..... ..... 010 00 ...... ..... @f0c_3 5151ca74648SRichard Hendersonfdiv_f 001100 ..... ..... 011 00 ...... ..... @f0c_3 5161ca74648SRichard Henderson 5171ca74648SRichard Hendersonfadd_d 001100 ..... ..... 000 01 ...... ..... @f0c_3 5181ca74648SRichard Hendersonfsub_d 001100 ..... ..... 001 01 ...... ..... @f0c_3 5191ca74648SRichard Hendersonfmpy_d 001100 ..... ..... 010 01 ...... ..... @f0c_3 5201ca74648SRichard Hendersonfdiv_d 001100 ..... ..... 011 01 ...... ..... @f0c_3 5211ca74648SRichard Henderson 5221ca74648SRichard Hendersonfadd_f 001110 ..... ..... 000 ..... ... ..... @f0e_f_3 5231ca74648SRichard Hendersonfsub_f 001110 ..... ..... 001 ..... ... ..... @f0e_f_3 5241ca74648SRichard Hendersonfmpy_f 001110 ..... ..... 010 ..... ... ..... @f0e_f_3 5251ca74648SRichard Hendersonfdiv_f 001110 ..... ..... 011 ..... ... ..... @f0e_f_3 5261ca74648SRichard Henderson 5271ca74648SRichard Hendersonfadd_d 001110 ..... ..... 000 ..... ... ..... @f0e_d_3 5281ca74648SRichard Hendersonfsub_d 001110 ..... ..... 001 ..... ... ..... @f0e_d_3 5291ca74648SRichard Hendersonfmpy_d 001110 ..... ..... 010 ..... ... ..... @f0e_d_3 5301ca74648SRichard Hendersonfdiv_d 001110 ..... ..... 011 ..... ... ..... @f0e_d_3 5311ca74648SRichard Henderson 5321ca74648SRichard Hendersonxmpyu 001110 ..... ..... 010 .0111 .00 t:5 r1=%ra64 r2=%rb64 53315da177bSSven Schnelle 53415da177bSSven Schnelle# diag 535a64b8842SHelge Dellerdiag 000101 i:26 536