199082815SRichard Henderson# 299082815SRichard Henderson# Power ISA decode for 32-bit insns (opcode space 0) 399082815SRichard Henderson# 499082815SRichard Henderson# Copyright (c) 2021 Instituto de Pesquisas Eldorado (eldorado.org.br) 599082815SRichard Henderson# 699082815SRichard Henderson# This library is free software; you can redistribute it and/or 799082815SRichard Henderson# modify it under the terms of the GNU Lesser General Public 899082815SRichard Henderson# License as published by the Free Software Foundation; either 999082815SRichard Henderson# version 2.1 of the License, or (at your option) any later version. 1099082815SRichard Henderson# 1199082815SRichard Henderson# This library is distributed in the hope that it will be useful, 1299082815SRichard Henderson# but WITHOUT ANY WARRANTY; without even the implied warranty of 1399082815SRichard Henderson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1499082815SRichard Henderson# Lesser General Public License for more details. 1599082815SRichard Henderson# 1699082815SRichard Henderson# You should have received a copy of the GNU Lesser General Public 1799082815SRichard Henderson# License along with this library; if not, see <http://www.gnu.org/licenses/>. 1899082815SRichard Henderson# 195e560864SRichard Henderson 205e560864SRichard Henderson&D rt ra si:int64_t 215e560864SRichard Henderson@D ...... rt:5 ra:5 si:s16 &D 225e560864SRichard Henderson 238f0a4b6aSMatheus Ferst&D_bf bf l:bool ra imm 248f0a4b6aSMatheus Ferst@D_bfs ...... bf:3 - l:1 ra:5 imm:s16 &D_bf 258f0a4b6aSMatheus Ferst@D_bfu ...... bf:3 - l:1 ra:5 imm:16 &D_bf 268f0a4b6aSMatheus Ferst 27e10271e1SMatheus Ferst%dq_si 4:s12 !function=times_16 28e10271e1SMatheus Ferst%dq_rtp 22:4 !function=times_2 29e10271e1SMatheus Ferst@DQ_rtp ...... ....0 ra:5 ............ .... &D rt=%dq_rtp si=%dq_si 30e10271e1SMatheus Ferst 3172b70d5cSLucas Mateus Castro (alqotel)%dq_rt_tsx 3:1 21:5 3272b70d5cSLucas Mateus Castro (alqotel)@DQ_TSX ...... ..... ra:5 ............ .... &D si=%dq_si rt=%dq_rt_tsx 3372b70d5cSLucas Mateus Castro (alqotel) 3496fa2632SLucas Mateus Castro (alqotel)%rt_tsxp 21:1 22:4 !function=times_2 3596fa2632SLucas Mateus Castro (alqotel)@DQ_TSXP ...... ..... ra:5 ............ .... &D si=%dq_si rt=%rt_tsxp 3696fa2632SLucas Mateus Castro (alqotel) 37f2aabda8SRichard Henderson%ds_si 2:s14 !function=times_4 38f2aabda8SRichard Henderson@DS ...... rt:5 ra:5 .............. .. &D si=%ds_si 39f2aabda8SRichard Henderson 40e10271e1SMatheus Ferst%ds_rtp 22:4 !function=times_2 41e10271e1SMatheus Ferst@DS_rtp ...... ....0 ra:5 .............. .. &D rt=%ds_rtp si=%ds_si 42e10271e1SMatheus Ferst 439193eaa9SMatheus Ferst&DX_b vrt b 449193eaa9SMatheus Ferst%dx_b 6:10 16:5 0:1 459193eaa9SMatheus Ferst@DX_b ...... vrt:5 ..... .......... ..... . &DX_b b=%dx_b 469193eaa9SMatheus Ferst 47e7a5d578SMatheus Ferst&DX rt d 48e7a5d578SMatheus Ferst%dx_d 6:s10 16:5 0:1 49e7a5d578SMatheus Ferst@DX ...... rt:5 ..... .......... ..... . &DX d=%dx_d 50e7a5d578SMatheus Ferst 5128110b72SMatheus Ferst&VA vrt vra vrb rc 5228110b72SMatheus Ferst@VA ...... vrt:5 vra:5 vrb:5 rc:5 ...... &VA 5328110b72SMatheus Ferst 542c716b4dSMatheus Ferst&VN vrt vra vrb sh 552c716b4dSMatheus Ferst@VN ...... vrt:5 vra:5 vrb:5 .. sh:3 ...... &VN 562c716b4dSMatheus Ferst 57a5f56954SMatheus Ferst&VX vrt vra vrb 58a5f56954SMatheus Ferst@VX ...... vrt:5 vra:5 vrb:5 .......... . &VX 59a5f56954SMatheus Ferst 6023832ae6SMatheus Ferst&VX_uim4 vrt uim vrb 6123832ae6SMatheus Ferst@VX_uim4 ...... vrt:5 . uim:4 vrb:5 ........... &VX_uim4 6223832ae6SMatheus Ferst 635f1470b0SMatheus Ferst&VX_tb vrt vrb 645f1470b0SMatheus Ferst@VX_tb ...... vrt:5 ..... vrb:5 ........... &VX_tb 655f1470b0SMatheus Ferst 66f2aabda8SRichard Henderson&X rt ra rb 67f2aabda8SRichard Henderson@X ...... rt:5 ra:5 rb:5 .......... . &X 68f2aabda8SRichard Henderson 69afdc9310SLuis Pires&X_rc rt ra rb rc:bool 70afdc9310SLuis Pires@X_rc ...... rt:5 ra:5 rb:5 .......... rc:1 &X_rc 71afdc9310SLuis Pires 72afdc9310SLuis Pires%x_frtp 22:4 !function=times_2 73afdc9310SLuis Pires%x_frap 17:4 !function=times_2 74afdc9310SLuis Pires%x_frbp 12:4 !function=times_2 75afdc9310SLuis Pires@X_tp_ap_bp_rc ...... ....0 ....0 ....0 .......... rc:1 &X_rc rt=%x_frtp ra=%x_frap rb=%x_frbp 76afdc9310SLuis Pires 77afdc9310SLuis Pires@X_tp_a_bp_rc ...... ....0 ra:5 ....0 .......... rc:1 &X_rc rt=%x_frtp rb=%x_frbp 78afdc9310SLuis Pires 79c8ef4d1eSLuis Pires&X_tb_rc rt rb rc:bool 80c8ef4d1eSLuis Pires@X_tb_rc ...... rt:5 ..... rb:5 .......... rc:1 &X_tb_rc 81c8ef4d1eSLuis Pires 82c8ef4d1eSLuis Pires@X_tbp_rc ...... ....0 ..... ....0 .......... rc:1 &X_tb_rc rt=%x_frtp rb=%x_frbp 83c8ef4d1eSLuis Pires 84c8ef4d1eSLuis Pires@X_tp_b_rc ...... ....0 ..... rb:5 .......... rc:1 &X_tb_rc rt=%x_frtp 85c8ef4d1eSLuis Pires 86c8ef4d1eSLuis Pires@X_t_bp_rc ...... rt:5 ..... ....0 .......... rc:1 &X_tb_rc rb=%x_frbp 87c8ef4d1eSLuis Pires 889a14365eSMatheus Ferst&X_bi rt bi 899a14365eSMatheus Ferst@X_bi ...... rt:5 bi:5 ----- .......... - &X_bi 909a14365eSMatheus Ferst 9185c38a46SLuis Pires&X_bf bf ra rb 9285c38a46SLuis Pires@X_bf ...... bf:3 .. ra:5 rb:5 .......... . &X_bf 9385c38a46SLuis Pires 9485c38a46SLuis Pires@X_bf_ap_bp ...... bf:3 .. ....0 ....0 .......... . &X_bf ra=%x_frap rb=%x_frbp 9585c38a46SLuis Pires 9685c38a46SLuis Pires@X_bf_a_bp ...... bf:3 .. ra:5 ....0 .......... . &X_bf rb=%x_frbp 9785c38a46SLuis Pires 9885c38a46SLuis Pires&X_bf_uim bf uim rb 9985c38a46SLuis Pires@X_bf_uim ...... bf:3 . uim:6 rb:5 .......... . &X_bf_uim 10085c38a46SLuis Pires 10185c38a46SLuis Pires@X_bf_uim_bp ...... bf:3 . uim:6 ....0 .......... . &X_bf_uim rb=%x_frbp 10285c38a46SLuis Pires 1038f0a4b6aSMatheus Ferst&X_bfl bf l:bool ra rb 1048f0a4b6aSMatheus Ferst@X_bfl ...... bf:3 - l:1 ra:5 rb:5 ..........- &X_bfl 1058f0a4b6aSMatheus Ferst 1066166fcedSBruno Larsen (billionai)%x_xt 0:1 21:5 1076166fcedSBruno Larsen (billionai)&X_imm8 xt imm:uint8_t 1086166fcedSBruno Larsen (billionai)@X_imm8 ...... ..... .. imm:8 .......... . &X_imm8 xt=%x_xt 1096166fcedSBruno Larsen (billionai) 1106e26b85dSMatheus Ferst&X_uim5 xt uim:uint8_t 1116e26b85dSMatheus Ferst@X_uim5 ...... ..... ..... uim:5 .......... . &X_uim5 xt=%x_xt 1126e26b85dSMatheus Ferst 113a2329747SLuis Pires&X_tb_sp_rc rt rb sp rc:bool 114a2329747SLuis Pires@X_tb_sp_rc ...... rt:5 sp:2 ... rb:5 .......... rc:1 &X_tb_sp_rc 115a2329747SLuis Pires 116a2329747SLuis Pires@X_tbp_sp_rc ...... ....0 sp:2 ... ....0 .......... rc:1 &X_tb_sp_rc rt=%x_frtp rb=%x_frbp 117a2329747SLuis Pires 118a2329747SLuis Pires&X_tb_s_rc rt rb s:bool rc:bool 119a2329747SLuis Pires@X_tb_s_rc ...... rt:5 s:1 .... rb:5 .......... rc:1 &X_tb_s_rc 120a2329747SLuis Pires 121a2329747SLuis Pires@X_tbp_s_rc ...... ....0 s:1 .... ....0 .......... rc:1 &X_tb_s_rc rt=%x_frtp rb=%x_frbp 122a2329747SLuis Pires 12370426b5bSLucas Mateus Castro (alqotel)%x_rt_tsx 0:1 21:5 12470426b5bSLucas Mateus Castro (alqotel)@X_TSX ...... ..... ra:5 rb:5 .......... . &X rt=%x_rt_tsx 125226ce506SLucas Mateus Castro (alqotel)@X_TSXP ...... ..... ra:5 rb:5 .......... . &X rt=%rt_tsxp 12670426b5bSLucas Mateus Castro (alqotel) 127d39b2cc7SLuis Pires&X_frtp_vrb frtp vrb 128d39b2cc7SLuis Pires@X_frtp_vrb ...... ....0 ..... vrb:5 .......... . &X_frtp_vrb frtp=%x_frtp 129d39b2cc7SLuis Pires 130328747f3SLuis Pires&X_vrt_frbp vrt frbp 131328747f3SLuis Pires@X_vrt_frbp ...... vrt:5 ..... ....0 .......... . &X_vrt_frbp frbp=%x_frbp 132328747f3SLuis Pires 133c5df1898SVictor Colombo%xx_xt 0:1 21:5 134c5df1898SVictor Colombo%xx_xb 1:1 11:5 135c5df1898SVictor Colombo%xx_xa 2:1 16:5 13630dfca8dSBruno Larsen (billionai)&XX2 xt xb uim:uint8_t 137c5df1898SVictor Colombo@XX2 ...... ..... ... uim:2 ..... ......... .. &XX2 xt=%xx_xt xb=%xx_xb 138c5df1898SVictor Colombo 139c5df1898SVictor Colombo&XX3 xt xa xb 140c5df1898SVictor Colombo@XX3 ...... ..... ..... ..... ........ ... &XX3 xt=%xx_xt xa=%xx_xa xb=%xx_xb 14130dfca8dSBruno Larsen (billionai) 14287bc8e52SLuis Pires&Z22_bf_fra bf fra dm 14387bc8e52SLuis Pires@Z22_bf_fra ...... bf:3 .. fra:5 dm:6 ......... . &Z22_bf_fra 14487bc8e52SLuis Pires 14587bc8e52SLuis Pires%z22_frap 17:4 !function=times_2 14687bc8e52SLuis Pires@Z22_bf_frap ...... bf:3 .. ....0 dm:6 ......... . &Z22_bf_fra fra=%z22_frap 14787bc8e52SLuis Pires 148a2329747SLuis Pires&Z22_ta_sh_rc rt ra sh rc:bool 149a2329747SLuis Pires@Z22_ta_sh_rc ...... rt:5 ra:5 sh:6 ......... rc:1 &Z22_ta_sh_rc 150a2329747SLuis Pires 151a2329747SLuis Pires%z22_frtp 22:4 !function=times_2 152a2329747SLuis Pires@Z22_tap_sh_rc ...... ....0 ....0 sh:6 ......... rc:1 &Z22_ta_sh_rc rt=%z22_frtp ra=%z22_frap 153a2329747SLuis Pires 154a8f4bce6SLuis Pires&Z23_tab frt fra frb rmc rc:bool 155a8f4bce6SLuis Pires@Z23_tab ...... frt:5 fra:5 frb:5 rmc:2 ........ rc:1 &Z23_tab 156a8f4bce6SLuis Pires 157a8f4bce6SLuis Pires%z23_frtp 22:4 !function=times_2 158a8f4bce6SLuis Pires%z23_frap 17:4 !function=times_2 159a8f4bce6SLuis Pires%z23_frbp 12:4 !function=times_2 160a8f4bce6SLuis Pires@Z23_tabp ...... ....0 ....0 ....0 rmc:2 ........ rc:1 &Z23_tab frt=%z23_frtp fra=%z23_frap frb=%z23_frbp 161a8f4bce6SLuis Pires 162a8f4bce6SLuis Pires@Z23_tp_a_bp ...... ....0 fra:5 ....0 rmc:2 ........ rc:1 &Z23_tab frt=%z23_frtp frb=%z23_frbp 163a8f4bce6SLuis Pires 16478464edbSLuis Pires&Z23_tb frt frb r:bool rmc rc:bool 16578464edbSLuis Pires@Z23_tb ...... frt:5 .... r:1 frb:5 rmc:2 ........ rc:1 &Z23_tb 16678464edbSLuis Pires 16778464edbSLuis Pires@Z23_tbp ...... ....0 .... r:1 ....0 rmc:2 ........ rc:1 &Z23_tb frt=%z23_frtp frb=%z23_frbp 16878464edbSLuis Pires 16978464edbSLuis Pires&Z23_te_tb te frt frb rmc rc:bool 17078464edbSLuis Pires@Z23_te_tb ...... frt:5 te:5 frb:5 rmc:2 ........ rc:1 &Z23_te_tb 17178464edbSLuis Pires 17278464edbSLuis Pires@Z23_te_tbp ...... ....0 te:5 ....0 rmc:2 ........ rc:1 &Z23_te_tb frt=%z23_frtp frb=%z23_frbp 17378464edbSLuis Pires 174f2aabda8SRichard Henderson### Fixed-Point Load Instructions 175f2aabda8SRichard Henderson 176f2aabda8SRichard HendersonLBZ 100010 ..... ..... ................ @D 177f2aabda8SRichard HendersonLBZU 100011 ..... ..... ................ @D 178f2aabda8SRichard HendersonLBZX 011111 ..... ..... ..... 0001010111 - @X 179f2aabda8SRichard HendersonLBZUX 011111 ..... ..... ..... 0001110111 - @X 180f2aabda8SRichard Henderson 181f2aabda8SRichard HendersonLHZ 101000 ..... ..... ................ @D 182f2aabda8SRichard HendersonLHZU 101001 ..... ..... ................ @D 183f2aabda8SRichard HendersonLHZX 011111 ..... ..... ..... 0100010111 - @X 184f2aabda8SRichard HendersonLHZUX 011111 ..... ..... ..... 0100110111 - @X 185f2aabda8SRichard Henderson 186f2aabda8SRichard HendersonLHA 101010 ..... ..... ................ @D 187f2aabda8SRichard HendersonLHAU 101011 ..... ..... ................ @D 188f2aabda8SRichard HendersonLHAX 011111 ..... ..... ..... 0101010111 - @X 189f2aabda8SRichard HendersonLHAXU 011111 ..... ..... ..... 0101110111 - @X 190f2aabda8SRichard Henderson 191f2aabda8SRichard HendersonLWZ 100000 ..... ..... ................ @D 192f2aabda8SRichard HendersonLWZU 100001 ..... ..... ................ @D 193f2aabda8SRichard HendersonLWZX 011111 ..... ..... ..... 0000010111 - @X 194f2aabda8SRichard HendersonLWZUX 011111 ..... ..... ..... 0000110111 - @X 195f2aabda8SRichard Henderson 196f2aabda8SRichard HendersonLWA 111010 ..... ..... ..............10 @DS 197f2aabda8SRichard HendersonLWAX 011111 ..... ..... ..... 0101010101 - @X 198f2aabda8SRichard HendersonLWAUX 011111 ..... ..... ..... 0101110101 - @X 199f2aabda8SRichard Henderson 200f2aabda8SRichard HendersonLD 111010 ..... ..... ..............00 @DS 201f2aabda8SRichard HendersonLDU 111010 ..... ..... ..............01 @DS 202f2aabda8SRichard HendersonLDX 011111 ..... ..... ..... 0000010101 - @X 203f2aabda8SRichard HendersonLDUX 011111 ..... ..... ..... 0000110101 - @X 204f2aabda8SRichard Henderson 205e10271e1SMatheus FerstLQ 111000 ..... ..... ............ ---- @DQ_rtp 206e10271e1SMatheus Ferst 207e8f4c8d6SRichard Henderson### Fixed-Point Store Instructions 208e8f4c8d6SRichard Henderson 209e8f4c8d6SRichard HendersonSTB 100110 ..... ..... ................ @D 210e8f4c8d6SRichard HendersonSTBU 100111 ..... ..... ................ @D 211e8f4c8d6SRichard HendersonSTBX 011111 ..... ..... ..... 0011010111 - @X 212e8f4c8d6SRichard HendersonSTBUX 011111 ..... ..... ..... 0011110111 - @X 213e8f4c8d6SRichard Henderson 214e8f4c8d6SRichard HendersonSTH 101100 ..... ..... ................ @D 215e8f4c8d6SRichard HendersonSTHU 101101 ..... ..... ................ @D 216e8f4c8d6SRichard HendersonSTHX 011111 ..... ..... ..... 0110010111 - @X 217e8f4c8d6SRichard HendersonSTHUX 011111 ..... ..... ..... 0110110111 - @X 218e8f4c8d6SRichard Henderson 219e8f4c8d6SRichard HendersonSTW 100100 ..... ..... ................ @D 220e8f4c8d6SRichard HendersonSTWU 100101 ..... ..... ................ @D 221e8f4c8d6SRichard HendersonSTWX 011111 ..... ..... ..... 0010010111 - @X 222e8f4c8d6SRichard HendersonSTWUX 011111 ..... ..... ..... 0010110111 - @X 223e8f4c8d6SRichard Henderson 224e8f4c8d6SRichard HendersonSTD 111110 ..... ..... ..............00 @DS 225e8f4c8d6SRichard HendersonSTDU 111110 ..... ..... ..............01 @DS 226e8f4c8d6SRichard HendersonSTDX 011111 ..... ..... ..... 0010010101 - @X 227e8f4c8d6SRichard HendersonSTDUX 011111 ..... ..... ..... 0010110101 - @X 228e8f4c8d6SRichard Henderson 229e10271e1SMatheus FerstSTQ 111110 ..... ..... ..............10 @DS_rtp 230e10271e1SMatheus Ferst 2318f0a4b6aSMatheus Ferst### Fixed-Point Compare Instructions 2328f0a4b6aSMatheus Ferst 2338f0a4b6aSMatheus FerstCMP 011111 ... - . ..... ..... 0000000000 - @X_bfl 2348f0a4b6aSMatheus FerstCMPL 011111 ... - . ..... ..... 0000100000 - @X_bfl 2358f0a4b6aSMatheus FerstCMPI 001011 ... - . ..... ................ @D_bfs 2368f0a4b6aSMatheus FerstCMPLI 001010 ... - . ..... ................ @D_bfu 2378f0a4b6aSMatheus Ferst 2385e560864SRichard Henderson### Fixed-Point Arithmetic Instructions 2395e560864SRichard Henderson 2405e560864SRichard HendersonADDI 001110 ..... ..... ................ @D 2415e560864SRichard HendersonADDIS 001111 ..... ..... ................ @D 2429a14365eSMatheus Ferst 243e7a5d578SMatheus FerstADDPCIS 010011 ..... ..... .......... 00010 . @DX 244e7a5d578SMatheus Ferst 24589ccd7dcSMatheus Ferst## Fixed-Point Logical Instructions 24689ccd7dcSMatheus Ferst 24789ccd7dcSMatheus FerstCFUGED 011111 ..... ..... ..... 0011011100 - @X 24882be6e02SLuis PiresCNTLZDM 011111 ..... ..... ..... 0000111011 - @X 249f356b3baSLuis PiresCNTTZDM 011111 ..... ..... ..... 1000111011 - @X 25021ba6e58SMatheus FerstPDEPD 011111 ..... ..... ..... 0010011100 - @X 2518bdb7606SMatheus FerstPEXTD 011111 ..... ..... ..... 0010111100 - @X 25289ccd7dcSMatheus Ferst 253fbd2e60eSFernando Eckhardt Valle### Float-Point Load Instructions 254fbd2e60eSFernando Eckhardt Valle 255fbd2e60eSFernando Eckhardt ValleLFS 110000 ..... ..... ................ @D 256fbd2e60eSFernando Eckhardt ValleLFSU 110001 ..... ..... ................ @D 257fbd2e60eSFernando Eckhardt ValleLFSX 011111 ..... ..... ..... 1000010111 - @X 258fbd2e60eSFernando Eckhardt ValleLFSUX 011111 ..... ..... ..... 1000110111 - @X 259fbd2e60eSFernando Eckhardt Valle 260fbd2e60eSFernando Eckhardt ValleLFD 110010 ..... ..... ................ @D 261fbd2e60eSFernando Eckhardt ValleLFDU 110011 ..... ..... ................ @D 262fbd2e60eSFernando Eckhardt ValleLFDX 011111 ..... ..... ..... 1001010111 - @X 263fbd2e60eSFernando Eckhardt ValleLFDUX 011111 ..... ..... ..... 1001110111 - @X 264fbd2e60eSFernando Eckhardt Valle 265fbd2e60eSFernando Eckhardt Valle### Float-Point Store Instructions 266fbd2e60eSFernando Eckhardt Valle 267fbd2e60eSFernando Eckhardt ValleSTFS 110100 ..... ...... ............... @D 268fbd2e60eSFernando Eckhardt ValleSTFSU 110101 ..... ...... ............... @D 269fbd2e60eSFernando Eckhardt ValleSTFSX 011111 ..... ...... .... 1010010111 - @X 270fbd2e60eSFernando Eckhardt ValleSTFSUX 011111 ..... ...... .... 1010110111 - @X 271fbd2e60eSFernando Eckhardt Valle 272fbd2e60eSFernando Eckhardt ValleSTFD 110110 ..... ...... ............... @D 273fbd2e60eSFernando Eckhardt ValleSTFDU 110111 ..... ...... ............... @D 274fbd2e60eSFernando Eckhardt ValleSTFDX 011111 ..... ...... .... 1011010111 - @X 275fbd2e60eSFernando Eckhardt ValleSTFDUX 011111 ..... ...... .... 1011110111 - @X 276fbd2e60eSFernando Eckhardt Valle 2779a14365eSMatheus Ferst### Move To/From System Register Instructions 2789a14365eSMatheus Ferst 2799a14365eSMatheus FerstSETBC 011111 ..... ..... ----- 0110000000 - @X_bi 2809a14365eSMatheus FerstSETBCR 011111 ..... ..... ----- 0110100000 - @X_bi 2819a14365eSMatheus FerstSETNBC 011111 ..... ..... ----- 0111000000 - @X_bi 2829a14365eSMatheus FerstSETNBCR 011111 ..... ..... ----- 0111100000 - @X_bi 283a5f56954SMatheus Ferst 284afdc9310SLuis Pires### Decimal Floating-Point Arithmetic Instructions 285afdc9310SLuis Pires 286afdc9310SLuis PiresDADD 111011 ..... ..... ..... 0000000010 . @X_rc 287afdc9310SLuis PiresDADDQ 111111 ..... ..... ..... 0000000010 . @X_tp_ap_bp_rc 288afdc9310SLuis Pires 289afdc9310SLuis PiresDSUB 111011 ..... ..... ..... 1000000010 . @X_rc 290afdc9310SLuis PiresDSUBQ 111111 ..... ..... ..... 1000000010 . @X_tp_ap_bp_rc 291afdc9310SLuis Pires 292afdc9310SLuis PiresDMUL 111011 ..... ..... ..... 0000100010 . @X_rc 293afdc9310SLuis PiresDMULQ 111111 ..... ..... ..... 0000100010 . @X_tp_ap_bp_rc 294afdc9310SLuis Pires 295afdc9310SLuis PiresDDIV 111011 ..... ..... ..... 1000100010 . @X_rc 296afdc9310SLuis PiresDDIVQ 111111 ..... ..... ..... 1000100010 . @X_tp_ap_bp_rc 297afdc9310SLuis Pires 29885c38a46SLuis Pires### Decimal Floating-Point Compare Instructions 29985c38a46SLuis Pires 30085c38a46SLuis PiresDCMPU 111011 ... -- ..... ..... 1010000010 - @X_bf 30185c38a46SLuis PiresDCMPUQ 111111 ... -- ..... ..... 1010000010 - @X_bf_ap_bp 30285c38a46SLuis Pires 30385c38a46SLuis PiresDCMPO 111011 ... -- ..... ..... 0010000010 - @X_bf 30485c38a46SLuis PiresDCMPOQ 111111 ... -- ..... ..... 0010000010 - @X_bf_ap_bp 30585c38a46SLuis Pires 30687bc8e52SLuis Pires### Decimal Floating-Point Test Instructions 30787bc8e52SLuis Pires 30887bc8e52SLuis PiresDTSTDC 111011 ... -- ..... ...... 011000010 - @Z22_bf_fra 30987bc8e52SLuis PiresDTSTDCQ 111111 ... -- ..... ...... 011000010 - @Z22_bf_frap 31087bc8e52SLuis Pires 31187bc8e52SLuis PiresDTSTDG 111011 ... -- ..... ...... 011100010 - @Z22_bf_fra 31287bc8e52SLuis PiresDTSTDGQ 111111 ... -- ..... ...... 011100010 - @Z22_bf_frap 31387bc8e52SLuis Pires 31485c38a46SLuis PiresDTSTEX 111011 ... -- ..... ..... 0010100010 - @X_bf 31585c38a46SLuis PiresDTSTEXQ 111111 ... -- ..... ..... 0010100010 - @X_bf_ap_bp 31685c38a46SLuis Pires 31785c38a46SLuis PiresDTSTSF 111011 ... -- ..... ..... 1010100010 - @X_bf 31885c38a46SLuis PiresDTSTSFQ 111111 ... -- ..... ..... 1010100010 - @X_bf_a_bp 31985c38a46SLuis Pires 32085c38a46SLuis PiresDTSTSFI 111011 ... - ...... ..... 1010100011 - @X_bf_uim 32185c38a46SLuis PiresDTSTSFIQ 111111 ... - ...... ..... 1010100011 - @X_bf_uim_bp 32285c38a46SLuis Pires 32378464edbSLuis Pires### Decimal Floating-Point Quantum Adjustment Instructions 32478464edbSLuis Pires 32578464edbSLuis PiresDQUAI 111011 ..... ..... ..... .. 01000011 . @Z23_te_tb 32678464edbSLuis PiresDQUAIQ 111111 ..... ..... ..... .. 01000011 . @Z23_te_tbp 32778464edbSLuis Pires 328a8f4bce6SLuis PiresDQUA 111011 ..... ..... ..... .. 00000011 . @Z23_tab 329a8f4bce6SLuis PiresDQUAQ 111111 ..... ..... ..... .. 00000011 . @Z23_tabp 330a8f4bce6SLuis Pires 331a8f4bce6SLuis PiresDRRND 111011 ..... ..... ..... .. 00100011 . @Z23_tab 332a8f4bce6SLuis PiresDRRNDQ 111111 ..... ..... ..... .. 00100011 . @Z23_tp_a_bp 333a8f4bce6SLuis Pires 33478464edbSLuis PiresDRINTX 111011 ..... ---- . ..... .. 01100011 . @Z23_tb 33578464edbSLuis PiresDRINTXQ 111111 ..... ---- . ..... .. 01100011 . @Z23_tbp 33678464edbSLuis Pires 33778464edbSLuis PiresDRINTN 111011 ..... ---- . ..... .. 11100011 . @Z23_tb 33878464edbSLuis PiresDRINTNQ 111111 ..... ---- . ..... .. 11100011 . @Z23_tbp 33978464edbSLuis Pires 340d39b2cc7SLuis Pires### Decimal Floating-Point Conversion Instructions 341d39b2cc7SLuis Pires 342c8ef4d1eSLuis PiresDCTDP 111011 ..... ----- ..... 0100000010 . @X_tb_rc 343c8ef4d1eSLuis PiresDCTQPQ 111111 ..... ----- ..... 0100000010 . @X_tp_b_rc 344c8ef4d1eSLuis Pires 345c8ef4d1eSLuis PiresDRSP 111011 ..... ----- ..... 1100000010 . @X_tb_rc 346c8ef4d1eSLuis PiresDRDPQ 111111 ..... ----- ..... 1100000010 . @X_tbp_rc 347c8ef4d1eSLuis Pires 348c8ef4d1eSLuis PiresDCFFIX 111011 ..... ----- ..... 1100100010 . @X_tb_rc 349c8ef4d1eSLuis PiresDCFFIXQ 111111 ..... ----- ..... 1100100010 . @X_tp_b_rc 350d39b2cc7SLuis PiresDCFFIXQQ 111111 ..... 00000 ..... 1111100010 - @X_frtp_vrb 351c8ef4d1eSLuis Pires 352c8ef4d1eSLuis PiresDCTFIX 111011 ..... ----- ..... 0100100010 . @X_tb_rc 353c8ef4d1eSLuis PiresDCTFIXQ 111111 ..... ----- ..... 0100100010 . @X_t_bp_rc 354328747f3SLuis PiresDCTFIXQQ 111111 ..... 00001 ..... 1111100010 - @X_vrt_frbp 355d39b2cc7SLuis Pires 356afdc9310SLuis Pires### Decimal Floating-Point Format Instructions 357afdc9310SLuis Pires 358a2329747SLuis PiresDDEDPD 111011 ..... .. --- ..... 0101000010 . @X_tb_sp_rc 359a2329747SLuis PiresDDEDPDQ 111111 ..... .. --- ..... 0101000010 . @X_tbp_sp_rc 360a2329747SLuis Pires 361a2329747SLuis PiresDENBCD 111011 ..... . ---- ..... 1101000010 . @X_tb_s_rc 362a2329747SLuis PiresDENBCDQ 111111 ..... . ---- ..... 1101000010 . @X_tbp_s_rc 363a2329747SLuis Pires 364c8ef4d1eSLuis PiresDXEX 111011 ..... ----- ..... 0101100010 . @X_tb_rc 365c8ef4d1eSLuis PiresDXEXQ 111111 ..... ----- ..... 0101100010 . @X_t_bp_rc 366c8ef4d1eSLuis Pires 367afdc9310SLuis PiresDIEX 111011 ..... ..... ..... 1101100010 . @X_rc 368afdc9310SLuis PiresDIEXQ 111111 ..... ..... ..... 1101100010 . @X_tp_a_bp_rc 369afdc9310SLuis Pires 370a2329747SLuis PiresDSCLI 111011 ..... ..... ...... 001000010 . @Z22_ta_sh_rc 371a2329747SLuis PiresDSCLIQ 111111 ..... ..... ...... 001000010 . @Z22_tap_sh_rc 372a2329747SLuis Pires 373a2329747SLuis PiresDSCRI 111011 ..... ..... ...... 001100010 . @Z22_ta_sh_rc 374a2329747SLuis PiresDSCRIQ 111111 ..... ..... ...... 001100010 . @Z22_tap_sh_rc 375a2329747SLuis Pires 376a5f56954SMatheus Ferst## Vector Bit Manipulation Instruction 377a5f56954SMatheus Ferst 378a5f56954SMatheus FerstVCFUGED 000100 ..... ..... ..... 10101001101 @VX 379a2c975e1SMatheus FerstVCLZDM 000100 ..... ..... ..... 11110000100 @VX 380a2c975e1SMatheus FerstVCTZDM 000100 ..... ..... ..... 11111000100 @VX 38100a16569SMatheus FerstVPDEPD 000100 ..... ..... ..... 10111001101 @VX 38200a16569SMatheus FerstVPEXTD 000100 ..... ..... ..... 10110001101 @VX 3832c716b4dSMatheus Ferst 3842c716b4dSMatheus Ferst## Vector Permute and Formatting Instruction 3852c716b4dSMatheus Ferst 38628110b72SMatheus FerstVEXTDUBVLX 000100 ..... ..... ..... ..... 011000 @VA 38728110b72SMatheus FerstVEXTDUBVRX 000100 ..... ..... ..... ..... 011001 @VA 38828110b72SMatheus FerstVEXTDUHVLX 000100 ..... ..... ..... ..... 011010 @VA 38928110b72SMatheus FerstVEXTDUHVRX 000100 ..... ..... ..... ..... 011011 @VA 39028110b72SMatheus FerstVEXTDUWVLX 000100 ..... ..... ..... ..... 011100 @VA 39128110b72SMatheus FerstVEXTDUWVRX 000100 ..... ..... ..... ..... 011101 @VA 39228110b72SMatheus FerstVEXTDDVLX 000100 ..... ..... ..... ..... 011110 @VA 39328110b72SMatheus FerstVEXTDDVRX 000100 ..... ..... ..... ..... 011111 @VA 39428110b72SMatheus Ferst 395b422c2cbSMatheus FerstVINSERTB 000100 ..... - .... ..... 01100001101 @VX_uim4 396b422c2cbSMatheus FerstVINSERTH 000100 ..... - .... ..... 01101001101 @VX_uim4 397b422c2cbSMatheus FerstVINSERTW 000100 ..... - .... ..... 01110001101 @VX_uim4 398b422c2cbSMatheus FerstVINSERTD 000100 ..... - .... ..... 01111001101 @VX_uim4 399b422c2cbSMatheus Ferst 4002cc12af3SMatheus FerstVINSBLX 000100 ..... ..... ..... 01000001111 @VX 4012cc12af3SMatheus FerstVINSBRX 000100 ..... ..... ..... 01100001111 @VX 4022cc12af3SMatheus FerstVINSHLX 000100 ..... ..... ..... 01001001111 @VX 4032cc12af3SMatheus FerstVINSHRX 000100 ..... ..... ..... 01101001111 @VX 4042cc12af3SMatheus FerstVINSWLX 000100 ..... ..... ..... 01010001111 @VX 4052cc12af3SMatheus FerstVINSWRX 000100 ..... ..... ..... 01110001111 @VX 4062cc12af3SMatheus FerstVINSDLX 000100 ..... ..... ..... 01011001111 @VX 4072cc12af3SMatheus FerstVINSDRX 000100 ..... ..... ..... 01111001111 @VX 4082cc12af3SMatheus Ferst 40923832ae6SMatheus FerstVINSW 000100 ..... - .... ..... 00011001111 @VX_uim4 41023832ae6SMatheus FerstVINSD 000100 ..... - .... ..... 00111001111 @VX_uim4 41123832ae6SMatheus Ferst 4122c9f7958SMatheus FerstVINSBVLX 000100 ..... ..... ..... 00000001111 @VX 4132c9f7958SMatheus FerstVINSBVRX 000100 ..... ..... ..... 00100001111 @VX 4142c9f7958SMatheus FerstVINSHVLX 000100 ..... ..... ..... 00001001111 @VX 4152c9f7958SMatheus FerstVINSHVRX 000100 ..... ..... ..... 00101001111 @VX 4162c9f7958SMatheus FerstVINSWVLX 000100 ..... ..... ..... 00010001111 @VX 4172c9f7958SMatheus FerstVINSWVRX 000100 ..... ..... ..... 00110001111 @VX 4182c9f7958SMatheus Ferst 4192c716b4dSMatheus FerstVSLDBI 000100 ..... ..... ..... 00 ... 010110 @VN 4202c716b4dSMatheus FerstVSRDBI 000100 ..... ..... ..... 01 ... 010110 @VN 42172b70d5cSLucas Mateus Castro (alqotel) 422*9bfe9213SLucas Coutinho## Vector Integer Arithmetic Instructions 423*9bfe9213SLucas Coutinho 424*9bfe9213SLucas CoutinhoVEXTSB2W 000100 ..... 10000 ..... 11000000010 @VX_tb 425*9bfe9213SLucas CoutinhoVEXTSH2W 000100 ..... 10001 ..... 11000000010 @VX_tb 426*9bfe9213SLucas CoutinhoVEXTSB2D 000100 ..... 11000 ..... 11000000010 @VX_tb 427*9bfe9213SLucas CoutinhoVEXTSH2D 000100 ..... 11001 ..... 11000000010 @VX_tb 428*9bfe9213SLucas CoutinhoVEXTSW2D 000100 ..... 11010 ..... 11000000010 @VX_tb 429*9bfe9213SLucas Coutinho 4305f1470b0SMatheus Ferst## Vector Mask Manipulation Instructions 4315f1470b0SMatheus Ferst 4329193eaa9SMatheus FerstMTVSRBM 000100 ..... 10000 ..... 11001000010 @VX_tb 4339193eaa9SMatheus FerstMTVSRHM 000100 ..... 10001 ..... 11001000010 @VX_tb 4349193eaa9SMatheus FerstMTVSRWM 000100 ..... 10010 ..... 11001000010 @VX_tb 4359193eaa9SMatheus FerstMTVSRDM 000100 ..... 10011 ..... 11001000010 @VX_tb 4369193eaa9SMatheus FerstMTVSRQM 000100 ..... 10100 ..... 11001000010 @VX_tb 4379193eaa9SMatheus FerstMTVSRBMI 000100 ..... ..... .......... 01010 . @DX_b 4389193eaa9SMatheus Ferst 4395f1470b0SMatheus FerstVEXPANDBM 000100 ..... 00000 ..... 11001000010 @VX_tb 4405f1470b0SMatheus FerstVEXPANDHM 000100 ..... 00001 ..... 11001000010 @VX_tb 4415f1470b0SMatheus FerstVEXPANDWM 000100 ..... 00010 ..... 11001000010 @VX_tb 4425f1470b0SMatheus FerstVEXPANDDM 000100 ..... 00011 ..... 11001000010 @VX_tb 4435f1470b0SMatheus FerstVEXPANDQM 000100 ..... 00100 ..... 11001000010 @VX_tb 4445f1470b0SMatheus Ferst 44517868d81SMatheus FerstVEXTRACTBM 000100 ..... 01000 ..... 11001000010 @VX_tb 44617868d81SMatheus FerstVEXTRACTHM 000100 ..... 01001 ..... 11001000010 @VX_tb 44717868d81SMatheus FerstVEXTRACTWM 000100 ..... 01010 ..... 11001000010 @VX_tb 44817868d81SMatheus FerstVEXTRACTDM 000100 ..... 01011 ..... 11001000010 @VX_tb 44917868d81SMatheus FerstVEXTRACTQM 000100 ..... 01100 ..... 11001000010 @VX_tb 45017868d81SMatheus Ferst 45180eca687SLucas Mateus Castro (alqotel)## Vector Multiply Instruction 45280eca687SLucas Mateus Castro (alqotel) 45380eca687SLucas Mateus Castro (alqotel)VMULESB 000100 ..... ..... ..... 01100001000 @VX 45480eca687SLucas Mateus Castro (alqotel)VMULOSB 000100 ..... ..... ..... 00100001000 @VX 45580eca687SLucas Mateus Castro (alqotel)VMULEUB 000100 ..... ..... ..... 01000001000 @VX 45680eca687SLucas Mateus Castro (alqotel)VMULOUB 000100 ..... ..... ..... 00000001000 @VX 45780eca687SLucas Mateus Castro (alqotel) 45880eca687SLucas Mateus Castro (alqotel)VMULESH 000100 ..... ..... ..... 01101001000 @VX 45980eca687SLucas Mateus Castro (alqotel)VMULOSH 000100 ..... ..... ..... 00101001000 @VX 46080eca687SLucas Mateus Castro (alqotel)VMULEUH 000100 ..... ..... ..... 01001001000 @VX 46180eca687SLucas Mateus Castro (alqotel)VMULOUH 000100 ..... ..... ..... 00001001000 @VX 46280eca687SLucas Mateus Castro (alqotel) 46380eca687SLucas Mateus Castro (alqotel)VMULESW 000100 ..... ..... ..... 01110001000 @VX 46480eca687SLucas Mateus Castro (alqotel)VMULOSW 000100 ..... ..... ..... 00110001000 @VX 46580eca687SLucas Mateus Castro (alqotel)VMULEUW 000100 ..... ..... ..... 01010001000 @VX 46680eca687SLucas Mateus Castro (alqotel)VMULOUW 000100 ..... ..... ..... 00010001000 @VX 46780eca687SLucas Mateus Castro (alqotel) 46880eca687SLucas Mateus Castro (alqotel)VMULESD 000100 ..... ..... ..... 01111001000 @VX 46980eca687SLucas Mateus Castro (alqotel)VMULOSD 000100 ..... ..... ..... 00111001000 @VX 47080eca687SLucas Mateus Castro (alqotel)VMULEUD 000100 ..... ..... ..... 01011001000 @VX 47180eca687SLucas Mateus Castro (alqotel)VMULOUD 000100 ..... ..... ..... 00011001000 @VX 47280eca687SLucas Mateus Castro (alqotel) 473d45da014SLucas Mateus Castro (alqotel)VMULHSW 000100 ..... ..... ..... 01110001001 @VX 474d45da014SLucas Mateus Castro (alqotel)VMULHUW 000100 ..... ..... ..... 01010001001 @VX 475d45da014SLucas Mateus Castro (alqotel)VMULHSD 000100 ..... ..... ..... 01111001001 @VX 476d45da014SLucas Mateus Castro (alqotel)VMULHUD 000100 ..... ..... ..... 01011001001 @VX 477d45da014SLucas Mateus Castro (alqotel)VMULLD 000100 ..... ..... ..... 00111001001 @VX 478d45da014SLucas Mateus Castro (alqotel) 4795476ef1dSVíctor Colombo## Vector Multiply-Sum Instructions 4805476ef1dSVíctor Colombo 4815476ef1dSVíctor ColomboVMSUMCUD 000100 ..... ..... ..... ..... 010111 @VA 482536f9876SVíctor ColomboVMSUMUDM 000100 ..... ..... ..... ..... 100011 @VA 4835476ef1dSVíctor Colombo 48472b70d5cSLucas Mateus Castro (alqotel)# VSX Load/Store Instructions 48572b70d5cSLucas Mateus Castro (alqotel) 48672b70d5cSLucas Mateus Castro (alqotel)LXV 111101 ..... ..... ............ . 001 @DQ_TSX 48772b70d5cSLucas Mateus Castro (alqotel)STXV 111101 ..... ..... ............ . 101 @DQ_TSX 48896fa2632SLucas Mateus Castro (alqotel)LXVP 000110 ..... ..... ............ 0000 @DQ_TSXP 48996fa2632SLucas Mateus Castro (alqotel)STXVP 000110 ..... ..... ............ 0001 @DQ_TSXP 49070426b5bSLucas Mateus Castro (alqotel)LXVX 011111 ..... ..... ..... 0100 - 01100 . @X_TSX 49170426b5bSLucas Mateus Castro (alqotel)STXVX 011111 ..... ..... ..... 0110001100 . @X_TSX 492226ce506SLucas Mateus Castro (alqotel)LXVPX 011111 ..... ..... ..... 0101001101 - @X_TSXP 493226ce506SLucas Mateus Castro (alqotel)STXVPX 011111 ..... ..... ..... 0111001101 - @X_TSXP 49430dfca8dSBruno Larsen (billionai) 49530dfca8dSBruno Larsen (billionai)## VSX splat instruction 49630dfca8dSBruno Larsen (billionai) 4976166fcedSBruno Larsen (billionai)XXSPLTIB 111100 ..... 00 ........ 0101101000 . @X_imm8 49830dfca8dSBruno Larsen (billionai)XXSPLTW 111100 ..... ---.. ..... 010100100 . . @XX2 4996e26b85dSMatheus Ferst 5006e26b85dSMatheus Ferst## VSX Vector Load Special Value Instruction 5016e26b85dSMatheus Ferst 5026e26b85dSMatheus FerstLXVKQ 111100 ..... 11111 ..... 0101101000 . @X_uim5 503c5df1898SVictor Colombo 504c5df1898SVictor Colombo## VSX Comparison Instructions 505c5df1898SVictor Colombo 506c5df1898SVictor ColomboXSMAXCDP 111100 ..... ..... ..... 10000000 ... @XX3 507c5df1898SVictor ColomboXSMINCDP 111100 ..... ..... ..... 10001000 ... @XX3 508c5df1898SVictor ColomboXSMAXJDP 111100 ..... ..... ..... 10010000 ... @XX3 509c5df1898SVictor ColomboXSMINJDP 111100 ..... ..... ..... 10011000 ... @XX3 510caf6f9b5SMatheus Ferst 511caf6f9b5SMatheus Ferst## VSX Binary Floating-Point Convert Instructions 512caf6f9b5SMatheus Ferst 513caf6f9b5SMatheus FerstXSCVQPDP 111111 ..... 10100 ..... 1101000100 . @X_tb_rc 5141f26c751SDaniel Henrique Barboza 5151f26c751SDaniel Henrique Barboza### rfebb 5161f26c751SDaniel Henrique Barboza&XL_s s:uint8_t 5171f26c751SDaniel Henrique Barboza@XL_s ......-------------- s:1 .......... - &XL_s 5181f26c751SDaniel Henrique BarbozaRFEBB 010011-------------- . 0010010010 - @XL_s 519