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) 357eec8cbbSLeandro Lupori@8LS_D ...... .. . .. r:1 .. .................. \ 367eec8cbbSLeandro Lupori ...... rt:5 ra:5 ................ \ 377eec8cbbSLeandro Lupori &PLS_D si=%pls_si 387eec8cbbSLeandro Lupori 39aa4592faSBruno Larsen (billionai)# Format 8RR:D 40aa4592faSBruno Larsen (billionai)%8rr_si 32:s16 0:16 41aa4592faSBruno Larsen (billionai)%8rr_xt 16:1 21:5 42aa4592faSBruno Larsen (billionai)&8RR_D_IX xt ix si 43aa4592faSBruno Larsen (billionai)@8RR_D_IX ...... .. .... .. .. ................ \ 44aa4592faSBruno Larsen (billionai) ...... ..... ... ix:1 . ................ \ 45aa4592faSBruno Larsen (billionai) &8RR_D_IX si=%8rr_si xt=%8rr_xt 46ec10f73eSBruno Larsen (billionai)&8RR_D xt si:int32_t 47ec10f73eSBruno Larsen (billionai)@8RR_D ...... .. .... .. .. ................ \ 48ec10f73eSBruno Larsen (billionai) ...... ..... .... . ................ \ 49ec10f73eSBruno Larsen (billionai) &8RR_D si=%8rr_si xt=%8rr_xt 50aa4592faSBruno Larsen (billionai) 5143d55fc2SMatheus Ferst# Format 8RR:XX4 5243d55fc2SMatheus Ferst%8rr_xx_xt 0:1 21:5 5343d55fc2SMatheus Ferst%8rr_xx_xa 2:1 16:5 5443d55fc2SMatheus Ferst%8rr_xx_xb 1:1 11:5 5543d55fc2SMatheus Ferst%8rr_xx_xc 3:1 6:5 5643d55fc2SMatheus Ferst&8RR_XX4 xt xa xb xc 5743d55fc2SMatheus Ferst@8RR_XX4 ........ ........ ........ ........ \ 58788c6399SMatheus Ferst ...... ..... ..... ..... ..... .. .... \ 5943d55fc2SMatheus Ferst &8RR_XX4 xt=%8rr_xx_xt xa=%8rr_xx_xa xb=%8rr_xx_xb xc=%8rr_xx_xc 60788c6399SMatheus Ferst 611015fcabSMatheus Ferst&8RR_XX4_imm xt xa xb xc imm 621015fcabSMatheus Ferst@8RR_XX4_imm ........ ........ ........ imm:8 \ 631015fcabSMatheus Ferst ...... ..... ..... ..... ..... .. .... \ 641015fcabSMatheus Ferst &8RR_XX4_imm xt=%8rr_xx_xt xa=%8rr_xx_xa xb=%8rr_xx_xb xc=%8rr_xx_xc 651015fcabSMatheus Ferst 6641c2877fSMatheus Ferst&8RR_XX4_uim3 xt xa xb xc uim3 6741c2877fSMatheus Ferst@8RR_XX4_uim3 ...... .. .... .. ............... uim3:3 \ 6841c2877fSMatheus Ferst ...... ..... ..... ..... ..... .. .... \ 6941c2877fSMatheus Ferst &8RR_XX4_uim3 xt=%8rr_xx_xt xa=%8rr_xx_xa xb=%8rr_xx_xb xc=%8rr_xx_xc 7041c2877fSMatheus Ferst 7100e03265SRichard Henderson### Fixed-Point Load Instructions 7200e03265SRichard Henderson 7300e03265SRichard HendersonPLBZ 000001 10 0--.-- .................. \ 7400e03265SRichard Henderson 100010 ..... ..... ................ @PLS_D 7500e03265SRichard HendersonPLHZ 000001 10 0--.-- .................. \ 7600e03265SRichard Henderson 101000 ..... ..... ................ @PLS_D 7700e03265SRichard HendersonPLHA 000001 10 0--.-- .................. \ 7800e03265SRichard Henderson 101010 ..... ..... ................ @PLS_D 7900e03265SRichard HendersonPLWZ 000001 10 0--.-- .................. \ 8000e03265SRichard Henderson 100000 ..... ..... ................ @PLS_D 8100e03265SRichard HendersonPLWA 000001 00 0--.-- .................. \ 8200e03265SRichard Henderson 101001 ..... ..... ................ @PLS_D 8300e03265SRichard HendersonPLD 000001 00 0--.-- .................. \ 8400e03265SRichard Henderson 111001 ..... ..... ................ @PLS_D 8549de0648SMatheus FerstPLQ 000001 00 0--.-- .................. \ 8649de0648SMatheus Ferst 111000 ..... ..... ................ @PLS_D 8700e03265SRichard Henderson 88b0f7bebcSRichard Henderson### Fixed-Point Store Instructions 89b0f7bebcSRichard Henderson 90b0f7bebcSRichard HendersonPSTW 000001 10 0--.-- .................. \ 91b0f7bebcSRichard Henderson 100100 ..... ..... ................ @PLS_D 92b0f7bebcSRichard HendersonPSTB 000001 10 0--.-- .................. \ 93b0f7bebcSRichard Henderson 100110 ..... ..... ................ @PLS_D 94b0f7bebcSRichard HendersonPSTH 000001 10 0--.-- .................. \ 95b0f7bebcSRichard Henderson 101100 ..... ..... ................ @PLS_D 96b0f7bebcSRichard Henderson 97b0f7bebcSRichard HendersonPSTD 000001 00 0--.-- .................. \ 98b0f7bebcSRichard Henderson 111101 ..... ..... ................ @PLS_D 9949de0648SMatheus FerstPSTQ 000001 00 0--.-- .................. \ 10049de0648SMatheus Ferst 111100 ..... ..... ................ @PLS_D 101b0f7bebcSRichard Henderson 1025e560864SRichard Henderson### Fixed-Point Arithmetic Instructions 1035e560864SRichard Henderson 1045e560864SRichard HendersonPADDI 000001 10 0--.-- .................. \ 1055e560864SRichard Henderson 001110 ..... ..... ................ @PLS_D 1060a11bb7aSRichard Henderson 107dcb4e5b7SFernando Eckhardt Valle### Float-Point Load and Store Instructions 108dcb4e5b7SFernando Eckhardt Valle 109dcb4e5b7SFernando Eckhardt VallePLFS 000001 10 0--.-- .................. \ 110dcb4e5b7SFernando Eckhardt Valle 110000 ..... ..... ................ @PLS_D 111dcb4e5b7SFernando Eckhardt VallePLFD 000001 10 0--.-- .................. \ 112dcb4e5b7SFernando Eckhardt Valle 110010 ..... ..... ................ @PLS_D 113dcb4e5b7SFernando Eckhardt VallePSTFS 000001 10 0--.-- .................. \ 114dcb4e5b7SFernando Eckhardt Valle 110100 ..... ..... ................ @PLS_D 115dcb4e5b7SFernando Eckhardt VallePSTFD 000001 10 0--.-- .................. \ 116dcb4e5b7SFernando Eckhardt Valle 110110 ..... ..... ................ @PLS_D 117dcb4e5b7SFernando Eckhardt Valle 1180a11bb7aSRichard Henderson### Prefixed No-operation Instruction 1190a11bb7aSRichard Henderson 1200a11bb7aSRichard Henderson@PNOP 000001 11 0000-- 000000000000000000 \ 1210a11bb7aSRichard Henderson ................................ 1220a11bb7aSRichard Henderson 1230a11bb7aSRichard Henderson{ 1240a11bb7aSRichard Henderson [ 1250a11bb7aSRichard Henderson ## Invalid suffixes: Branch instruction 1260a11bb7aSRichard Henderson # bc[l][a] 1270a11bb7aSRichard Henderson INVALID ................................ \ 1280a11bb7aSRichard Henderson 010000-------------------------- @PNOP 1290a11bb7aSRichard Henderson # b[l][a] 1300a11bb7aSRichard Henderson INVALID ................................ \ 1310a11bb7aSRichard Henderson 010010-------------------------- @PNOP 1320a11bb7aSRichard Henderson # bclr[l] 1330a11bb7aSRichard Henderson INVALID ................................ \ 1340a11bb7aSRichard Henderson 010011---------------0000010000- @PNOP 1350a11bb7aSRichard Henderson # bcctr[l] 1360a11bb7aSRichard Henderson INVALID ................................ \ 1370a11bb7aSRichard Henderson 010011---------------1000010000- @PNOP 1380a11bb7aSRichard Henderson # bctar[l] 1390a11bb7aSRichard Henderson INVALID ................................ \ 1400a11bb7aSRichard Henderson 010011---------------1000110000- @PNOP 1410a11bb7aSRichard Henderson 1420a11bb7aSRichard Henderson ## Invalid suffixes: rfebb 1430a11bb7aSRichard Henderson INVALID ................................ \ 1440a11bb7aSRichard Henderson 010011---------------0010010010- @PNOP 1450a11bb7aSRichard Henderson 1460a11bb7aSRichard Henderson ## Invalid suffixes: context synchronizing other than isync 1470a11bb7aSRichard Henderson # sc 1480a11bb7aSRichard Henderson INVALID ................................ \ 1490a11bb7aSRichard Henderson 010001------------------------1- @PNOP 1500a11bb7aSRichard Henderson # scv 1510a11bb7aSRichard Henderson INVALID ................................ \ 1520a11bb7aSRichard Henderson 010001------------------------01 @PNOP 1530a11bb7aSRichard Henderson # rfscv 1540a11bb7aSRichard Henderson INVALID ................................ \ 1550a11bb7aSRichard Henderson 010011---------------0001010010- @PNOP 1560a11bb7aSRichard Henderson # rfid 1570a11bb7aSRichard Henderson INVALID ................................ \ 1580a11bb7aSRichard Henderson 010011---------------0000010010- @PNOP 1590a11bb7aSRichard Henderson # hrfid 1600a11bb7aSRichard Henderson INVALID ................................ \ 1610a11bb7aSRichard Henderson 010011---------------0100010010- @PNOP 1620a11bb7aSRichard Henderson # urfid 1630a11bb7aSRichard Henderson INVALID ................................ \ 1640a11bb7aSRichard Henderson 010011---------------0100110010- @PNOP 1650a11bb7aSRichard Henderson # stop 1660a11bb7aSRichard Henderson INVALID ................................ \ 1670a11bb7aSRichard Henderson 010011---------------0101110010- @PNOP 1680a11bb7aSRichard Henderson # mtmsr w/ L=0 1690a11bb7aSRichard Henderson INVALID ................................ \ 1700a11bb7aSRichard Henderson 011111---------0-----0010010010- @PNOP 1710a11bb7aSRichard Henderson # mtmsrd w/ L=0 1720a11bb7aSRichard Henderson INVALID ................................ \ 1730a11bb7aSRichard Henderson 011111---------0-----0010110010- @PNOP 1740a11bb7aSRichard Henderson 1750a11bb7aSRichard Henderson ## Invalid suffixes: Service Processor Attention 1760a11bb7aSRichard Henderson INVALID ................................ \ 1770a11bb7aSRichard Henderson 000000----------------100000000- @PNOP 1780a11bb7aSRichard Henderson ] 1790a11bb7aSRichard Henderson 1800a11bb7aSRichard Henderson ## Valid suffixes 1810a11bb7aSRichard Henderson PNOP ................................ \ 1820a11bb7aSRichard Henderson -------------------------------- @PNOP 1830a11bb7aSRichard Henderson} 1845301d021SLucas Mateus Castro (alqotel) 1855301d021SLucas Mateus Castro (alqotel)### VSX instructions 1865301d021SLucas Mateus Castro (alqotel) 1877eec8cbbSLeandro LuporiPLXSD 000001 00 0--.-- .................. \ 1887eec8cbbSLeandro Lupori 101010 ..... ..... ................ @8LS_D 1897eec8cbbSLeandro Lupori 1907eec8cbbSLeandro LuporiPSTXSD 000001 00 0--.-- .................. \ 1917eec8cbbSLeandro Lupori 101110 ..... ..... ................ @8LS_D 1927eec8cbbSLeandro Lupori 193*20e2d04eSLeandro LuporiPLXSSP 000001 00 0--.-- .................. \ 194*20e2d04eSLeandro Lupori 101011 ..... ..... ................ @8LS_D 195*20e2d04eSLeandro Lupori 196*20e2d04eSLeandro LuporiPSTXSSP 000001 00 0--.-- .................. \ 197*20e2d04eSLeandro Lupori 101111 ..... ..... ................ @8LS_D 198*20e2d04eSLeandro Lupori 1995301d021SLucas Mateus Castro (alqotel)PLXV 000001 00 0--.-- .................. \ 2005301d021SLucas Mateus Castro (alqotel) 11001 ...... ..... ................ @8LS_D_TSX 2015301d021SLucas Mateus Castro (alqotel)PSTXV 000001 00 0--.-- .................. \ 2025301d021SLucas Mateus Castro (alqotel) 11011 ...... ..... ................ @8LS_D_TSX 203dcbf4831SLucas Mateus Castro (alqotel)PLXVP 000001 00 0--.-- .................. \ 204dcbf4831SLucas Mateus Castro (alqotel) 111010 ..... ..... ................ @8LS_D_TSXP 205dcbf4831SLucas Mateus Castro (alqotel)PSTXVP 000001 00 0--.-- .................. \ 206dcbf4831SLucas Mateus Castro (alqotel) 111110 ..... ..... ................ @8LS_D_TSXP 207aa4592faSBruno Larsen (billionai) 2081015fcabSMatheus FerstXXEVAL 000001 01 0000 -- ---------- ........ \ 2091015fcabSMatheus Ferst 100010 ..... ..... ..... ..... 01 .... @8RR_XX4_imm 2101015fcabSMatheus Ferst 211236a6285SBruno Larsen (billionai)XXSPLTIDP 000001 01 0000 -- -- ................ \ 212236a6285SBruno Larsen (billionai) 100000 ..... 0010 . ................ @8RR_D 213ec10f73eSBruno Larsen (billionai)XXSPLTIW 000001 01 0000 -- -- ................ \ 214ec10f73eSBruno Larsen (billionai) 100000 ..... 0011 . ................ @8RR_D 215aa4592faSBruno Larsen (billionai)XXSPLTI32DX 000001 01 0000 -- -- ................ \ 216aa4592faSBruno Larsen (billionai) 100000 ..... 000 .. ................ @8RR_D_IX 217788c6399SMatheus Ferst 218788c6399SMatheus FerstXXBLENDVD 000001 01 0000 -- ------------------ \ 21943d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 11 .... @8RR_XX4 220788c6399SMatheus FerstXXBLENDVW 000001 01 0000 -- ------------------ \ 22143d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 10 .... @8RR_XX4 222788c6399SMatheus FerstXXBLENDVH 000001 01 0000 -- ------------------ \ 22343d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 01 .... @8RR_XX4 224788c6399SMatheus FerstXXBLENDVB 000001 01 0000 -- ------------------ \ 22543d55fc2SMatheus Ferst 100001 ..... ..... ..... ..... 00 .... @8RR_XX4 22641c2877fSMatheus Ferst 22741c2877fSMatheus FerstXXPERMX 000001 01 0000 -- --------------- ... \ 22841c2877fSMatheus Ferst 100010 ..... ..... ..... ..... 00 .... @8RR_XX4_uim3 229