199082815SRichard Henderson# 299082815SRichard Henderson# Power ISA decode for 64-bit prefixed insns (opcode space 0 and 1) 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# Format MLS:D and 8LS:D 215e560864SRichard Henderson&PLS_D rt ra si:int64_t r:bool 225e560864SRichard Henderson%pls_si 32:s18 0:16 235e560864SRichard Henderson@PLS_D ...... .. ... r:1 .. .................. \ 245e560864SRichard Henderson ...... rt:5 ra:5 ................ \ 255e560864SRichard Henderson &PLS_D si=%pls_si 265301d021SLucas Mateus Castro (alqotel)@8LS_D_TSX ...... .. . .. r:1 .. .................. \ 275301d021SLucas Mateus Castro (alqotel) ..... rt:6 ra:5 ................ \ 285301d021SLucas Mateus Castro (alqotel) &PLS_D si=%pls_si 295e560864SRichard Henderson 30dcbf4831SLucas Mateus Castro (alqotel)%rt_tsxp 21:1 22:4 !function=times_2 31dcbf4831SLucas Mateus Castro (alqotel)@8LS_D_TSXP ...... .. . .. r:1 .. .................. \ 32dcbf4831SLucas Mateus Castro (alqotel) ...... ..... ra:5 ................ \ 33dcbf4831SLucas Mateus Castro (alqotel) &PLS_D si=%pls_si rt=%rt_tsxp 34dcbf4831SLucas Mateus Castro (alqotel) 35aa4592faSBruno Larsen (billionai)# Format 8RR:D 36aa4592faSBruno Larsen (billionai)%8rr_si 32:s16 0:16 37aa4592faSBruno Larsen (billionai)%8rr_xt 16:1 21:5 38aa4592faSBruno Larsen (billionai)&8RR_D_IX xt ix si 39aa4592faSBruno Larsen (billionai)@8RR_D_IX ...... .. .... .. .. ................ \ 40aa4592faSBruno Larsen (billionai) ...... ..... ... ix:1 . ................ \ 41aa4592faSBruno Larsen (billionai) &8RR_D_IX si=%8rr_si xt=%8rr_xt 42ec10f73eSBruno Larsen (billionai)&8RR_D xt si:int32_t 43ec10f73eSBruno Larsen (billionai)@8RR_D ...... .. .... .. .. ................ \ 44ec10f73eSBruno Larsen (billionai) ...... ..... .... . ................ \ 45ec10f73eSBruno Larsen (billionai) &8RR_D si=%8rr_si xt=%8rr_xt 46aa4592faSBruno Larsen (billionai) 47*43d55fc2SMatheus Ferst# Format 8RR:XX4 48*43d55fc2SMatheus Ferst%8rr_xx_xt 0:1 21:5 49*43d55fc2SMatheus Ferst%8rr_xx_xa 2:1 16:5 50*43d55fc2SMatheus Ferst%8rr_xx_xb 1:1 11:5 51*43d55fc2SMatheus Ferst%8rr_xx_xc 3:1 6:5 52*43d55fc2SMatheus Ferst&8RR_XX4 xt xa xb xc 53*43d55fc2SMatheus Ferst@8RR_XX4 ........ ........ ........ ........ \ 54788c6399SMatheus Ferst ...... ..... ..... ..... ..... .. .... \ 55*43d55fc2SMatheus Ferst &8RR_XX4 xt=%8rr_xx_xt xa=%8rr_xx_xa xb=%8rr_xx_xb xc=%8rr_xx_xc 56788c6399SMatheus Ferst 5700e03265SRichard Henderson### Fixed-Point Load Instructions 5800e03265SRichard Henderson 5900e03265SRichard HendersonPLBZ 000001 10 0--.-- .................. \ 6000e03265SRichard Henderson 100010 ..... ..... ................ @PLS_D 6100e03265SRichard HendersonPLHZ 000001 10 0--.-- .................. \ 6200e03265SRichard Henderson 101000 ..... ..... ................ @PLS_D 6300e03265SRichard HendersonPLHA 000001 10 0--.-- .................. \ 6400e03265SRichard Henderson 101010 ..... ..... ................ @PLS_D 6500e03265SRichard HendersonPLWZ 000001 10 0--.-- .................. \ 6600e03265SRichard Henderson 100000 ..... ..... ................ @PLS_D 6700e03265SRichard HendersonPLWA 000001 00 0--.-- .................. \ 6800e03265SRichard Henderson 101001 ..... ..... ................ @PLS_D 6900e03265SRichard HendersonPLD 000001 00 0--.-- .................. \ 7000e03265SRichard Henderson 111001 ..... ..... ................ @PLS_D 7149de0648SMatheus FerstPLQ 000001 00 0--.-- .................. \ 7249de0648SMatheus Ferst 111000 ..... ..... ................ @PLS_D 7300e03265SRichard Henderson 74b0f7bebcSRichard Henderson### Fixed-Point Store Instructions 75b0f7bebcSRichard Henderson 76b0f7bebcSRichard HendersonPSTW 000001 10 0--.-- .................. \ 77b0f7bebcSRichard Henderson 100100 ..... ..... ................ @PLS_D 78b0f7bebcSRichard HendersonPSTB 000001 10 0--.-- .................. \ 79b0f7bebcSRichard Henderson 100110 ..... ..... ................ @PLS_D 80b0f7bebcSRichard HendersonPSTH 000001 10 0--.-- .................. \ 81b0f7bebcSRichard Henderson 101100 ..... ..... ................ @PLS_D 82b0f7bebcSRichard Henderson 83b0f7bebcSRichard HendersonPSTD 000001 00 0--.-- .................. \ 84b0f7bebcSRichard Henderson 111101 ..... ..... ................ @PLS_D 8549de0648SMatheus FerstPSTQ 000001 00 0--.-- .................. \ 8649de0648SMatheus Ferst 111100 ..... ..... ................ @PLS_D 87b0f7bebcSRichard Henderson 885e560864SRichard Henderson### Fixed-Point Arithmetic Instructions 895e560864SRichard Henderson 905e560864SRichard HendersonPADDI 000001 10 0--.-- .................. \ 915e560864SRichard Henderson 001110 ..... ..... ................ @PLS_D 920a11bb7aSRichard Henderson 93dcb4e5b7SFernando Eckhardt Valle### Float-Point Load and Store Instructions 94dcb4e5b7SFernando Eckhardt Valle 95dcb4e5b7SFernando Eckhardt VallePLFS 000001 10 0--.-- .................. \ 96dcb4e5b7SFernando Eckhardt Valle 110000 ..... ..... ................ @PLS_D 97dcb4e5b7SFernando Eckhardt VallePLFD 000001 10 0--.-- .................. \ 98dcb4e5b7SFernando Eckhardt Valle 110010 ..... ..... ................ @PLS_D 99dcb4e5b7SFernando Eckhardt VallePSTFS 000001 10 0--.-- .................. \ 100dcb4e5b7SFernando Eckhardt Valle 110100 ..... ..... ................ @PLS_D 101dcb4e5b7SFernando Eckhardt VallePSTFD 000001 10 0--.-- .................. \ 102dcb4e5b7SFernando Eckhardt Valle 110110 ..... ..... ................ @PLS_D 103dcb4e5b7SFernando Eckhardt Valle 1040a11bb7aSRichard Henderson### Prefixed No-operation Instruction 1050a11bb7aSRichard Henderson 1060a11bb7aSRichard Henderson@PNOP 000001 11 0000-- 000000000000000000 \ 1070a11bb7aSRichard Henderson ................................ 1080a11bb7aSRichard Henderson 1090a11bb7aSRichard Henderson{ 1100a11bb7aSRichard Henderson [ 1110a11bb7aSRichard Henderson ## Invalid suffixes: Branch instruction 1120a11bb7aSRichard Henderson # bc[l][a] 1130a11bb7aSRichard Henderson INVALID ................................ \ 1140a11bb7aSRichard Henderson 010000-------------------------- @PNOP 1150a11bb7aSRichard Henderson # b[l][a] 1160a11bb7aSRichard Henderson INVALID ................................ \ 1170a11bb7aSRichard Henderson 010010-------------------------- @PNOP 1180a11bb7aSRichard Henderson # bclr[l] 1190a11bb7aSRichard Henderson INVALID ................................ \ 1200a11bb7aSRichard Henderson 010011---------------0000010000- @PNOP 1210a11bb7aSRichard Henderson # bcctr[l] 1220a11bb7aSRichard Henderson INVALID ................................ \ 1230a11bb7aSRichard Henderson 010011---------------1000010000- @PNOP 1240a11bb7aSRichard Henderson # bctar[l] 1250a11bb7aSRichard Henderson INVALID ................................ \ 1260a11bb7aSRichard Henderson 010011---------------1000110000- @PNOP 1270a11bb7aSRichard Henderson 1280a11bb7aSRichard Henderson ## Invalid suffixes: rfebb 1290a11bb7aSRichard Henderson INVALID ................................ \ 1300a11bb7aSRichard Henderson 010011---------------0010010010- @PNOP 1310a11bb7aSRichard Henderson 1320a11bb7aSRichard Henderson ## Invalid suffixes: context synchronizing other than isync 1330a11bb7aSRichard Henderson # sc 1340a11bb7aSRichard Henderson INVALID ................................ \ 1350a11bb7aSRichard Henderson 010001------------------------1- @PNOP 1360a11bb7aSRichard Henderson # scv 1370a11bb7aSRichard Henderson INVALID ................................ \ 1380a11bb7aSRichard Henderson 010001------------------------01 @PNOP 1390a11bb7aSRichard Henderson # rfscv 1400a11bb7aSRichard Henderson INVALID ................................ \ 1410a11bb7aSRichard Henderson 010011---------------0001010010- @PNOP 1420a11bb7aSRichard Henderson # rfid 1430a11bb7aSRichard Henderson INVALID ................................ \ 1440a11bb7aSRichard Henderson 010011---------------0000010010- @PNOP 1450a11bb7aSRichard Henderson # hrfid 1460a11bb7aSRichard Henderson INVALID ................................ \ 1470a11bb7aSRichard Henderson 010011---------------0100010010- @PNOP 1480a11bb7aSRichard Henderson # urfid 1490a11bb7aSRichard Henderson INVALID ................................ \ 1500a11bb7aSRichard Henderson 010011---------------0100110010- @PNOP 1510a11bb7aSRichard Henderson # stop 1520a11bb7aSRichard Henderson INVALID ................................ \ 1530a11bb7aSRichard Henderson 010011---------------0101110010- @PNOP 1540a11bb7aSRichard Henderson # mtmsr w/ L=0 1550a11bb7aSRichard Henderson INVALID ................................ \ 1560a11bb7aSRichard Henderson 011111---------0-----0010010010- @PNOP 1570a11bb7aSRichard Henderson # mtmsrd w/ L=0 1580a11bb7aSRichard Henderson INVALID ................................ \ 1590a11bb7aSRichard Henderson 011111---------0-----0010110010- @PNOP 1600a11bb7aSRichard Henderson 1610a11bb7aSRichard Henderson ## Invalid suffixes: Service Processor Attention 1620a11bb7aSRichard Henderson INVALID ................................ \ 1630a11bb7aSRichard Henderson 000000----------------100000000- @PNOP 1640a11bb7aSRichard Henderson ] 1650a11bb7aSRichard Henderson 1660a11bb7aSRichard Henderson ## Valid suffixes 1670a11bb7aSRichard Henderson PNOP ................................ \ 1680a11bb7aSRichard Henderson -------------------------------- @PNOP 1690a11bb7aSRichard Henderson} 1705301d021SLucas Mateus Castro (alqotel) 1715301d021SLucas Mateus Castro (alqotel)### VSX instructions 1725301d021SLucas Mateus Castro (alqotel) 1735301d021SLucas Mateus Castro (alqotel)PLXV 000001 00 0--.-- .................. \ 1745301d021SLucas Mateus Castro (alqotel) 11001 ...... ..... ................ @8LS_D_TSX 1755301d021SLucas Mateus Castro (alqotel)PSTXV 000001 00 0--.-- .................. \ 1765301d021SLucas Mateus Castro (alqotel) 11011 ...... ..... ................ @8LS_D_TSX 177dcbf4831SLucas Mateus Castro (alqotel)PLXVP 000001 00 0--.-- .................. \ 178dcbf4831SLucas Mateus Castro (alqotel) 111010 ..... ..... ................ @8LS_D_TSXP 179dcbf4831SLucas Mateus Castro (alqotel)PSTXVP 000001 00 0--.-- .................. \ 180dcbf4831SLucas Mateus Castro (alqotel) 111110 ..... ..... ................ @8LS_D_TSXP 181aa4592faSBruno Larsen (billionai) 182236a6285SBruno Larsen (billionai)XXSPLTIDP 000001 01 0000 -- -- ................ \ 183236a6285SBruno Larsen (billionai) 100000 ..... 0010 . ................ @8RR_D 184ec10f73eSBruno Larsen (billionai)XXSPLTIW 000001 01 0000 -- -- ................ \ 185ec10f73eSBruno Larsen (billionai) 100000 ..... 0011 . ................ @8RR_D 186aa4592faSBruno Larsen (billionai)XXSPLTI32DX 000001 01 0000 -- -- ................ \ 187aa4592faSBruno Larsen (billionai) 100000 ..... 000 .. ................ @8RR_D_IX 188788c6399SMatheus Ferst 189788c6399SMatheus FerstXXBLENDVD 000001 01 0000 -- ------------------ \ 190*43d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 11 .... @8RR_XX4 191788c6399SMatheus FerstXXBLENDVW 000001 01 0000 -- ------------------ \ 192*43d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 10 .... @8RR_XX4 193788c6399SMatheus FerstXXBLENDVH 000001 01 0000 -- ------------------ \ 194*43d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 01 .... @8RR_XX4 195788c6399SMatheus FerstXXBLENDVB 000001 01 0000 -- ------------------ \ 196*43d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 00 .... @8RR_XX4 197