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 23*8f0a4b6aSMatheus Ferst&D_bf bf l:bool ra imm 24*8f0a4b6aSMatheus Ferst@D_bfs ...... bf:3 - l:1 ra:5 imm:s16 &D_bf 25*8f0a4b6aSMatheus Ferst@D_bfu ...... bf:3 - l:1 ra:5 imm:16 &D_bf 26*8f0a4b6aSMatheus Ferst 27f2aabda8SRichard Henderson%ds_si 2:s14 !function=times_4 28f2aabda8SRichard Henderson@DS ...... rt:5 ra:5 .............. .. &D si=%ds_si 29f2aabda8SRichard Henderson 30e7a5d578SMatheus Ferst&DX rt d 31e7a5d578SMatheus Ferst%dx_d 6:s10 16:5 0:1 32e7a5d578SMatheus Ferst@DX ...... rt:5 ..... .......... ..... . &DX d=%dx_d 33e7a5d578SMatheus Ferst 34a5f56954SMatheus Ferst&VX vrt vra vrb 35a5f56954SMatheus Ferst@VX ...... vrt:5 vra:5 vrb:5 .......... . &VX 36a5f56954SMatheus Ferst 37f2aabda8SRichard Henderson&X rt ra rb 38f2aabda8SRichard Henderson@X ...... rt:5 ra:5 rb:5 .......... . &X 39f2aabda8SRichard Henderson 409a14365eSMatheus Ferst&X_bi rt bi 419a14365eSMatheus Ferst@X_bi ...... rt:5 bi:5 ----- .......... - &X_bi 429a14365eSMatheus Ferst 43*8f0a4b6aSMatheus Ferst&X_bfl bf l:bool ra rb 44*8f0a4b6aSMatheus Ferst@X_bfl ...... bf:3 - l:1 ra:5 rb:5 ..........- &X_bfl 45*8f0a4b6aSMatheus Ferst 46f2aabda8SRichard Henderson### Fixed-Point Load Instructions 47f2aabda8SRichard Henderson 48f2aabda8SRichard HendersonLBZ 100010 ..... ..... ................ @D 49f2aabda8SRichard HendersonLBZU 100011 ..... ..... ................ @D 50f2aabda8SRichard HendersonLBZX 011111 ..... ..... ..... 0001010111 - @X 51f2aabda8SRichard HendersonLBZUX 011111 ..... ..... ..... 0001110111 - @X 52f2aabda8SRichard Henderson 53f2aabda8SRichard HendersonLHZ 101000 ..... ..... ................ @D 54f2aabda8SRichard HendersonLHZU 101001 ..... ..... ................ @D 55f2aabda8SRichard HendersonLHZX 011111 ..... ..... ..... 0100010111 - @X 56f2aabda8SRichard HendersonLHZUX 011111 ..... ..... ..... 0100110111 - @X 57f2aabda8SRichard Henderson 58f2aabda8SRichard HendersonLHA 101010 ..... ..... ................ @D 59f2aabda8SRichard HendersonLHAU 101011 ..... ..... ................ @D 60f2aabda8SRichard HendersonLHAX 011111 ..... ..... ..... 0101010111 - @X 61f2aabda8SRichard HendersonLHAXU 011111 ..... ..... ..... 0101110111 - @X 62f2aabda8SRichard Henderson 63f2aabda8SRichard HendersonLWZ 100000 ..... ..... ................ @D 64f2aabda8SRichard HendersonLWZU 100001 ..... ..... ................ @D 65f2aabda8SRichard HendersonLWZX 011111 ..... ..... ..... 0000010111 - @X 66f2aabda8SRichard HendersonLWZUX 011111 ..... ..... ..... 0000110111 - @X 67f2aabda8SRichard Henderson 68f2aabda8SRichard HendersonLWA 111010 ..... ..... ..............10 @DS 69f2aabda8SRichard HendersonLWAX 011111 ..... ..... ..... 0101010101 - @X 70f2aabda8SRichard HendersonLWAUX 011111 ..... ..... ..... 0101110101 - @X 71f2aabda8SRichard Henderson 72f2aabda8SRichard HendersonLD 111010 ..... ..... ..............00 @DS 73f2aabda8SRichard HendersonLDU 111010 ..... ..... ..............01 @DS 74f2aabda8SRichard HendersonLDX 011111 ..... ..... ..... 0000010101 - @X 75f2aabda8SRichard HendersonLDUX 011111 ..... ..... ..... 0000110101 - @X 76f2aabda8SRichard Henderson 77e8f4c8d6SRichard Henderson### Fixed-Point Store Instructions 78e8f4c8d6SRichard Henderson 79e8f4c8d6SRichard HendersonSTB 100110 ..... ..... ................ @D 80e8f4c8d6SRichard HendersonSTBU 100111 ..... ..... ................ @D 81e8f4c8d6SRichard HendersonSTBX 011111 ..... ..... ..... 0011010111 - @X 82e8f4c8d6SRichard HendersonSTBUX 011111 ..... ..... ..... 0011110111 - @X 83e8f4c8d6SRichard Henderson 84e8f4c8d6SRichard HendersonSTH 101100 ..... ..... ................ @D 85e8f4c8d6SRichard HendersonSTHU 101101 ..... ..... ................ @D 86e8f4c8d6SRichard HendersonSTHX 011111 ..... ..... ..... 0110010111 - @X 87e8f4c8d6SRichard HendersonSTHUX 011111 ..... ..... ..... 0110110111 - @X 88e8f4c8d6SRichard Henderson 89e8f4c8d6SRichard HendersonSTW 100100 ..... ..... ................ @D 90e8f4c8d6SRichard HendersonSTWU 100101 ..... ..... ................ @D 91e8f4c8d6SRichard HendersonSTWX 011111 ..... ..... ..... 0010010111 - @X 92e8f4c8d6SRichard HendersonSTWUX 011111 ..... ..... ..... 0010110111 - @X 93e8f4c8d6SRichard Henderson 94e8f4c8d6SRichard HendersonSTD 111110 ..... ..... ..............00 @DS 95e8f4c8d6SRichard HendersonSTDU 111110 ..... ..... ..............01 @DS 96e8f4c8d6SRichard HendersonSTDX 011111 ..... ..... ..... 0010010101 - @X 97e8f4c8d6SRichard HendersonSTDUX 011111 ..... ..... ..... 0010110101 - @X 98e8f4c8d6SRichard Henderson 99*8f0a4b6aSMatheus Ferst### Fixed-Point Compare Instructions 100*8f0a4b6aSMatheus Ferst 101*8f0a4b6aSMatheus FerstCMP 011111 ... - . ..... ..... 0000000000 - @X_bfl 102*8f0a4b6aSMatheus FerstCMPL 011111 ... - . ..... ..... 0000100000 - @X_bfl 103*8f0a4b6aSMatheus FerstCMPI 001011 ... - . ..... ................ @D_bfs 104*8f0a4b6aSMatheus FerstCMPLI 001010 ... - . ..... ................ @D_bfu 105*8f0a4b6aSMatheus Ferst 1065e560864SRichard Henderson### Fixed-Point Arithmetic Instructions 1075e560864SRichard Henderson 1085e560864SRichard HendersonADDI 001110 ..... ..... ................ @D 1095e560864SRichard HendersonADDIS 001111 ..... ..... ................ @D 1109a14365eSMatheus Ferst 111e7a5d578SMatheus FerstADDPCIS 010011 ..... ..... .......... 00010 . @DX 112e7a5d578SMatheus Ferst 11389ccd7dcSMatheus Ferst## Fixed-Point Logical Instructions 11489ccd7dcSMatheus Ferst 11589ccd7dcSMatheus FerstCFUGED 011111 ..... ..... ..... 0011011100 - @X 11689ccd7dcSMatheus Ferst 1179a14365eSMatheus Ferst### Move To/From System Register Instructions 1189a14365eSMatheus Ferst 1199a14365eSMatheus FerstSETBC 011111 ..... ..... ----- 0110000000 - @X_bi 1209a14365eSMatheus FerstSETBCR 011111 ..... ..... ----- 0110100000 - @X_bi 1219a14365eSMatheus FerstSETNBC 011111 ..... ..... ----- 0111000000 - @X_bi 1229a14365eSMatheus FerstSETNBCR 011111 ..... ..... ----- 0111100000 - @X_bi 123a5f56954SMatheus Ferst 124a5f56954SMatheus Ferst## Vector Bit Manipulation Instruction 125a5f56954SMatheus Ferst 126a5f56954SMatheus FerstVCFUGED 000100 ..... ..... ..... 10101001101 @VX 127