2 # Power ISA decode for 64-bit prefixed insns (opcode space 0 and 1)
4 # Copyright (c) 2021 Instituto de Pesquisas Eldorado (eldorado.org.br)
6 # This library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License, or (at your option) any later version.
11 # This library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Lesser General Public License for more details.
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this library; if not, see <http://www.gnu.org/licenses/>.
20 # Format MLS:D and 8LS:D
21 &PLS_D rt ra si:int64_t r:bool
23 @PLS_D ...... .. ... r:1 .. .................. \
24 ...... rt:5 ra:5 ................ \
27 ### Fixed-Point Load Instructions
29 PLBZ 000001 10 0--.-- .................. \
30 100010 ..... ..... ................ @PLS_D
31 PLHZ 000001 10 0--.-- .................. \
32 101000 ..... ..... ................ @PLS_D
33 PLHA 000001 10 0--.-- .................. \
34 101010 ..... ..... ................ @PLS_D
35 PLWZ 000001 10 0--.-- .................. \
36 100000 ..... ..... ................ @PLS_D
37 PLWA 000001 00 0--.-- .................. \
38 101001 ..... ..... ................ @PLS_D
39 PLD 000001 00 0--.-- .................. \
40 111001 ..... ..... ................ @PLS_D
42 ### Fixed-Point Store Instructions
44 PSTW 000001 10 0--.-- .................. \
45 100100 ..... ..... ................ @PLS_D
46 PSTB 000001 10 0--.-- .................. \
47 100110 ..... ..... ................ @PLS_D
48 PSTH 000001 10 0--.-- .................. \
49 101100 ..... ..... ................ @PLS_D
51 PSTD 000001 00 0--.-- .................. \
52 111101 ..... ..... ................ @PLS_D
54 ### Fixed-Point Arithmetic Instructions
56 PADDI 000001 10 0--.-- .................. \
57 001110 ..... ..... ................ @PLS_D
59 ### Prefixed No-operation Instruction
61 @PNOP 000001 11 0000-- 000000000000000000 \
62 ................................
66 ## Invalid suffixes: Branch instruction
68 INVALID ................................ \
69 010000-------------------------- @PNOP
71 INVALID ................................ \
72 010010-------------------------- @PNOP
74 INVALID ................................ \
75 010011---------------0000010000- @PNOP
77 INVALID ................................ \
78 010011---------------1000010000- @PNOP
80 INVALID ................................ \
81 010011---------------1000110000- @PNOP
83 ## Invalid suffixes: rfebb
84 INVALID ................................ \
85 010011---------------0010010010- @PNOP
87 ## Invalid suffixes: context synchronizing other than isync
89 INVALID ................................ \
90 010001------------------------1- @PNOP
92 INVALID ................................ \
93 010001------------------------01 @PNOP
95 INVALID ................................ \
96 010011---------------0001010010- @PNOP
98 INVALID ................................ \
99 010011---------------0000010010- @PNOP
101 INVALID ................................ \
102 010011---------------0100010010- @PNOP
104 INVALID ................................ \
105 010011---------------0100110010- @PNOP
107 INVALID ................................ \
108 010011---------------0101110010- @PNOP
110 INVALID ................................ \
111 011111---------0-----0010010010- @PNOP
113 INVALID ................................ \
114 011111---------0-----0010110010- @PNOP
116 ## Invalid suffixes: Service Processor Attention
117 INVALID ................................ \
118 000000----------------100000000- @PNOP
122 PNOP ................................ \
123 -------------------------------- @PNOP