1*59052Storek /*- 2*59052Storek * This code is derived from software copyrighted by the Free Software 3*59052Storek * Foundation. 4*59052Storek * 5*59052Storek * Modified 1993 by Chris Torek at Lawrence Berkeley Laboratory. 6*59052Storek * 7*59052Storek * @(#)sparc-opcode.h 5.2 (Berkeley) 04/12/93 8*59052Storek */ 9*59052Storek 1059051Storek /* Table of opcodes for the sparc. 1159051Storek Copyright (C) 1989 Free Software Foundation, Inc. 1259051Storek 1359051Storek This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler. 1459051Storek 1559051Storek GAS/GDB is free software; you can redistribute it and/or modify 1659051Storek it under the terms of the GNU General Public License as published by 1759051Storek the Free Software Foundation; either version 1, or (at your option) 1859051Storek any later version. 1959051Storek 2059051Storek GAS/GDB is distributed in the hope that it will be useful, 2159051Storek but WITHOUT ANY WARRANTY; without even the implied warranty of 2259051Storek MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2359051Storek GNU General Public License for more details. 2459051Storek 2559051Storek You should have received a copy of the GNU General Public License 2659051Storek along with GAS or GDB; see the file COPYING. If not, write to 2759051Storek the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ 2859051Storek 2959051Storek #if !defined(__STDC__) && !defined(const) 3059051Storek #define const 3159051Storek #endif 3259051Storek 3359051Storek /* 3459051Storek * Structure of an opcode table entry. 3559051Storek */ 3659051Storek struct sparc_opcode 3759051Storek { 3859051Storek const char *name; 3959051Storek unsigned long int match; /* Bits that must be set. */ 4059051Storek unsigned long int lose; /* Bits that must not be set. */ 4159051Storek const char *args; 4259051Storek /* Nonzero if this is a delayed branch instruction. */ 4359051Storek char delayed; 4459051Storek }; 4559051Storek 4659051Storek /* 4759051Storek All sparc opcodes are 32 bits, except for the `set' instruction (really 4859051Storek a macro), which is 64 bits. It is handled as a special case. 4959051Storek 5059051Storek The match component is a mask saying which bits must match a 5159051Storek particular opcode in order for an instruction to be an instance 5259051Storek of that opcode. 5359051Storek 5459051Storek The args component is a string containing one character 5559051Storek for each operand of the instruction. 5659051Storek 5759051Storek Kinds of operands: 5859051Storek # Number used by optimizer. It is ignored. 5959051Storek 1 rs1 register. 6059051Storek 2 rs2 register. 6159051Storek d rd register. 6259051Storek e frs1 floating point register. 6359051Storek f frs2 floating point register. 6459051Storek g frsd floating point register. 6559051Storek b crs1 coprocessor register 6659051Storek c crs2 coprocessor register 6759051Storek D crsd coprocessor register 6859051Storek h 22 high bits. 6959051Storek i 13 bit Immediate. 7059051Storek l 22 bit PC relative immediate. 7159051Storek L 30 bit PC relative immediate. 7259051Storek a Annul. The annul bit is set. 7359051Storek A Alternate address space. Stored as 8 bits. 7459051Storek C Coprocessor state register. 7559051Storek F floating point state register. 7659051Storek p Processor state register. 7759051Storek q Floating point queue. 7859051Storek r Single register that is both rs1 and rsd. 79*59052Storek R Single register that is both rs2 and rsd. 8059051Storek Q Coprocessor queue. 8159051Storek S Special case. 8259051Storek t Trap base register. 8359051Storek w Window invalid mask register. 8459051Storek y Y register. 8559051Storek 8659051Storek */ 8759051Storek 8859051Storek /* The order of the opcodes in this table is significant: 8959051Storek 9059051Storek * The assembler requires that all instances of the same mnemonic must be 9159051Storek consecutive. If they aren't, the assembler will bomb at runtime. 9259051Storek 9359051Storek * The disassembler should not care about the order of the opcodes. */ 9459051Storek 9559051Storek static struct sparc_opcode sparc_opcodes[] = 9659051Storek { 9759051Storek 9859051Storek { "ldd", 0xc1980000, 0x0060201f, "[1],D", 0 }, /* ldd [rs1+%g0],d */ 9959051Storek { "ldd", 0xc1982000, 0x00601fff, "[1],D", 0 }, /* ldd [rs1+0],d */ 10059051Storek { "ldd", 0xc1982000, 0x00600000, "[1+i],D", 0 }, 10159051Storek { "ldd", 0xc1982000, 0x00600000, "[i+1],D", 0 }, 10259051Storek { "ldd", 0xc1980000, 0x00602000, "[1+2],D", 0 }, 10359051Storek { "ldd", 0xc1180000, 0x00e0201f, "[1],g", 0 }, /* ldd [rs1+%g0],d */ 10459051Storek { "ldd", 0xc1182000, 0x00e01fff, "[1],g", 0 }, /* ldd [rs1+0],d */ 10559051Storek { "ldd", 0xc1182000, 0x00e00000, "[1+i],g", 0 }, 10659051Storek { "ldd", 0xc1182000, 0x00e00000, "[i+1],g", 0 }, 10759051Storek { "ldd", 0xc1180000, 0x00e02000, "[1+2],g", 0 }, 10859051Storek { "ldd", 0xc0180000, 0x01e0201f, "[1],d", 0 }, /* ldd [rs1+%g0],d */ 10959051Storek { "ldd", 0xc0182000, 0x01e01fff, "[1],d", 0 }, /* ldd [rs1+0],d */ 11059051Storek { "ldd", 0xc0182000, 0x01e00000, "[1+i],d", 0 }, 11159051Storek { "ldd", 0xc0182000, 0x01e00000, "[i+1],d", 0 }, 11259051Storek { "ldd", 0xc0180000, 0x01e02000, "[1+2],d", 0 }, 11359051Storek { "ld", 0xc1880000, 0x0070201f, "[1],C", 0 }, /* ld [rs1+%g0],d */ 11459051Storek { "ld", 0xc1882000, 0x00701fff, "[1],C", 0 }, /* ld [rs1+0],d */ 11559051Storek { "ld", 0xc1882000, 0x00700000, "[1+i],C", 0 }, 11659051Storek { "ld", 0xc1882000, 0x00700000, "[i+1],C", 0 }, 11759051Storek { "ld", 0xc1880000, 0x00702000, "[1+2],C", 0 }, 11859051Storek { "ld", 0xc1800000, 0x0078201f, "[1],D", 0 }, /* ld [rs1+%g0],d */ 11959051Storek { "ld", 0xc1802000, 0x00781fff, "[1],D", 0 }, /* ld [rs1+0],d */ 12059051Storek { "ld", 0xc1802000, 0x00780000, "[1+i],D", 0 }, 12159051Storek { "ld", 0xc1802000, 0x00780000, "[i+1],D", 0 }, 12259051Storek { "ld", 0xc1800000, 0x00782000, "[1+2],D", 0 }, 12359051Storek { "ld", 0xc1080000, 0x00f0201f, "[1],F", 0 }, /* ld [rs1+%g0],d */ 12459051Storek { "ld", 0xc1082000, 0x00f01fff, "[1],F", 0 }, /* ld [rs1+0],d */ 12559051Storek { "ld", 0xc1082000, 0x00f00000, "[1+i],F", 0 }, 12659051Storek { "ld", 0xc1082000, 0x00f00000, "[i+1],F", 0 }, 12759051Storek { "ld", 0xc1080000, 0x00f02000, "[1+2],F", 0 }, 12859051Storek { "ld", 0xc1000000, 0x00f8201f, "[1],g", 0 }, /* ld [rs1+%g0],d */ 12959051Storek { "ld", 0xc1002000, 0x00f81fff, "[1],g", 0 }, /* ld [rs1+0],d */ 13059051Storek { "ld", 0xc1002000, 0x00f80000, "[1+i],g", 0 }, 13159051Storek { "ld", 0xc1002000, 0x00f80000, "[i+1],g", 0 }, 13259051Storek { "ld", 0xc1000000, 0x00f82000, "[1+2],g", 0 }, 13359051Storek { "ld", 0xc0000000, 0x01f8201f, "[1],d", 0 }, /* ld [rs1+%g0],d */ 13459051Storek { "ld", 0xc0002000, 0x01f81fff, "[1],d", 0 }, /* ld [rs1+0],d */ 13559051Storek { "ld", 0xc0002000, 0x01f80000, "[1+i],d", 0 }, 13659051Storek { "ld", 0xc0002000, 0x01f80000, "[i+1],d", 0 }, 13759051Storek { "ld", 0xc0000000, 0x01f82000, "[1+2],d", 0 }, 13859051Storek { "ldstuba", 0xc0d80000, 0x0100201f, "[1]A,d", 0 }, /* ldstuba [rs1+%g0],d */ 13959051Storek { "ldstuba", 0xc0d80000, 0x01002000, "[1+2]A,d", 0 }, 14059051Storek { "ldsha", 0xc0d00000, 0x0128201f, "[1]A,d", 0 }, /* ldsha [rs1+%g0],d */ 14159051Storek { "ldsha", 0xc0d00000, 0x01282000, "[1+2]A,d", 0 }, 14259051Storek { "ldsba", 0xc0c80000, 0x0130201f, "[1]A,d", 0 }, /* ldsba [rs1+%g0],d */ 14359051Storek { "ldsba", 0xc0c80000, 0x01302000, "[1+2]A,d", 0 }, 14459051Storek { "ldda", 0xc0980000, 0x0160201f, "[1]A,d", 0 }, /* ldda [rs1+%g0],d */ 14559051Storek { "ldda", 0xc0980000, 0x01602000, "[1+2]A,d", 0 }, 14659051Storek { "lduha", 0xc0900000, 0x0168201f, "[1]A,d", 0 }, /* lduha [rs1+%g0],d */ 14759051Storek { "lduha", 0xc0900000, 0x01682000, "[1+2]A,d", 0 }, 14859051Storek { "ldstub", 0xc0680000, 0x0190201f, "[1],d", 0 }, /* ldstub [rs1+%g0],d */ 14959051Storek { "ldstub", 0xc0682000, 0x01900000, "[1+i],d", 0 }, 15059051Storek { "ldstub", 0xc0682000, 0x01900000, "[i+1],d", 0 }, 15159051Storek { "ldstub", 0xc0680000, 0x01902000, "[1+2],d", 0 }, 15259051Storek { "lda", 0xc0800000, 0x0178201f, "[1]A,d", 0 }, /* lda [rs1+%g0],d */ 15359051Storek { "lda", 0xc0800000, 0x01782000, "[1+2]A,d", 0 }, 15459051Storek { "ldsh", 0xc0500000, 0x0000000d, "[1],d", 0 }, /* ldsh [rs1+%g0],d */ 15559051Storek { "ldsh", 0xc0502000, 0x01a81fff, "[1],d", 0 }, /* ldsh [rs1+0],d */ 15659051Storek { "ldsh", 0xc0502000, 0x01a80000, "[1+i],d", 0 }, 15759051Storek { "ldsh", 0xc0502000, 0x01a80000, "[i+1],d", 0 }, 15859051Storek { "ldsh", 0xc0500000, 0x01a82000, "[1+2],d", 0 }, 15959051Storek { "ldsb", 0xc0480000, 0x01b0201f, "[1],d", 0 }, /* ldsb [rs1+%g0],d */ 16059051Storek { "ldsb", 0xc0482000, 0x01b01fff, "[1],d", 0 }, /* ldsb [rs1+0],d */ 16159051Storek { "ldsb", 0xc0482000, 0x01b00000, "[1+i],d", 0 }, 16259051Storek { "ldsb", 0xc0482000, 0x01b00000, "[i+1],d", 0 }, 16359051Storek { "ldsb", 0xc0480000, 0x01b02000, "[1+2],d", 0 }, 16459051Storek { "ldub", 0xc0080000, 0x01f0201f, "[1],d", 0 }, /* ldub [rs1+%g0],d */ 16559051Storek { "ldub", 0xc0082000, 0x01f01fff, "[1],d", 0 }, /* ldub [rs1+0],d */ 16659051Storek { "ldub", 0xc0082000, 0x01f00000, "[1+i],d", 0 }, 16759051Storek { "ldub", 0xc0082000, 0x01f00000, "[i+1],d", 0 }, 16859051Storek { "ldub", 0xc0080000, 0x01f02000, "[1+2],d", 0 }, 16959051Storek { "lduba", 0xc0880000, 0x0170201f, "[1]A,d", 0 }, /* lduba [rs1+%g0],d */ 17059051Storek { "lduba", 0xc0880000, 0x01702000, "[1+2]A,d", 0 }, 17159051Storek { "lduh", 0xc0102000, 0x01e80000, "[1+i],d", 0 }, 17259051Storek { "lduh", 0xc0102000, 0x01e80000, "[i+1],d", 0 }, 17359051Storek { "lduh", 0xc0100000, 0x01e8201f, "[1],d", 0 }, /* lduh [rs1+%g0],d */ 17459051Storek { "lduh", 0xc0102000, 0x01e81fff, "[1],d", 0 }, /* lduh [rs1+0],d */ 17559051Storek { "lduh", 0xc0100000, 0x01e82000, "[1+2],d", 0 }, 17659051Storek 17759051Storek { "st", 0xc0200000, 0x01d8201f, "d,[1]", 0 }, /* st d,[rs1+%g0] */ 17859051Storek { "st", 0xc0202000, 0x01d81fff, "d,[1]", 0 }, /* st d,[rs1+0] */ 17959051Storek { "st", 0xc0202000, 0x01d80000, "d,[1+i]", 0 }, 18059051Storek { "st", 0xc0202000, 0x01d80000, "d,[i+1]", 0 }, 18159051Storek { "st", 0xc0200000, 0x01d82000, "d,[1+2]", 0 }, 18259051Storek { "st", 0xc1200000, 0x00d8201f, "g,[1]", 0 }, /* st d[rs1+%g0] */ 18359051Storek { "st", 0xc1202000, 0x00d81fff, "g,[1]", 0 }, /* st d,[rs1+0] */ 18459051Storek { "st", 0xc1202000, 0x00d80000, "g,[1+i]", 0 }, 18559051Storek { "st", 0xc1202000, 0x00d80000, "g,[i+1]", 0 }, 18659051Storek { "st", 0xc1200000, 0x00d82000, "g,[1+2]", 0 }, 18759051Storek { "st", 0xc1280000, 0x00c0d01f, "F,[1]", 0 }, /* st d,[rs1+%g0] */ 18859051Storek { "st", 0xc1282000, 0x00c0dfff, "F,[1]", 0 }, /* st d,[rs1+0] */ 18959051Storek { "st", 0xc1282000, 0x00c0d000, "F,[1+i]", 0 }, 19059051Storek { "st", 0xc1282000, 0x00c0d000, "F,[i+1]", 0 }, 19159051Storek { "st", 0xc1280000, 0x00c0d000, "F,[1+2]", 0 }, 19259051Storek { "st", 0xc1a00000, 0x0058201f, "D,[1]", 0 }, /* st d,[rs1+%g0] */ 19359051Storek { "st", 0xc1a02000, 0x00581fff, "D,[1]", 0 }, /* st d,[rs1+0] */ 19459051Storek { "st", 0xc1a02000, 0x00580000, "D,[1+i]", 0 }, 19559051Storek { "st", 0xc1a02000, 0x00580000, "D,[i+1]", 0 }, 19659051Storek { "st", 0xc1a00000, 0x00582000, "D,[1+2]", 0 }, 19759051Storek { "st", 0xc1a80000, 0x0050201f, "C,[1]", 0 }, /* st d,[rs1+%g0] */ 19859051Storek { "st", 0xc1a82000, 0x00501fff, "C,[1]", 0 }, /* st d,[rs1+0] */ 19959051Storek { "st", 0xc1a82000, 0x00500000, "C,[1+i]", 0 }, 20059051Storek { "st", 0xc1a82000, 0x00500000, "C,[i+1]", 0 }, 20159051Storek { "st", 0xc1a80000, 0x00502000, "C,[1+2]", 0 }, 20259051Storek { "sta", 0xc0a00000, 0x0108201f, "d,[1]A", 0 }, /* sta d,[rs1+%g0] */ 20359051Storek { "sta", 0xc0a00000, 0x01082000, "d,[1+2]A", 0 }, 20459051Storek 20559051Storek { "stb", 0xc0280000, 0x01d0201f, "d,[1]", 0 }, /* stb d,[rs1+%g0] */ 20659051Storek { "stb", 0xc0282000, 0x01d01fff, "d,[1]", 0 }, /* stb d,[rs1+0] */ 20759051Storek { "stb", 0xc0282000, 0x01d00000, "d,[1+i]", 0 }, 20859051Storek { "stb", 0xc0282000, 0x01d00000, "d,[i+1]", 0 }, 20959051Storek { "stb", 0xc0280000, 0x01d02000, "d,[1+2]", 0 }, 21059051Storek { "stba", 0xc0a80000, 0x01002000, "d,[1+2]A", 0 }, 21159051Storek { "stba", 0xc0a80000, 0x0100201f, "d,[1]A", 0 }, /* stba d,[rs1+%g0] */ 21259051Storek 21359051Storek { "std", 0xc0380000, 0x01c0201f, "d,[1]", 0 }, /* std d,[rs1+%g0] */ 21459051Storek { "std", 0xc0382000, 0x01c01fff, "d,[1]", 0 }, /* std d,[rs1+0] */ 21559051Storek { "std", 0xc0382000, 0x01c00000, "d,[1+i]", 0 }, 21659051Storek { "std", 0xc0382000, 0x01c00000, "d,[i+1]", 0 }, 21759051Storek { "std", 0xc0380000, 0x01c02000, "d,[1+2]", 0 }, 21859051Storek { "std", 0xc1380000, 0x00c0201f, "g,[1]", 0 }, /* std d,[rs1+%g0] */ 21959051Storek { "std", 0xc1382000, 0x00c01fff, "g,[1]", 0 }, /* std d,[rs1+0] */ 22059051Storek { "std", 0xc1382000, 0x00c00000, "g,[1+i]", 0 }, 22159051Storek { "std", 0xc1382000, 0x00c00000, "g,[i+1]", 0 }, 22259051Storek { "std", 0xc1380000, 0x00c02000, "g,[1+2]", 0 }, 22359051Storek { "std", 0xc1300000, 0x00c8201f, "q,[1]", 0 }, /* std d,[rs1+%g0] */ 22459051Storek { "std", 0xc1302000, 0x00c81fff, "q,[1]", 0 }, /* std d,[rs1+0] */ 22559051Storek { "std", 0xc1302000, 0x00c80000, "q,[1+i]", 0 }, 22659051Storek { "std", 0xc1302000, 0x00c80000, "q,[i+1]", 0 }, 22759051Storek { "std", 0xc1300000, 0x00c82000, "q,[1+2]", 0 }, 22859051Storek { "std", 0xc1b80000, 0x0040201f, "D,[1]", 0 }, /* std d,[rs1+%g0] */ 22959051Storek { "std", 0xc1b82000, 0x00401fff, "D,[1]", 0 }, /* std d,[rs1+0] */ 23059051Storek { "std", 0xc1b82000, 0x00400000, "D,[1+i]", 0 }, 23159051Storek { "std", 0xc1b82000, 0x00400000, "D,[i+1]", 0 }, 23259051Storek { "std", 0xc1b80000, 0x00402000, "D,[1+2]", 0 }, 23359051Storek { "std", 0xc1b00000, 0x0048201f, "Q,[1]", 0 }, /* std d,[rs1+%g0] */ 23459051Storek { "std", 0xc1b02000, 0x00481fff, "Q,[1]", 0 }, /* std d,[rs1+0] */ 23559051Storek { "std", 0xc1b02000, 0x00480000, "Q,[1+i]", 0 }, 23659051Storek { "std", 0xc1b02000, 0x00480000, "Q,[i+1]", 0 }, 23759051Storek { "std", 0xc1b00000, 0x00482000, "Q,[1+2]", 0 }, 23859051Storek { "stda", 0xc0b80000, 0x01402000, "d,[1+2]A", 0 }, 23959051Storek { "stda", 0xc0b80000, 0x0140201f, "d,[1]A", 0 }, /* stda d,[rs1+%g0] */ 24059051Storek 24159051Storek { "sth", 0xc0300000, 0x01c8201f, "d,[1]", 0 }, /* sth d,[rs1+%g0] */ 24259051Storek { "sth", 0xc0302000, 0x01c81fff, "d,[1]", 0 }, /* sth d,[rs1+0] */ 24359051Storek { "sth", 0xc0300000, 0x01c82000, "d,[1+2]", 0 }, 24459051Storek { "sth", 0xc0302000, 0x01c80000, "d,[1+i]", 0 }, 24559051Storek { "sth", 0xc0302000, 0x01c80000, "d,[i+1]", 0 }, 24659051Storek { "stha", 0xc0b00000, 0x0148201f, "d,[1]A", 0 }, /* stha d,[rs1+%g0] */ 24759051Storek { "stha", 0xc0b00000, 0x01482000, "d,[1+2]A", 0 }, 24859051Storek 24959051Storek { "swap", 0xc0780000, 0x0180201f, "[1],d", 0 }, /* swap [rs1+%g0],d */ 25059051Storek { "swap", 0xc0782000, 0x01801fff, "[1],d", 0 }, /* swap [rs1+0],d */ 25159051Storek { "swap", 0xc0782000, 0x01800000, "[1+i],d", 0 }, 25259051Storek { "swap", 0xc0782000, 0x01800000, "[i+1],d", 0 }, 25359051Storek { "swap", 0xc0780000, 0x01802000, "[1+2],d", 0 }, 25459051Storek { "swapa", 0xc0f80000, 0x01002000, "[1+2]A,d", 0 }, 25559051Storek { "swapa", 0xc0f80000, 0x0100201f, "[1]A,d", 0 }, /* swapa [rs1+%g0],d */ 25659051Storek 25759051Storek { "restore", 0x81e80000, 0x7e17e01f, "", 0 }, /* restore %g0,%g0,%g0 */ 25859051Storek { "restore", 0x81e82000, 0x7e14dfff, "", 0 }, /* restore %g0,0,%g0 */ 25959051Storek { "restore", 0x81e82000, 0x00000000, "1,i,d", 0 }, 26059051Storek { "restore", 0x81e80000, 0x00000000, "1,2,d", 0 }, 26159051Storek { "rett", 0x81c82000, 0x40300000, "1+i", 1 }, 26259051Storek { "rett", 0x81c82000, 0x40300000, "i+1", 1 }, 26359051Storek { "rett", 0x81c80000, 0x40302000, "1+2", 1 }, 26459051Storek { "rett", 0x81c82000, 0x40300000, "1", 1}, 26559051Storek { "save", 0x81e02000, 0x40180000, "1,i,d", 0 }, 26659051Storek { "save", 0x81e00000, 0x40180000, "1,2,d", 0 }, 26759051Storek 26859051Storek { "ret", 0x81c7e008, 0x00001ff7, "", 1 }, /* jmpl %i7+8,%g0 */ 26959051Storek { "retl", 0x81c3e008, 0x00001ff7, "", 1 }, /* jmpl %o7+8,%g0 */ 27059051Storek 27159051Storek { "jmpl", 0x81c00000, 0x4038201f, "1,d", 1 }, /* jmpl rs1+%g0,d */ 27259051Storek { "jmpl", 0x81c02000, 0x4037c000, "i,d", 1 }, /* jmpl %g0+i,d */ 27359051Storek { "jmpl", 0x81c02000, 0x40380000, "1+i,d", 1 }, 27459051Storek { "jmpl", 0x81c02000, 0x40380000, "i+1,d", 1 }, 27559051Storek { "jmpl", 0x81c00000, 0x40382000, "1+2,d", 1 }, 27659051Storek { "wr", 0x81982000, 0x40600000, "1,i,t", 0 }, 27759051Storek { "wr", 0x81980000, 0x40600000, "1,2,t", 0 }, 27859051Storek { "wr", 0x81902000, 0x40680000, "1,i,w", 0 }, 27959051Storek { "wr", 0x81900000, 0x40680000, "1,2,w", 0 }, 28059051Storek { "wr", 0x81882000, 0x40700000, "1,i,p", 0 }, 28159051Storek { "wr", 0x81880000, 0x40700000, "1,2,p", 0 }, 28259051Storek { "wr", 0x81802000, 0x40780000, "1,i,y", 0 }, 28359051Storek { "wr", 0x81800000, 0x40780000, "1,2,y", 0 }, 28459051Storek 28559051Storek { "rd", 0x81580000, 0x40a00000, "t,d", 0 }, 28659051Storek { "rd", 0x81500000, 0x40a80000, "w,d", 0 }, 28759051Storek { "rd", 0x81480000, 0x40b00000, "p,d", 0 }, 28859051Storek { "rd", 0x81400000, 0x40b80000, "y,d", 0 }, 28959051Storek 29059051Storek { "sra", 0x81382000, 0x00000000, "1,i,d", 0 }, 29159051Storek { "sra", 0x81380000, 0x00000000, "1,2,d", 0 }, 29259051Storek { "srl", 0x81302000, 0x40c80000, "1,i,d", 0 }, 29359051Storek { "srl", 0x81300000, 0x40c80000, "1,2,d", 0 }, 29459051Storek { "sll", 0x81282000, 0x40d00000, "1,i,d", 0 }, 29559051Storek { "sll", 0x81280000, 0x40d00000, "1,2,d", 0 }, 29659051Storek 29759051Storek { "mulscc", 0x81202000, 0x40d80000, "1,i,d", 0 }, 29859051Storek { "mulscc", 0x81200000, 0x40d80000, "1,2,d", 0 }, 29959051Storek 30059051Storek { "clr", 0x80100000, 0x4e87e01f, "d", 0 }, /* or %g0,%g0,d */ 30159051Storek { "clr", 0x80102000, 0x41efdfff, "d", 0 }, /* or %g0,0,d */ 30259051Storek 30359051Storek { "orncc", 0x80b02000, 0x04048000, "1,i,d", 0 }, 30459051Storek { "orncc", 0x80b02000, 0x04048000, "i,1,d", 0 }, 30559051Storek { "orncc", 0x80b00000, 0x04048000, "1,2,d", 0 }, 30659051Storek 30759051Storek { "tst", 0x80900000, 0x7f6fe000, "2", 0 }, /* orcc %g0, rs2, %g0 */ 30859051Storek { "tst", 0x80900000, 0x7f68201f, "1", 0 }, /* orcc rs1, %g0, %g0 */ 30959051Storek { "tst", 0x80902000, 0x7f681fff, "1", 0 }, /* orcc rs1, 0, %g0 */ 31059051Storek 31159051Storek { "orcc", 0x80902000, 0x41680000, "1,i,d", 0 }, 31259051Storek { "orcc", 0x80902000, 0x41680000, "i,1,d", 0 }, 31359051Storek { "orcc", 0x80900000, 0x41680000, "1,2,d", 0 }, 31459051Storek { "orn", 0x80302000, 0x41c80000, "1,i,d", 0 }, 31559051Storek { "orn", 0x80302000, 0x41c80000, "i,1,d", 0 }, 31659051Storek { "orn", 0x80300000, 0x41c80000, "1,2,d", 0 }, 31759051Storek 31859051Storek { "mov", 0x81800000, 0x4078201f, "1,y", 0 }, /* wr rs1,%g0,%y */ 31959051Storek { "mov", 0x81802000, 0x40781fff, "1,y", 0 }, /* wr rs1,0,%y */ 32059051Storek { "mov", 0x81400000, 0x40b80000, "y,d", 0 }, /* rd %y,d */ 32159051Storek { "mov", 0x81980000, 0x4060201f, "1,t", 0 }, /* wr rs1,%g0,%tbr */ 32259051Storek { "mov", 0x81982000, 0x40601fff, "1,t", 0 }, /* wr rs1,0,%tbr */ 32359051Storek { "mov", 0x81580000, 0x40a00000, "t,d", 0 }, /* rd %tbr,d */ 32459051Storek { "mov", 0x81900000, 0x4068201f, "1,w", 0 }, /* wr rs1,%g0,%wim */ 32559051Storek { "mov", 0x81902000, 0x40681fff, "1,w", 0 }, /* wr rs1,0,%wim */ 32659051Storek { "mov", 0x81500000, 0x40a80000, "w,d", 0 }, /* rd %wim,d */ 32759051Storek { "mov", 0x81880000, 0x4070201f, "1,p", 0 }, /* wr rs1,%g0,%psr */ 32859051Storek { "mov", 0x81882000, 0x40701fff, "1,p", 0 }, /* wr rs1,0,%psr */ 32959051Storek { "mov", 0x81480000, 0x40b00000, "p,d", 0 }, /* rd %psr,d */ 33059051Storek 33159051Storek { "mov", 0x80102000, 0x41efc000, "i,d", 0 }, /* or %g0,i,d */ 33259051Storek { "mov", 0x80100000, 0x41efe000, "2,d", 0 }, /* or %g0,rs2,d */ 33359051Storek 33459051Storek { "or", 0x80102000, 0x40800000, "1,i,d", 0 }, 33559051Storek { "or", 0x80102000, 0x40800000, "i,1,d", 0 }, 33659051Storek { "or", 0x80100000, 0x40800000, "1,2,d", 0 }, 33759051Storek 338*59052Storek { "bset", 0x80100000, 0x40800000, "2,r", 0 }, /* or rsd,rs2,rsd */ 339*59052Storek { "bset", 0x80102000, 0x40800000, "i,r", 0 }, /* or rsd,i,rsd */ 340*59052Storek 34159051Storek { "andncc", 0x80a82000, 0x41500000, "1,i,d", 0 }, 34259051Storek { "andncc", 0x80a82000, 0x41500000, "i,1,d", 0 }, 34359051Storek { "andncc", 0x80a80000, 0x41500000, "1,2,d", 0 }, 34459051Storek { "andn", 0x80282000, 0x41d00000, "1,i,d", 0 }, 34559051Storek { "andn", 0x80282000, 0x41d00000, "i,1,d", 0 }, 34659051Storek { "andn", 0x80280000, 0x41d00000, "1,2,d", 0 }, 34759051Storek 348*59052Storek { "bclr", 0x80280000, 0x41d00000, "2,r", 0 }, /* andn rsd,rs2,rsd */ 349*59052Storek { "bclr", 0x80282000, 0x41d00000, "i,r", 0 }, /* andn rsd,i,rsd */ 350*59052Storek 35159051Storek { "cmp", 0x80a02000, 0x7d580000, "1,i", 0 }, /* subcc rs1,i,%g0 */ 35259051Storek { "cmp", 0x80a00000, 0x7d580000, "1,2", 0 }, /* subcc rs1,rs2,%g0 */ 35359051Storek 354*59052Storek { "deccc", 0x80a02001, 0x41581ffe, "r", 0 }, /* subcc rs1,1,rsd */ 355*59052Storek { "deccc", 0x80a02000, 0x41581fff, "i,r", 0 }, /* subcc rs1,i,rsd */ 356*59052Storek { "dec", 0x80202001, 0x41d81ffe, "r", 0 }, /* sub rs1,1,rsd */ 357*59052Storek { "dec", 0x80202000, 0x41d81fff, "i,r", 0 }, /* etc */ 358*59052Storek 359*59052Storek { "neg", 0x80200000, 0x41d87800, "2,d", 0 }, /* sub %g0,rs2,rsd */ 360*59052Storek { "neg", 0x80200000, 0x41d87800, "R", 0 }, /* same, but rsd=rs2 */ 361*59052Storek 36259051Storek { "subcc", 0x80a02000, 0x41580000, "1,i,d", 0 }, 36359051Storek { "subcc", 0x80a00000, 0x41580000, "1,2,d", 0 }, 36459051Storek { "sub", 0x80202000, 0x41d80000, "1,i,d", 0 }, 36559051Storek { "sub", 0x80200000, 0x41d80000, "1,2,d", 0 }, 36659051Storek { "subx", 0x80602000, 0x41980000, "1,i,d", 0 }, 36759051Storek { "subx", 0x80600000, 0x41980000, "1,2,d", 0 }, 36859051Storek { "subxcc", 0x80e02000, 0x41180000, "1,i,d", 0 }, 36959051Storek { "subxcc", 0x80e00000, 0x41180000, "1,2,d", 0 }, 37059051Storek 37159051Storek { "andcc", 0x80882000, 0x41700000, "1,i,d", 0 }, 37259051Storek { "andcc", 0x80882000, 0x41700000, "i,1,d", 0 }, 37359051Storek { "andcc", 0x80880000, 0x41700000, "1,2,d", 0 }, 37459051Storek { "and", 0x80082000, 0x41f00000, "1,i,d", 0 }, 37559051Storek { "and", 0x80082000, 0x41f00000, "i,1,d", 0 }, 37659051Storek { "and", 0x80080000, 0x41f00000, "1,2,d", 0 }, 37759051Storek 378*59052Storek { "btst", 0x80880000, 0x41700000, "1,2", 0 }, /* andcc rs1,rs2,%g0 */ 379*59052Storek { "btst", 0x80882000, 0x41700000, "i,1", 0 }, /* andcc rs1,i,%g0 */ 380*59052Storek 381*59052Storek { "inccc", 0x80802001, 0x41781ffe, "r", 0 }, /* addcc rs1,1,rsd */ 382*59052Storek { "inccc", 0x80802000, 0x41781fff, "i,r", 0 }, /* addcc rs1,i,rsd */ 38359051Storek { "inc", 0x80002001, 0x41f81ffe, "r", 0 }, /* add rs1,1,rsd */ 384*59052Storek { "inc", 0x80002000, 0x41f81fff, "i,r", 0 }, /* add rs1,i,rsd */ 38559051Storek 38659051Storek { "addxcc", 0x80c02000, 0x41380000, "1,i,d", 0 }, 38759051Storek { "addxcc", 0x80c02000, 0x41380000, "i,1,d", 0 }, 38859051Storek { "addxcc", 0x80c00000, 0x41380000, "1,2,d", 0 }, 38959051Storek { "addcc", 0x80802000, 0x41780000, "1,i,d", 0 }, 39059051Storek { "addcc", 0x80802000, 0x41780000, "i,1,d", 0 }, 39159051Storek { "addcc", 0x80800000, 0x41780000, "1,2,d", 0 }, 39259051Storek { "addx", 0x80402000, 0x41b80000, "1,i,d", 0 }, 39359051Storek { "addx", 0x80402000, 0x41b80000, "i,1,d", 0 }, 39459051Storek { "addx", 0x80400000, 0x41b80000, "1,2,d", 0 }, 39559051Storek { "add", 0x80002000, 0x41f80000, "1,i,d", 0 }, 39659051Storek { "add", 0x80002000, 0x41f80000, "i,1,d", 0 }, 39759051Storek { "add", 0x80000000, 0x41f80000, "1,2,d", 0 }, 39859051Storek 39959051Storek { "call", 0x9fc00000, 0x4038201f, "1", 1 }, /* jmpl rs1+%g0, %o7 */ 40059051Storek { "call", 0x9fc00000, 0x4038201f, "1,#", 1 }, 40159051Storek { "call", 0x40000000, 0x80000000, "L", 1 }, 40259051Storek { "call", 0x40000000, 0x80000000, "L,#", 1 }, 40359051Storek 40459051Storek { "bvc", 0x3e800000, 0xc1400000, ",al", 1 }, 40559051Storek { "bvc", 0x1e800000, 0xc1400000, "l", 1 }, 40659051Storek { "bvs", 0x2e800000, 0xc1400000, ",al", 1 }, 40759051Storek { "bvs", 0x0e800000, 0xc1400000, "l", 1 }, 40859051Storek { "bpos", 0x3c800000, 0xc1400000, ",al", 1 }, 40959051Storek { "bpos", 0x1c800000, 0xc1400000, "l", 1 }, 41059051Storek { "bneg", 0x2c800000, 0xc1400000, ",al", 1 }, 41159051Storek { "bneg", 0x0c800000, 0xc1400000, "l", 1 }, 41259051Storek { "bcc", 0x3a800000, 0xc1400000, ",al", 1 }, 41359051Storek { "bcc", 0x1a800000, 0xc1400000, "l", 1 }, 41459051Storek { "bcs", 0x2a800000, 0xc1400000, ",al", 1 }, 41559051Storek { "bcs", 0x0a800000, 0xc1400000, "l", 1 }, 41659051Storek { "blu", 0x2a800000, 0xc1400000, ",al", 1 }, 41759051Storek { "blu", 0x0a800000, 0xc1400000, "l", 1 }, /* same as bcs */ 41859051Storek { "bgeu", 0x3a800000, 0xc1400000, ",al", 1 }, 41959051Storek { "bgeu", 0x1a800000, 0xc1400000, "l", 1 }, /* same as bcc */ 42059051Storek { "bgu", 0x38800000, 0xc1400000, ",al", 1 }, 42159051Storek { "bgu", 0x18800000, 0xc1400000, "l", 1 }, 42259051Storek { "bleu", 0x28800000, 0xc1400000, ",al", 1 }, 42359051Storek { "bleu", 0x08800000, 0xc1400000, "l", 1 }, 42459051Storek { "bge", 0x36800000, 0xc1400000, ",al", 1 }, 42559051Storek { "bge", 0x16800000, 0xc1400000, "l", 1 }, 42659051Storek { "bl", 0x26800000, 0xc1400000, ",al", 1 }, 42759051Storek { "bl", 0x06800000, 0xc1400000, "l", 1 }, 42859051Storek { "bg", 0x34800000, 0xc1400000, ",al", 1 }, 42959051Storek { "bg", 0x14800000, 0xc1400000, "l", 1 }, 43059051Storek { "ble", 0x24800000, 0xc1400000, ",al", 1 }, 43159051Storek { "ble", 0x04800000, 0xc1400000, "l", 1 }, 43259051Storek { "be", 0x22800000, 0xc1400000, ",al", 1 }, 43359051Storek { "be", 0x02800000, 0xc1400000, "l", 1 }, 434*59052Storek { "bz", 0x22800000, 0xc1400000, ",al", 1 }, 435*59052Storek { "bz", 0x02800000, 0xc1400000, "l", 1 }, 43659051Storek { "bne", 0x32800000, 0xc1400000, ",al", 1 }, 43759051Storek { "bne", 0x12800000, 0xc1400000, "l", 1 }, 438*59052Storek { "bnz", 0x32800000, 0xc1400000, ",al", 1 }, 439*59052Storek { "bnz", 0x12800000, 0xc1400000, "l", 1 }, 44059051Storek { "b", 0x30800000, 0xc1400000, ",al", 1 }, 44159051Storek { "b", 0x10800000, 0xc1400000, "l", 1 }, 44259051Storek { "ba", 0x30800000, 0xc1400000, ",al", 1 }, 44359051Storek { "ba", 0x10800000, 0xc1400000, "l", 1 }, 44459051Storek { "bn", 0x20800000, 0xc1400000, ",al", 1 }, 44559051Storek { "bn", 0x00800000, 0xc1400000, "l", 1 }, 44659051Storek 44759051Storek { "jmp", 0x81c00000, 0x7e38201f, "1", 1 }, /* jmpl rs1+%g0,%g0 */ 44859051Storek { "jmp", 0x81c02000, 0x7e3fc000, "i", 1 }, /* jmpl %g0+i,%g0 */ 44959051Storek { "jmp", 0x81c00000, 0x7e382000, "1+2", 1 }, /* jmpl rs1+rs2,%g0 */ 45059051Storek { "jmp", 0x81c02000, 0x7e380000, "1+i", 1 }, /* jmpl rs1+i,%g0 */ 45159051Storek { "jmp", 0x81c02000, 0x7e380000, "i+1", 1 }, /* jmpl i+rs1,%g0 */ 45259051Storek 45359051Storek { "nop", 0x01000000, 0xfe3fffff, "", 0 }, /* sethi 0, %g0 */ 45459051Storek 45559051Storek { "set", 0x01000000, 0xc0c00000, "Sh,d", 0 }, 45659051Storek 45759051Storek { "sethi", 0x01000000, 0xc0c00000, "h,d", 0 }, 45859051Storek 45959051Storek { "taddcctv", 0x81102000, 0x40e00000, "1,i,d", 0 }, 46059051Storek { "taddcctv", 0x81100000, 0x40e00000, "1,2,d", 0 }, 46159051Storek { "taddcc", 0x81002000, 0x40f80000, "1,i,d", 0 }, 46259051Storek { "taddcc", 0x81000000, 0x40f80000, "1,2,d", 0 }, 46359051Storek 46459051Storek { "tvc", 0x9fd02000, 0x402fc000, "i", 0 }, /* tvc %g0+i */ 46559051Storek { "tvc", 0x9fd02000, 0x40280000, "1+i", 0 }, 46659051Storek { "tvc", 0x9fd00000, 0x40282000, "1+2", 0 }, 46759051Storek { "tvc", 0x9fd00000, 0x4028201f, "1", 0 }, /* tvc rs1+%g0 */ 46859051Storek { "tpos", 0x9dd02000, 0x402fc000, "i", 0 }, /* tpos %g0+i */ 46959051Storek { "tpos", 0x9dd02000, 0x40280000, "1+i", 0 }, 47059051Storek { "tpos", 0x9dd00000, 0x40282000, "1+2", 0 }, 47159051Storek { "tpos", 0x9dd00000, 0x4028201f, "1", 0 }, /* tpos rs1+%g0 */ 47259051Storek { "tcc", 0x9bd02000, 0x402fc000, "i", 0 }, /* tcc %g0+i */ 47359051Storek { "tcc", 0x9bd02000, 0x40280000, "1+i", 0 }, 47459051Storek { "tcc", 0x9bd00000, 0x40282000, "1+2", 0 }, 47559051Storek { "tcc", 0x9bd00000, 0x4028201f, "1", 0 }, /* tcc rs1+%g0 */ 47659051Storek { "tgu", 0x99d02000, 0x402fc000, "i", 0 }, /* tgu %g0+i */ 47759051Storek { "tgu", 0x99d02000, 0x40280000, "1+i", 0 }, 47859051Storek { "tgu", 0x99d00000, 0x40282000, "1+2", 0 }, 47959051Storek { "tgu", 0x99d00000, 0x4028201f, "1", 0 }, /* tgu rs1+%g0 */ 48059051Storek { "tge", 0x97d02000, 0x402fc000, "i", 0 }, /* tge %g0+i */ 48159051Storek { "tge", 0x97d02000, 0x40280000, "1+i", 0 }, 48259051Storek { "tge", 0x97d00000, 0x40282000, "1+2", 0 }, 48359051Storek { "tge", 0x97d00000, 0x4028201f, "1", 0 }, /* tge rs1+%g0 */ 48459051Storek { "tg", 0x95d02000, 0x402fc000, "i", 0 }, /* tg %g0+i */ 48559051Storek { "tg", 0x95d02000, 0x40280000, "1+i", 0 }, 48659051Storek { "tg", 0x95d00000, 0x40282000, "1+2", 0 }, 48759051Storek { "tg", 0x95d00000, 0x4028201f, "1", 0 }, /* tg rs1+%g0 */ 48859051Storek { "tne", 0x93d02000, 0x402fc000, "i", 0 }, /* tne %g0+i */ 48959051Storek { "tne", 0x93d02000, 0x40280000, "1+i", 0 }, 49059051Storek { "tne", 0x93d00000, 0x40282000, "1+2", 0 }, 49159051Storek { "tne", 0x93d00000, 0x4028201f, "1", 0 }, /* tne rs1+%g0 */ 492*59052Storek { "tnz", 0x93d02000, 0x402fc000, "i", 0 }, /* tne %g0+i */ 493*59052Storek { "tnz", 0x93d02000, 0x40280000, "1+i", 0 }, 494*59052Storek { "tnz", 0x93d00000, 0x40282000, "1+2", 0 }, 495*59052Storek { "tnz", 0x93d00000, 0x4028201f, "1", 0 }, /* tne rs1+%g0 */ 49659051Storek { "tleu", 0x8bd02000, 0x502fc000, "i", 0 }, /* tleu %g0+i */ 49759051Storek { "tleu", 0x8bd02000, 0x50280000, "1+i", 0 }, 49859051Storek { "tleu", 0x8bd00000, 0x50282000, "1+2", 0 }, 49959051Storek { "tleu", 0x8bd00000, 0x5028201f, "1", 0 }, /* tleu rs1+%g0 */ 50059051Storek { "ta", 0x91d02000, 0x402fc000, "i", 0 }, /* ta %g0+i */ 50159051Storek { "ta", 0x91d02000, 0x402d0000, "1+i", 0 }, 50259051Storek { "ta", 0x91d00000, 0x40282000, "1+2", 0 }, 50359051Storek { "ta", 0x91d00000, 0x4028201f, "1", 0 }, /* ta rs1+%g0 */ 504*59052Storek { "t", 0x91d02000, 0x402fc000, "i", 0 }, /* ta %g0+i */ 505*59052Storek { "t", 0x91d02000, 0x402d0000, "1+i", 0 }, 506*59052Storek { "t", 0x91d00000, 0x40282000, "1+2", 0 }, 507*59052Storek { "t", 0x91d00000, 0x4028201f, "1", 0 }, /* ta rs1+%g0 */ 50859051Storek { "tvs", 0x8fd02000, 0x502fc000, "i", 0 }, /* tvs %g0+i */ 50959051Storek { "tvs", 0x8fd02000, 0x50280000, "1+i", 0 }, 51059051Storek { "tvs", 0x8fd00000, 0x50282000, "1+2", 0 }, 51159051Storek { "tvs", 0x8fd00000, 0x5028201f, "1", 0 }, /* tvs rs1+%g0 */ 51259051Storek { "tneg", 0x8dd02000, 0x502fc000, "i", 0 }, /* tneg %g0+i */ 51359051Storek { "tneg", 0x8dd02000, 0x50280000, "1+i", 0 }, 51459051Storek { "tneg", 0x8dd00000, 0x50282000, "1+2", 0 }, 51559051Storek { "tneg", 0x8dd00000, 0x5028201f, "1", 0 }, /* tneg rs1+%g0 */ 51659051Storek { "tcs", 0x8bd02000, 0x502fc000, "i", 0 }, /* tcs %g0+i */ 51759051Storek { "tcs", 0x8bd02000, 0x50280000, "1+i", 0 }, 51859051Storek { "tcs", 0x8bd00000, 0x50282000, "1+2", 0 }, 51959051Storek { "tcs", 0x8bd00000, 0x5028201f, "1", 0 }, /* tcs rs1+%g0 */ 52059051Storek { "tl", 0x87d02000, 0x502fc000, "i", 0 }, /* tl %g0+i */ 52159051Storek { "tl", 0x87d02000, 0x50280000, "1+i", 0 }, 52259051Storek { "tl", 0x87d00000, 0x50282000, "1+2", 0 }, 52359051Storek { "tl", 0x87d00000, 0x5028201f, "1", 0 }, /* tl rs1+%g0 */ 52459051Storek { "tle", 0x85d02000, 0x502fc000, "i", 0 }, /* tle %g0+i */ 52559051Storek { "tle", 0x85d02000, 0x50280000, "1+i", 0 }, 52659051Storek { "tle", 0x85d00000, 0x50282000, "1+2", 0 }, 52759051Storek { "tle", 0x85d00000, 0x5028201f, "1", 0 }, /* tle rs1+%g0 */ 52859051Storek { "te", 0x83d02000, 0x502fc000, "i", 0 }, /* te %g0+i */ 52959051Storek { "te", 0x83d02000, 0x50280000, "1+i", 0 }, 53059051Storek { "te", 0x83d00000, 0x50282000, "1+2", 0 }, 53159051Storek { "te", 0x83d00000, 0x5028201f, "1", 0 }, /* te rs1+%g0 */ 532*59052Storek { "tz", 0x83d02000, 0x502fc000, "i", 0 }, /* te %g0+i */ 533*59052Storek { "tz", 0x83d02000, 0x50280000, "1+i", 0 }, 534*59052Storek { "tz", 0x83d00000, 0x50282000, "1+2", 0 }, 535*59052Storek { "tz", 0x83d00000, 0x5028201f, "1", 0 }, /* te rs1+%g0 */ 53659051Storek { "tn", 0x81d02000, 0x502fc000, "i", 0 }, /* tn %g0+i */ 53759051Storek { "tn", 0x81d02000, 0x50280000, "1+i", 0 }, 53859051Storek { "tn", 0x81d00000, 0x50282000, "1+2", 0 }, 53959051Storek { "tn", 0x81d00000, 0x5028201f, "1", 0 }, /* tn rs1+%g0 */ 54059051Storek 54159051Storek { "tsubcc", 0x81080000, 0x40f00000, "1,2,d", 0 }, 54259051Storek { "tsubcc", 0x81082000, 0x40f00000, "1,i,d", 0 }, 54359051Storek { "tsubcctv", 0x80580000, 0x40a00000, "1,2,d", 0 }, 54459051Storek { "tsubcctv", 0x80582000, 0x40a00000, "1,i,d", 0 }, 54559051Storek 54659051Storek { "unimp", 0x00000000, 0x00000000, "l", 0 }, 54759051Storek 54859051Storek { "iflush", 0x81d80000, 0x40202000, "1+2", 0 }, 54959051Storek { "iflush", 0x81d82000, 0x40200000, "1+i", 0 }, 55059051Storek 55159051Storek { "xnorcc", 0x80b80000, 0x41400000, "1,2,d", 0 }, 55259051Storek { "xnorcc", 0x80b82000, 0x41400000, "1,i,d", 0 }, 55359051Storek { "xnorcc", 0x80b82000, 0x41400000, "i,1,d", 0 }, 55459051Storek { "xorcc", 0x80980000, 0x41600000, "1,2,d", 0 }, 55559051Storek { "xorcc", 0x80982000, 0x41600000, "1,i,d", 0 }, 55659051Storek { "xorcc", 0x80982000, 0x41600000, "i,1,d", 0 }, 55759051Storek { "xnor", 0x80380000, 0x41c00000, "1,2,d", 0 }, 55859051Storek { "xnor", 0x80382000, 0x41c00000, "1,i,d", 0 }, 55959051Storek { "xnor", 0x80382000, 0x41c00000, "i,1,d", 0 }, 56059051Storek { "xor", 0x80180000, 0x41e00000, "1,2,d", 0 }, 56159051Storek { "xor", 0x80182000, 0x41e00000, "1,i,d", 0 }, 56259051Storek { "xor", 0x80182000, 0x41e00000, "i,1,d", 0 }, 56359051Storek 564*59052Storek { "btog", 0x80180000, 0x41e00000, "2,r", 0 }, /* xor rsd,rs2,rsd */ 565*59052Storek { "btog", 0x80182000, 0x41e00000, "i,r", 0 }, /* xor rsd,i,rsd */ 566*59052Storek 567*59052Storek { "not", 0x80380000, 0x41c00000, "1,d", 0 }, /* xnor rs1,%g0,rsd */ 568*59052Storek { "not", 0x80380000, 0x41c00000, "r", 0 }, /* xnor rs1,%g0,rsd */ 569*59052Storek 57059051Storek { "fpop1", 0x81a00000, 0x40580000, "[1+2],d", 0 }, 57159051Storek { "fpop2", 0x81a80000, 0x40500000, "[1+2],d", 0 }, 57259051Storek 57359051Storek { "fb", 0x31800000, 0xc0400000, ",al", 1 }, 57459051Storek { "fb", 0x11800000, 0xc0400000, "l", 1 }, 57559051Storek { "fba", 0x31800000, 0xc0400000, ",al", 1 }, 57659051Storek { "fba", 0x11800000, 0xc0400000, "l", 1 }, 57759051Storek { "fbn", 0x21800000, 0xc0400000, ",al", 1 }, 57859051Storek { "fbn", 0x01800000, 0xc0400000, "l", 1 }, 57959051Storek { "fbu", 0x2f800000, 0xc0400000, ",al", 1 }, 58059051Storek { "fbu", 0x0f800000, 0xc0400000, "l", 1 }, 58159051Storek { "fbg", 0x2d800000, 0xc0400000, ",al", 1 }, 58259051Storek { "fbg", 0x0d800000, 0xc0400000, "l", 1 }, 58359051Storek { "fbug", 0x2b800000, 0xc0400000, ",al", 1 }, 58459051Storek { "fbug", 0x0b800000, 0xc0400000, "l", 1 }, 58559051Storek { "fbl", 0x29800000, 0xc0400000, ",al", 1 }, 58659051Storek { "fbl", 0x09800000, 0xc0400000, "l", 1 }, 58759051Storek { "fbul", 0x27800000, 0xc0400000, ",al", 1 }, 58859051Storek { "fbul", 0x07800000, 0xc0400000, "l", 1 }, 58959051Storek { "fblg", 0x25800000, 0xc0400000, ",al", 1 }, 59059051Storek { "fblg", 0x05800000, 0xc0400000, "l", 1 }, 59159051Storek { "fbne", 0x23800000, 0xc0400000, ",al", 1 }, 59259051Storek { "fbne", 0x03800000, 0xc0400000, "l", 1 }, 59359051Storek { "fbe", 0x33800000, 0xc0400000, ",al", 1 }, 59459051Storek { "fbe", 0x13800000, 0xc0400000, "l", 1 }, 59559051Storek { "fbue", 0x35800000, 0xc0400000, ",al", 1 }, 59659051Storek { "fbue", 0x15800000, 0xc0400000, "l", 1 }, 59759051Storek { "fbge", 0x37800000, 0xc0400000, ",al", 1 }, 59859051Storek { "fbge", 0x17800000, 0xc0400000, "l", 1 }, 59959051Storek { "fbuge", 0x39800000, 0xc0400000, ",al", 1 }, 60059051Storek { "fbuge", 0x19800000, 0xc0400000, "l", 1 }, 60159051Storek { "fble", 0x3b800000, 0xc0400000, ",al", 1 }, 60259051Storek { "fble", 0x1b800000, 0xc0400000, "l", 1 }, 60359051Storek { "fbule", 0x3d800000, 0xc0400000, ",al", 1 }, 60459051Storek { "fbule", 0x1d800000, 0xc0400000, "l", 1 }, 60559051Storek { "fbo", 0x3f800000, 0xc0400000, ",al", 1 }, 60659051Storek { "fbo", 0x1f800000, 0xc0400000, "l", 1 }, 60759051Storek 60859051Storek { "cba", 0x31c00000, 0xce000000, ",al", 1 }, 60959051Storek { "cba", 0x11c00000, 0xce000000, "l", 1 }, 61059051Storek { "cbn", 0x21c00000, 0xde000000, ",al", 1 }, 61159051Storek { "cbn", 0x01c00000, 0xde000000, "l", 1 }, 61259051Storek { "cb3", 0x2fc00000, 0xc0000000, ",al", 1 }, 61359051Storek { "cb3", 0x0fc00000, 0xc0000000, "l", 1 }, 61459051Storek { "cb2", 0x2dc00000, 0xc0000000, ",al", 1 }, 61559051Storek { "cb2", 0x0dc00000, 0xc0000000, "l", 1 }, 61659051Storek { "cb23", 0x2bc00000, 0xc0000000, ",al", 1 }, 61759051Storek { "cb23", 0x0bc00000, 0xc0000000, "l", 1 }, 61859051Storek { "cb1", 0x29c00000, 0xc0000000, ",al", 1 }, 61959051Storek { "cb1", 0x09c00000, 0xc0000000, "l", 1 }, 62059051Storek { "cb13", 0x27c00000, 0xc0000000, ",al", 1 }, 62159051Storek { "cb13", 0x07c00000, 0xc0000000, "l", 1 }, 62259051Storek { "cb12", 0x25c00000, 0xc0000000, ",al", 1 }, 62359051Storek { "cb12", 0x05c00000, 0xc0000000, "l", 1 }, 62459051Storek { "cb123", 0x23c00000, 0xc0000000, ",al", 1 }, 62559051Storek { "cb123", 0x03c00000, 0xc0000000, "l", 1 }, 62659051Storek { "cb0", 0x33c00000, 0xc0000000, ",al", 1 }, 62759051Storek { "cb0", 0x13c00000, 0xc0000000, "l", 1 }, 62859051Storek { "cb03", 0x35c00000, 0xc0000000, ",al", 1 }, 62959051Storek { "cb03", 0x15c00000, 0xc0000000, "l", 1 }, 63059051Storek { "cb02", 0x37c00000, 0xc0000000, ",al", 1 }, 63159051Storek { "cb02", 0x17c00000, 0xc0000000, "l", 1 }, 63259051Storek { "cb023", 0x39c00000, 0xc0000000, ",al", 1 }, 63359051Storek { "cb023", 0x19c00000, 0xc0000000, "l", 1 }, 63459051Storek { "cb013", 0x3dc00000, 0xc0000000, ",al", 1 }, 63559051Storek { "cb013", 0x1dc00000, 0xc0000000, "l", 1 }, 63659051Storek { "cb012", 0x3fc00000, 0xc0000000, ",al", 1 }, 63759051Storek { "cb012", 0x1fc00000, 0xc0000000, "l", 1 }, 63859051Storek 63959051Storek { "fstoi", 0x81a01a20, 0x400025c0, "f,g", 0 }, 64059051Storek { "fdtoi", 0x81a01a40, 0x400025a0, "f,g", 0 }, 64159051Storek { "fxtoi", 0x81a01a60, 0x40002580, "f,g", 0 }, 64259051Storek 64359051Storek { "fitox", 0x81a01980, 0x40002660, "f,g", 0 }, 64459051Storek { "fitod", 0x81a01900, 0x400026e0, "f,g", 0 }, 64559051Storek { "fitos", 0x81a01880, 0x40002660, "f,g", 0 }, 64659051Storek 64759051Storek { "fstod", 0x81a01920, 0x400026c0, "f,g", 0 }, 64859051Storek { "fstox", 0x81a019a0, 0x40002640, "f,g", 0 }, 64959051Storek { "fdtos", 0x81a018c0, 0x40002720, "f,g", 0 }, 65059051Storek { "fdtox", 0x81a019c0, 0x40002620, "f,g", 0 }, 65159051Storek { "fxtos", 0x81a018e0, 0x40002700, "f,g", 0 }, 65259051Storek { "fxtod", 0x81a01960, 0x40002680, "f,g", 0 }, 65359051Storek 65459051Storek { "fdivx", 0x81a009e0, 0x40083600, "e,f,g", 0 }, 65559051Storek { "fdivd", 0x81a009c0, 0x40003620, "e,f,g", 0 }, 65659051Storek { "fdivs", 0x81a009a0, 0x40003640, "e,f,g", 0 }, 65759051Storek { "fmuls", 0x81a00920, 0x400036c0, "e,f,g", 0 }, 65859051Storek { "fmuld", 0x81a00940, 0x400036a0, "e,f,g", 0 }, 65959051Storek { "fmulx", 0x81a00960, 0x40003680, "e,f,g", 0 }, 66059051Storek 66159051Storek { "fsqrts", 0x81a00520, 0x40003ac0, "f,g", 0 }, 66259051Storek { "fsqrtd", 0x81a00540, 0x40003aa8, "f,g", 0 }, 66359051Storek { "fsqrtx", 0x81a00560, 0x40003a80, "f,g", 0 }, 66459051Storek 66559051Storek { "fabss", 0x81a00120, 0x40003ec0, "f,g", 0 }, 66659051Storek { "fnegs", 0x81a000a0, 0x40003f40, "f,g", 0 }, 66759051Storek { "fmovs", 0x81a00020, 0x40003fc0, "f,g", 0 }, 66859051Storek 66959051Storek { "fsubx", 0x81a008e0, 0x40003700, "e,f,g", 0 }, 67059051Storek { "fsubd", 0x81a008c0, 0x40003720, "e,f,g", 0 }, 67159051Storek { "fsubs", 0x81a008a0, 0x40003740, "e,f,g", 0 }, 67259051Storek { "faddx", 0x81a00860, 0x40003780, "e,f,g", 0 }, 67359051Storek { "faddd", 0x81a00840, 0x400037a0, "e,f,g", 0 }, 67459051Storek { "fadds", 0x81a00820, 0x400037c0, "e,f,g", 0 }, 67559051Storek 67659051Storek { "fcmpex", 0x81a80ae0, 0x40003500, "e,f", 0 }, 67759051Storek { "fcmped", 0x81a80ac0, 0x40003520, "e,f", 0 }, 67859051Storek { "fcmpes", 0x81a80aa0, 0x40003540, "e,f", 0 }, 67959051Storek { "fcmpx", 0x81a80a60, 0x40003580, "e,f", 0 }, 68059051Storek { "fcmpd", 0x81a80a40, 0x400035a0, "e,f", 0 }, 68159051Storek { "fcmps", 0x81a80a20, 0x400035c0, "e,f", 0 }, 68259051Storek 68359051Storek { "cpop1", 0x81b00000, 0x40480000, "[1+2],d", 0 }, 68459051Storek { "cpop2", 0x81b80000, 0x40400000, "[1+2],d", 0 }, 68559051Storek }; 68659051Storek 68759051Storek #define NUMOPCODES ((sizeof sparc_opcodes)/(sizeof sparc_opcodes[0])) 68859051Storek 689