|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 23567 (0x5c0f)
Types: TextFile
Names: »sparc-opcode.h«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89
└─⟦45ee03a86⟧ »./gas-1.34.tar.Z«
└─⟦217468c69⟧
└─⟦this⟧ »gas-dist/sparc-opcode.h«
/* sparc_opcode.h -- Table of opcodes for the sparc.
Copyright (C) 1989 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GAS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined(__STDC__) && !defined(const)
#define const
#endif
/*
* Structure of an opcode table entry.
*/
struct sparc_opcode
{
const char *name;
unsigned long mask; /* used only for error checking */
unsigned long match;
const char *args;
unsigned int last; /* used to simplify hashing */
};
/*
All sparc opcodes are 32 bits, except for the `set' instruction (really
a macro), which is 64 bits. It is handled as a special case.
The match component is a mask saying which bits must match a
particular opcode in order for an instruction to be an instance
of that opcode.
The args component is a string containing one character
for each operand of the instruction.
Kinds of operands:
# Number used by optimizer. It is ignored.
1 rs1 register.
2 rs2 register.
d rd register.
e frs1 floating point register.
f frs2 floating point register.
g frsd floating point register.
b crs1 coprocessor register
c crs2 coprocessor register
D crsd coprocessor register
h 22 high bits.
i 13 bit Immediate.
l 22 bit PC relative immediate.
L 30 bit PC relative immediate.
a Annul. The annul bit is set.
A Alternate address space. Stored as 8 bits.
C Coprocessor state register.
F floating point state register.
p Processor state register.
q Floating point queue.
r Single register that is both rs1 and rsd.
Q Coprocessor queue.
S Special case.
t Trap base register.
w Window invalid mask register.
y Y register.
*/
/*
* The assembler requires that all instances of the same mnemonic must be
* consecutive. If they aren't, the assembler will bomb at runtime.
*/
static const struct sparc_opcode sparc_opcodes[] =
{
{ "add", 0xc1f82000, 0x80000000, "1,2,d", 0 },
{ "add", 0xc1f82000, 0x80002000, "i,1,d", 0 },
{ "add", 0xc1f82000, 0x80002000, "1,i,d", 1 },
{ "addcc", 0xc1f82000, 0x80800000, "1,2,d", 0 },
{ "addcc", 0xc1f82000, 0x80802000, "i,1,d", 0 },
{ "addcc", 0xc1f82000, 0x80802000, "1,i,d", 1 },
{ "addx", 0xc1f82000, 0x80400000, "1,2,d", 0 },
{ "addx", 0xc1f82000, 0x80402000, "i,1,d", 0 },
{ "addx", 0xc1f82000, 0x80402000, "1,i,d", 1 },
{ "addxcc", 0xc1f82000, 0x80c00000, "1,2,d", 0 },
{ "addxcc", 0xc1f82000, 0x80c02000, "i,1,d", 0 },
{ "addxcc", 0xc1f82000, 0x80c02000, "1,i,d", 1 },
{ "and", 0xc1f82000, 0x80080000, "1,2,d", 0 },
{ "and", 0xc1f82000, 0x80082000, "i,1,d", 0 },
{ "and", 0xc1f82000, 0x80082000, "1,i,d", 1 },
{ "andcc", 0xc1f82000, 0x80880000, "1,2,d", 0 },
{ "andcc", 0xc1f82000, 0x80882000, "i,1,d", 0 },
{ "andcc", 0xc1f82000, 0x80882000, "1,i,d", 1 },
{ "andn", 0xc1f82000, 0x80280000, "1,2,d", 0 },
{ "andn", 0xc1f82000, 0x80282000, "i,1,d", 0 },
{ "andn", 0xc1f82000, 0x80282000, "1,i,d", 1 },
{ "andncc", 0xc1f82000, 0x80a80000, "1,2,d", 0 },
{ "andncc", 0xc1f82000, 0x80a82000, "i,1,d", 0 },
{ "andncc", 0xc1f82000, 0x80a82000, "1,i,d", 1 },
{ "b", 0xffc00000, 0x10800000, "l", 0 },
{ "b", 0xffc00000, 0x30800000, ",al", 1 },
{ "ba", 0xffc00000, 0x10800000, "l", 0 },
{ "ba", 0xffc00000, 0x30800000, ",al", 1 },
{ "bcc", 0xffc00000, 0x1a800000, "l", 0 },
{ "bcc", 0xffc00000, 0x3a800000, ",al", 1 },
{ "bcs", 0xffc00000, 0x0a800000, "l", 0 },
{ "bcs", 0xffc00000, 0x2a800000, ",al", 1 },
{ "be", 0xffc00000, 0x02800000, "l", 0 },
{ "be", 0xffc00000, 0x22800000, ",al", 1 },
{ "bg", 0xffc00000, 0x14800000, "l", 0 },
{ "bg", 0xffc00000, 0x34800000, ",al", 1 },
{ "bge", 0xffc00000, 0x16800000, "l", 0 },
{ "bge", 0xffc00000, 0x36800000, ",al", 1 },
{ "bgeu", 0xffc00000, 0x1a800000, "l", 0 },
{ "bgeu", 0xffc00000, 0x3a800000, ",al", 1 },
{ "bgu", 0xffc00000, 0x18800000, "l", 0 },
{ "bgu", 0xffc00000, 0x38800000, ",al", 1 },
{ "bl", 0xffc00000, 0x06800000, "l", 0 },
{ "bl", 0xffc00000, 0x26800000, ",al", 1 },
{ "ble", 0xffc00000, 0x04800000, "l", 0 },
{ "ble", 0xffc00000, 0x24800000, ",al", 1 },
{ "bleu", 0xffc00000, 0x08800000, "l", 0 },
{ "bleu", 0xffc00000, 0x28800000, ",al", 1 },
{ "blu", 0xffc00000, 0x0a800000, "l", 0 }, /* same as bcs */
{ "blu", 0xffc00000, 0x2a800000, ",al", 1 },
{ "bn", 0xffc00000, 0x00800000, "l", 0 },
{ "bn", 0xffc00000, 0x20800000, ",al", 1 },
{ "bne", 0xffc00000, 0x12800000, "l", 0 },
{ "bne", 0xffc00000, 0x32800000, ",al", 1 },
{ "bneg", 0xffc00000, 0x0c800000, "l", 0 },
{ "bneg", 0xffc00000, 0x2c800000, ",al", 1 },
{ "bpos", 0xffc00000, 0x1c800000, "l", 0 },
{ "bpos", 0xffc00000, 0x3c800000, ",al", 1 },
{ "bvc", 0xffc00000, 0x1e800000, "l", 0 },
{ "bvc", 0xffc00000, 0x3e800000, ",al", 1 },
{ "bvs", 0xffc00000, 0x0e800000, "l", 0 },
{ "bvs", 0xffc00000, 0x2e800000, ",al", 1 },
{ "call", 0xc0000000, 0x40000000, "L", 0 },
{ "call", 0xc0000000, 0x40000000, "L,#", 0 },
{ "call", 0xfff83fff, 0x9fc00000, "1", 0 },
{ "call", 0xfff83fff, 0x9fc00000, "1,#", 1 },
{ "clr", 0xc1ffe000, 0x80100000, "d", 1 }, /* or %0,%0,d */
{ "cmp", 0xfff82000, 0x80a00000, "1,2", 0 }, /* subcc rs1,rs2,%0 */
{ "cmp", 0xfff82000, 0x80a02000, "1,i", 1 }, /* subcc rs1,i,%0 */
{ "inc", 0xc1f83fff, 0x80002001, "r", 1 }, /* add rs1,1,rsd */
{ "jmp", 0xfff83fff, 0x81c00000, "1", 0 },
{ "jmp", 0xfff83fff, 0x81c02000, "i", 1 },
{ "jmpl", 0xc1f83fff, 0x81c02000, "1,d", 0 },
{ "jmpl", 0xc1f82000, 0x81c00000, "1+2,d", 0 },
{ "jmpl", 0xc1f82000, 0x81c02000, "1+i,d", 1 },
{ "ld", 0xc1f82000, 0xc0000000, "[1],d", 0 }, /* ld [1+%0],d */
{ "ld", 0xc1f82000, 0xc0000000, "[1],d", 0 },
{ "ld", 0xc1f82000, 0xc0000000, "[1+2],d", 0 },
{ "ld", 0xc1f82000, 0xc0002000, "[1+i],d", 0 },
{ "ld", 0xc1f82000, 0xc1000000, "[1],g", 0 },
{ "ld", 0xc1f82000, 0xc1000000, "[1+2],g", 0 },
{ "ld", 0xc1f82000, 0xc1002000, "[1+i],g", 0 },
{ "ld", 0xc1f82000, 0xc1080000, "[1],F", 0 },
{ "ld", 0xc1f82000, 0xc1080000, "[1+2],F", 0 },
{ "ld", 0xc1f82000, 0xc1082000, "[1+i],F", 0 },
{ "ld", 0xc1f82000, 0xc1800000, "[1],D", 0 },
{ "ld", 0xc1f82000, 0xc1800000, "[1+2],D", 0 },
{ "ld", 0xc1f82000, 0xc1802000, "[1+i],D", 0 },
{ "ld", 0xc1f82000, 0xc1880000, "[1],C", 0 },
{ "ld", 0xc1f82000, 0xc1880000, "[1+2],C", 0 },
{ "ld", 0xc1f82000, 0xc1882000, "[1+i],C", 1 },
{ "lda", 0xc1f82000, 0xc0800000, "[1]A,d", 0 },
{ "lda", 0xc1f82000, 0xc0800000, "[1+2]A,d", 1 },
{ "ldd", 0xc1f82000, 0xc0180000, "[1],d", 0 },
{ "ldd", 0xc1f82000, 0xc0180000, "[1+2],d", 0 },
{ "ldd", 0xc1f82000, 0xc0182000, "[1+i],d", 0 },
{ "ldd", 0xc1f82000, 0xc1180000, "[1],g", 0 },
{ "ldd", 0xc1f82000, 0xc1180000, "[1+2],g", 0 },
{ "ldd", 0xc1f82000, 0xc1182000, "[1+i],g", 0 },
{ "ldd", 0xc1f82000, 0xc1980000, "[1],D", 0 },
{ "ldd", 0xc1f82000, 0xc1980000, "[1+2],D", 0 },
{ "ldd", 0xc1f82000, 0xc1982000, "[1+i],D", 1 },
{ "ldda", 0xc1f82000, 0xc0980000, "[1]A,d", 0 },
{ "ldda", 0xc1f82000, 0xc0980000, "[1+2]A,d", 1 },
{ "ldsb", 0xc1f82000, 0xc0480000, "[1],d", 0 },
{ "ldsb", 0xc1f82000, 0xc0480000, "[1+2],d", 0 },
{ "ldsb", 0xc1f82000, 0xc0482000, "[1+i],d", 1 },
{ "ldsba", 0xc1f82000, 0xc0c80000, "[1]A,d", 0 },
{ "ldsba", 0xc1f82000, 0xc0c80000, "[1+2]A,d", 1 },
{ "ldsh", 0xc1f82000, 0xc0500000, "[1],d", 0 },
{ "ldsh", 0xc1f82000, 0xc0500000, "[1+2],d", 0 },
{ "ldsh", 0xc1f82000, 0xc0502000, "[1+i],d", 1 },
{ "ldsha", 0xc1f82000, 0xc0d00000, "[1]A,d", 0 },
{ "ldsha", 0xc1f82000, 0xc0d00000, "[1+2]A,d", 1 },
{ "ldstub", 0xc1f82000, 0xc0680000, "[1],d", 0 },
{ "ldstub", 0xc1f82000, 0xc0680000, "[1+2],d", 0 },
{ "ldstub", 0xc1f82000, 0xc0682000, "[1+i],d", 1 },
{ "ldstuba", 0xc1f82000, 0xc0d80000, "[1]A,d", 0 },
{ "ldstuba", 0xc1f82000, 0xc0d80000, "[1+2]A,d", 1 },
{ "ldub", 0xc1f82000, 0xc0080000, "[1],d", 0 }, /* ldub [1+%0],d */
{ "ldub", 0xc1f82000, 0xc0080000, "[1+2],d", 0 },
{ "ldub", 0xc1f82000, 0xc0082000, "[1+i],d", 1 },
{ "lduba", 0xc1f82000, 0xc0880000, "[1]A,d", 0 },
{ "lduba", 0xc1f82000, 0xc0880000, "[1+2]A,d", 1 },
{ "lduh", 0xc1f82000, 0xc0100000, "[1],d", 0 },
{ "lduh", 0xc1f82000, 0xc0100000, "[1+2],d", 0 },
{ "lduh", 0xc1f82000, 0xc0102000, "[1+i],d", 1 },
{ "lduha", 0xc1f82000, 0xc0900000, "[1]A,d", 0 }, /* same as ldsha */
{ "lduha", 0xc1f82000, 0xc0900000, "[1+2]A,d", 1 },
{ "mov", 0xc1ffe000, 0x80102000, "i,d", 0 }, /* or %0,i,d */
{ "mov", 0xc1ffe000, 0x80100000, "2,d", 1 }, /* or %0,2,d */
{ "mulscc", 0xc1f82000, 0x81200000, "1,2,d", 0 },
{ "mulscc", 0xc1f82000, 0x81202000, "1,i,d", 1 },
{ "nop", 0xffffffff, 0x01000000, "", 1 }, /* sethi 0,%0 */
{ "or", 0xc1f82000, 0x80100000, "1,2,d", 0 },
{ "or", 0xc1f82000, 0x80102000, "i,1,d", 0 },
{ "or", 0xc1f82000, 0x80102000, "1,i,d", 1 },
{ "orcc", 0xc1f82000, 0x80900000, "1,2,d", 0 },
{ "orcc", 0xc1f82000, 0x80902000, "i,1,d", 0 },
{ "orcc", 0xc1f82000, 0x80902000, "1,i,d", 1 },
{ "orn", 0xc1f82000, 0x80300000, "1,2,d", 0 },
{ "orn", 0xc1f82000, 0x80302000, "i,1,d", 0 },
{ "orn", 0xc1f82000, 0x80302000, "1,i,d", 1 },
{ "orncc", 0xc1f82000, 0x80b00000, "1,2,d", 0 },
{ "orncc", 0xc1f82000, 0x80b02000, "i,1,d", 0 },
{ "orncc", 0xc1f82000, 0x80b02000, "1,i,d", 1 },
{ "rd", 0xc1f80000, 0x81480000, "p,d", 0 },
{ "rd", 0xc1f80000, 0x81580000, "t,d", 0 },
{ "rd", 0xc1f80000, 0x81500000, "w,d", 0 },
{ "rd", 0xc1f80000, 0x81400000, "y,d", 1 },
{ "restore", 0xc1f82000, 0x81e80000, "1,2,d", 0 },
{ "restore", 0xc1f82000, 0x81e82000, "1,i,d", 0 },
{ "restore", 0xffffffff, 0x81e80000, "", 1 }, /* restore %0,%0,%0 */
{ "ret", 0xffffffff, 0x81c7e008, "", 1 }, /* jmpl %i7+8,%0 */
{ "retl", 0xffffffff, 0x81c3e008, "", 1 }, /* jmpl ????? */
{ "rett", 0xc1f82000, 0x81c80000, "1,2,d", 0 },
{ "rett", 0xc1f82000, 0x81c82000, "1,i,d", 1 },
{ "save", 0xc1f82000, 0x81e00000, "1,2,d", 0 },
{ "save", 0xc1f82000, 0x81e02000, "1,i,d", 1 },
{ "set", 0xc1c00000, 0x01000000, "Sh,d", 1 },
{ "sethi", 0xc1c00000, 0x01000000, "h,d", 1 },
{ "sll", 0xc1f82000, 0x81280000, "1,2,d", 0 },
{ "sll", 0xc1f82000, 0x81282000, "1,i,d", 1 },
{ "sra", 0xc1f82000, 0x81380000, "1,2,d", 0 },
{ "sra", 0xc1f82000, 0x81382000, "1,i,d", 1 },
{ "srl", 0xc1f82000, 0x81300000, "1,2,d", 0 },
{ "srl", 0xc1f82000, 0x81302000, "1,i,d", 1 },
{ "st", 0xc1f82000, 0xc0200000, "d,[1]", 0 }, /* st d,[1+%0] */
{ "st", 0xc1f82000, 0xc0200000, "d,[1]", 0 },
{ "st", 0xc1f82000, 0xc0200000, "d,[1+2]", 0 },
{ "st", 0xc1f82000, 0xc0202000, "d,[1+i]", 0 },
{ "st", 0xc1f82000, 0xc1200000, "g,[1]", 0 },
{ "st", 0xc1f82000, 0xc1200000, "g,[1+2]", 0 },
{ "st", 0xc1f82000, 0xc1202000, "g,[1+i]", 0 },
{ "st", 0xc1f82000, 0xc1300000, "F,[1]", 0 },
{ "st", 0xc1f82000, 0xc1300000, "F,[1+2]", 0 },
{ "st", 0xc1f82000, 0xc1302000, "F,[1+i]", 0 },
{ "st", 0xc1f82000, 0xc1a00000, "D,[1]", 0 },
{ "st", 0xc1f82000, 0xc1a00000, "D,[1+2]", 0 },
{ "st", 0xc1f82000, 0xc1a02000, "D,[1+i]", 0 },
{ "st", 0xc1f82000, 0xc1a80000, "C,[1]", 0 },
{ "st", 0xc1f82000, 0xc1a80000, "C,[1+2]", 0 },
{ "st", 0xc1f82000, 0xc1a82000, "C,[1+i]", 1 },
{ "sta", 0xc1f82000, 0xc0a00000, "d,[1]A", 0 },
{ "sta", 0xc1f82000, 0xc0a00000, "d,[1+2]A", 1 },
{ "stb", 0xc1f82000, 0xc0280000, "d,[1]", 0 },
{ "stb", 0xc1f82000, 0xc0280000, "d,[1+2]", 0 },
{ "stb", 0xc1f82000, 0xc0282000, "d,[1+i]", 1 },
{ "stba", 0xc1f82000, 0xc0a80000, "d,[1]A", 0 },
{ "stba", 0xc1f82000, 0xc0a80000, "d,[1+2]A", 1 },
{ "std", 0xc1f82000, 0xc0380000, "d,[1]", 0 },
{ "std", 0xc1f82000, 0xc0380000, "d,[1+2]", 0 },
{ "std", 0xc1f82000, 0xc0382000, "d,[1+i]", 0 },
{ "std", 0xc1f82000, 0xc1380000, "g,[1]", 0 },
{ "std", 0xc1f82000, 0xc1380000, "g,[1+2]", 0 },
{ "std", 0xc1f82000, 0xc1380000, "g,[1+i]", 0 },
{ "std", 0xc1f82000, 0xc1300000, "q,[1]", 0 },
{ "std", 0xc1f82000, 0xc1300000, "q,[1+2]", 0 },
{ "std", 0xc1f82000, 0xc1300000, "q,[1+i]", 0 },
{ "std", 0xc1f82000, 0xc1b80000, "D,[1]", 0 },
{ "std", 0xc1f82000, 0xc1b80000, "D,[1+2]", 0 },
{ "std", 0xc1f82000, 0xc1b80000, "D,[1+i]", 0 },
{ "std", 0xc1f82000, 0xc1b00000, "Q,[1]", 0 },
{ "std", 0xc1f82000, 0xc1b00000, "Q,[1+2]", 0 },
{ "std", 0xc1f82000, 0xc1b00000, "Q,[1+i]", 1 },
{ "stda", 0xc1f82000, 0xc0b80000, "d,[1]A", 0 },
{ "stda", 0xc1f82000, 0xc0b80000, "d,[1+2]A", 1 },
{ "sth", 0xc1f82000, 0xc0300000, "d,[1]", 0 },
{ "sth", 0xc1f82000, 0xc0300000, "d,[1+2]", 0 },
{ "sth", 0xc1f82000, 0xc0302000, "d,[1+i]", 1 },
{ "stha", 0xc1f82000, 0xc0b00000, "d,[1]A", 0 },
{ "stha", 0xc1f82000, 0xc0b00000, "d,[1+2]A", 1 },
{ "sub", 0xc1f82000, 0x80200000, "1,2,d", 0 },
{ "sub", 0xc1f82000, 0x80202000, "1,i,d", 1 },
{ "subcc", 0xc1f82000, 0x80a00000, "1,2,d", 0 },
{ "subcc", 0xc1f82000, 0x80a02000, "1,i,d", 1 },
{ "subx", 0xc1f82000, 0x80600000, "1,2,d", 0 },
{ "subx", 0xc1f82000, 0x80602000, "1,i,d", 1 },
{ "subxcc", 0xc1f82000, 0x80e00000, "1,2,d", 0 },
{ "subxcc", 0xc1f82000, 0x80e02000, "1,i,d", 1 },
{ "swap", 0xc1f82000, 0xc0780000, "[1],d", 0 },
{ "swap", 0xc1f82000, 0xc0780000, "[1+2],d", 0 },
{ "swap", 0xc1f82000, 0xc0782000, "[1+i],d", 1 },
{ "swapa", 0xc1f82000, 0xc0f82000, "[1]A,d", 0 },
{ "swapa", 0xc1f82000, 0xc0f82000, "[1+2]A,d", 1 },
{ "taddcc", 0xc1f82000, 0x81000000, "1,2,d", 0 },
{ "taddcc", 0xc1f82000, 0x81002000, "1,i,d", 1 },
{ "taddcctv", 0xc1f82000, 0x81100000, "1,2,d", 0 },
{ "taddcctv", 0xc1f82000, 0x81102000, "1,i,d", 1 },
{ "ta", 0xfff82000, 0x91d00000, "1+2", 0 },
{ "ta", 0xffffe000, 0x91d02000, "i", 0 }, /* ta %0+i */
{ "ta", 0xfff82000, 0x91d02000, "1+i", 1 },
{ "tcc", 0xfff82000, 0x9bd00000, "1+2", 0 },
{ "tcc", 0xffffe000, 0x9bd02000, "i", 0 },
{ "tcc", 0xfff82000, 0x9bd02000, "1+i", 1 },
{ "tcs", 0xfff82000, 0x8bd00000, "1+2", 0 },
{ "tcs", 0xffffe000, 0x8bd02000, "i", 0 },
{ "tcs", 0xfff82000, 0x8bd02000, "1+i", 1 },
{ "te", 0xfff82000, 0x83d00000, "1+2", 0 },
{ "te", 0xffffe000, 0x83d02000, "i", 0 },
{ "te", 0xfff82000, 0x83d02000, "1+i", 1 },
{ "tg", 0xfff82000, 0x95d00000, "1+2", 0 },
{ "tg", 0xffffe000, 0x95d02000, "i", 0 },
{ "tg", 0xfff82000, 0x95d02000, "1+i", 1 },
{ "tge", 0xfff82000, 0x97d00000, "1+2", 0 },
{ "tge", 0xffffe000, 0x97d02000, "i", 0 },
{ "tge", 0xfff82000, 0x97d02000, "1+i", 1 },
{ "tgu", 0xfff82000, 0x99d00000, "1+2", 0 },
{ "tgu", 0xffffe000, 0x99d02000, "i", 0 },
{ "tgu", 0xfff82000, 0x99d02000, "1+i", 1 },
{ "tl", 0xfff82000, 0x87d00000, "1+2", 0 },
{ "tl", 0xffffe000, 0x87d02000, "i", 0 },
{ "tl", 0xfff82000, 0x87d02000, "1+i", 1 },
{ "tle", 0xfff82000, 0x85d00000, "1+2", 0 },
{ "tle", 0xffffe000, 0x85d02000, "i", 0 },
{ "tle", 0xfff82000, 0x85d02000, "1+i", 1 },
{ "tleu", 0xfff82000, 0x93d00000, "1+2", 0 },
{ "tleu", 0xffffe000, 0x93d02000, "i", 0 },
{ "tleu", 0xfff82000, 0x93d02000, "1+i", 1 },
{ "tn", 0xfff82000, 0x81d00000, "1+2", 0 },
{ "tn ", 0xffffe000, 0x81d02000, "i", 0 },
{ "tn ", 0xfff82000, 0x81d02000, "1+i", 1 },
{ "tne", 0xfff82000, 0x93d00000, "1+2", 0 },
{ "tne", 0xffffe000, 0x93d02000, "i", 0 },
{ "tne", 0xfff82000, 0x93d02000, "1+i", 1 },
{ "tneg", 0xfff82000, 0x8dd00000, "1+2", 0 },
{ "tneg", 0xffffe000, 0x8dd02000, "i", 0 },
{ "tneg", 0xfff82000, 0x8dd02000, "1+i", 1 },
{ "tpos", 0xfff82000, 0x9dd00000, "1+2", 0 },
{ "tpos", 0xffffe000, 0x9dd02000, "i", 0 },
{ "tpos", 0xfff82000, 0x9dd02000, "1+i", 1 },
{ "tvc", 0xfff82000, 0x9fd00000, "1+2", 0 },
{ "tvc", 0xffffe000, 0x9fd02000, "i", 0 },
{ "tvc", 0xfff82000, 0x9fd02000, "1+i", 1 },
{ "tvs", 0xfff82000, 0x8fd00000, "1+2", 0 },
{ "tvs", 0xffffe000, 0x8fd02000, "i", 0 },
{ "tvs", 0xfff82000, 0x8fd02000, "1+i", 1 },
{ "tst", 0xffffe000, 0x80900000, "2", 1 }, /* orcc %0,rs1,%0 */
{ "tsubcc", 0xc1f82000, 0x81080000, "1,2,d", 0 },
{ "tsubcc", 0xc1f82000, 0x81082000, "1,i,d", 1 },
{ "tsubcctv", 0xc1f82000, 0x80580000, "1,2,d", 0 },
{ "tsubcctv", 0xc1f82000, 0x80582000, "1,i,d", 1 },
{ "unimp", 0xc1c00000, 0x00000000, "l", 1 },
{ "wr", 0xc1f82000, 0x81880000, "1,2,p", 0 },
{ "wr", 0xc1f82000, 0x81882000, "1,i,p", 0 },
{ "wr", 0xc1f82000, 0x81980000, "1,2,t", 0 },
{ "wr", 0xc1f82000, 0x81982000, "1,i,t", 0 },
{ "wr", 0xc1f82000, 0x81900000, "1,2,w", 0 },
{ "wr", 0xc1f82000, 0x81902000, "1,i,w", 0 },
{ "wr", 0xc1f82000, 0x81800000, "1,2,y", 0 },
{ "wr", 0xc1f82000, 0x81802000, "1,i,y", 1 },
{ "xnor", 0xc1f82000, 0x80380000, "1,2,d", 0 },
{ "xnor", 0xc1f82000, 0x80382000, "i,1,d", 0 },
{ "xnor", 0xc1f82000, 0x80382000, "1,i,d", 1 },
{ "xnorcc", 0xc1f82000, 0x80b80000, "1,2,d", 0 },
{ "xnorcc", 0xc1f82000, 0x80b82000, "i,1,d", 0 },
{ "xnorcc", 0xc1f82000, 0x80b82000, "1,i,d", 1 },
{ "xor", 0xc1f82000, 0x80180000, "1,2,d", 0 },
{ "xor", 0xc1f82000, 0x80182000, "i,1,d", 0 },
{ "xor", 0xc1f82000, 0x80182000, "1,i,d", 1 },
{ "xorcc", 0xc1f82000, 0x80980000, "1,2,d", 0 },
{ "xorcc", 0xc1f82000, 0x80982000, "i,1,d", 0 },
{ "xorcc", 0xc1f82000, 0x80982000, "1,i,d", 1 },
{ "iflush", 0xfff83fe0, 0x81d80000, "1+2", 0 },
{ "iflush", 0xfff82000, 0x81d82000, "1+i", 1 },
#if 0
{ "fpop1", 0x0, 0x81a00000, "[1],d", 0 },
{ "fpop1", 0x0, 0x81a00000, "[1+2],d", 1 },
{ "fpop2", 0x0, 0x81a80000, "[1+i],d", 1 },
#endif
{ "fb", 0xffc00000, 0x11800000, "l", 0 },
{ "fb", 0xffc00000, 0x31800000, ",al", 1 },
{ "fba", 0xffc00000, 0x11800000, "l", 0 },
{ "fba", 0xffc00000, 0x31800000, ",al", 1 },
{ "fbn", 0xffc00000, 0x01800000, "l", 0 },
{ "fbn", 0xffc00000, 0x21800000, ",al", 1 },
{ "fbu", 0xffc00000, 0x0f800000, "l", 0 },
{ "fbu", 0xffc00000, 0x2f800000, ",al", 1 },
{ "fbg", 0xffc00000, 0x0d800000, "l", 0 },
{ "fbg", 0xffc00000, 0x2d800000, ",al", 1 },
{ "fbug", 0xffc00000, 0x0b800000, "l", 0 },
{ "fbug", 0xffc00000, 0x2b800000, ",al", 1 },
{ "fbl", 0xffc00000, 0x09800000, "l", 0 },
{ "fbl", 0xffc00000, 0x29800000, ",al", 1 },
{ "fbul", 0xffc00000, 0x07800000, "l", 0 },
{ "fbul", 0xffc00000, 0x27800000, ",al", 1 },
{ "fblg", 0xffc00000, 0x05800000, "l", 0 },
{ "fblg", 0xffc00000, 0x25800000, ",al", 1 },
{ "fbne", 0xffc00000, 0x03800000, "l", 0 },
{ "fbne", 0xffc00000, 0x23800000, ",al", 1 },
{ "fbe", 0xffc00000, 0x13800000, "l", 0 },
{ "fbe", 0xffc00000, 0x33800000, ",al", 1 },
{ "fbue", 0xffc00000, 0x15800000, "l", 0 },
{ "fbue", 0xffc00000, 0x35800000, ",al", 1 },
{ "fbge", 0xffc00000, 0x17800000, "l", 0 },
{ "fbge", 0xffc00000, 0x37800000, ",al", 1 },
{ "fbuge", 0xffc00000, 0x19800000, "l", 0 },
{ "fbuge", 0xffc00000, 0x39800000, ",al", 1 },
{ "fble", 0xffc00000, 0x1b800000, "l", 0 },
{ "fble", 0xffc00000, 0x3b800000, ",al", 1 },
{ "fbule", 0xffc00000, 0x1d800000, "l", 0 },
{ "fbule", 0xffc00000, 0x3d800000, ",al", 1 },
{ "fbo", 0xffc00000, 0x1f800000, "l", 0 },
{ "fbo", 0xffc00000, 0x3f800000, ",al", 1 },
{ "cba", 0xffc00000, 0x11c00000, "l", 0 },
{ "cba", 0xffc00000, 0x21c00000, ",al", 1 },
{ "cbn", 0xffc00000, 0x01c00000, "l", 0 },
{ "cbn", 0xffc00000, 0x21c00000, ",al", 1 },
{ "cb3", 0xffc00000, 0x0fc00000, "l", 0 },
{ "cb3", 0xffc00000, 0x2fc00000, ",al", 1 },
{ "cb2", 0xffc00000, 0x0dc00000, "l", 0 },
{ "cb2", 0xffc00000, 0x2dc00000, ",al", 1 },
{ "cb23", 0xffc00000, 0x0bc00000, "l", 0 },
{ "cb23", 0xffc00000, 0x2bc00000, ",al", 1 },
{ "cb1", 0xffc00000, 0x09c00000, "l", 0 },
{ "cb1", 0xffc00000, 0x29c00000, ",al", 1 },
{ "cb13", 0xffc00000, 0x07c00000, "l", 0 },
{ "cb13", 0xffc00000, 0x27c00000, ",al", 1 },
{ "cb12", 0xffc00000, 0x05c00000, "l", 0 },
{ "cb12", 0xffc00000, 0x25c00000, ",al", 1 },
{ "cb123", 0xffc00000, 0x03c00000, "l", 0 },
{ "cb123", 0xffc00000, 0x23c00000, ",al", 1 },
{ "cb0", 0xffc00000, 0x13c00000, "l", 0 },
{ "cb0", 0xffc00000, 0x33c00000, ",al", 1 },
{ "cb03", 0xffc00000, 0x15c00000, "l", 0 },
{ "cb03", 0xffc00000, 0x35c00000, ",al", 1 },
{ "cb02", 0xffc00000, 0x17c00000, "l", 0 },
{ "cb02", 0xffc00000, 0x37c00000, ",al", 1 },
{ "cb023", 0xffc00000, 0x19c00000, "l", 0 },
{ "cb023", 0xffc00000, 0x39c00000, ",al", 1 },
{ "cb013", 0xffc00000, 0x1dc00000, "l", 0 },
{ "cb013", 0xffc00000, 0x3dc00000, ",al", 1 },
{ "cb012", 0xffc00000, 0x1fc00000, "l", 0 },
{ "cb012", 0xffc00000, 0x3fc00000, ",al", 1 },
{ "fitos", 0xc1ffffe0, 0x81a01880, "f,g", 1 },
{ "fitod", 0xc1ffffe0, 0x81a01900, "f,g", 1 },
{ "fitox", 0xc1ffffe0, 0x81a01980, "f,g", 1 },
{ "fstoi", 0xc1ffffe0, 0x81a01a20, "f,g", 1 },
{ "fdtoi", 0xc1ffffe0, 0x81a01a40, "f,g", 1 },
{ "fxtoi", 0xc1ffffe0, 0x81a01a60, "f,g", 1 },
{ "fstod", 0xc1ffffe0, 0x81a01920, "f,g", 1 },
{ "fstox", 0xc1ffffe0, 0x81a019a0, "f,g", 1 },
{ "fdtos", 0xc1ffffe0, 0x81a018c0, "f,g", 1 },
{ "fdtox", 0xc1ffffe0, 0x81a019c0, "f,g", 1 },
{ "fxtos", 0xc1ffffe0, 0x81a018e0, "f,g", 1 },
{ "fxtod", 0xc1ffffe0, 0x81a01960, "f,g", 1 },
{ "fmovs", 0xc1ffffe0, 0x81a00020, "f,g", 1 },
{ "fnegs", 0xc1ffffe0, 0x81a000a0, "f,g", 1 },
{ "fabss", 0xc1ffffe0, 0x81a00120, "f,g", 1 },
{ "fsqrts", 0xc1ffffe0, 0x81a00520, "f,g", 1 },
{ "fsqrtd", 0xc1ffffe0, 0x81a00540, "f,g", 1 },
{ "fsqrtx", 0xc1ffffe0, 0x81a00560, "f,g", 1 },
{ "fadds", 0xc1f83fe0, 0x81a00820, "e,f,g", 1 },
{ "faddd", 0xc1f83fe0, 0x81a00840, "e,f,g", 1 },
{ "faddx", 0xc1f83fe0, 0x81a00860, "e,f,g", 1 },
{ "fsubs", 0xc1f83fe0, 0x81a008a0, "e,f,g", 1 },
{ "fsubd", 0xc1f83fe0, 0x81a008c0, "e,f,g", 1 },
{ "fsubx", 0xc1f83fe0, 0x81a008e0, "e,f,g", 1 },
{ "fmuls", 0xc1f83fe0, 0x81a00920, "e,f,g", 1 },
{ "fmuld", 0xc1f83fe0, 0x81a00940, "e,f,g", 1 },
{ "fmulx", 0xc1f83fe0, 0x81a00960, "e,f,g", 1 },
{ "fdivs", 0xc1f83fe0, 0x81a009a0, "e,f,g", 1 },
{ "fdivd", 0xc1f83fe0, 0x81a009c0, "e,f,g", 1 },
{ "fdivx", 0xc1f83fe0, 0x81a009e0, "e,f,g", 1 },
{ "fcmps", 0xfff83fe0, 0x81a80a20, "e,f", 1 },
{ "fcmpd", 0xfff83fe0, 0x81a80a40, "e,f", 1 },
{ "fcmpx", 0xfff83fe0, 0x81a80a60, "e,f", 1 },
{ "fcmpes", 0xfff83fe0, 0x81a80aa0, "e,f", 1 },
{ "fcmped", 0xfff83fe0, 0x81a80ac0, "e,f", 1 },
{ "fcmpex", 0xfff83fe0, 0x81a80ae0, "e,f", 1 },
#if 0
{ "cpop1", 0x0, 0x81b00000, "[1],d", 0 },
{ "cpop1", 0x0, 0x81b00000, "[1+2],d", 1 },
{ "cpop2", 0x0, 0x81b80000, "[1+i],d", 1 },
#endif
};
#define NUMOPCODES ((sizeof sparc_opcodes)/(sizeof *sparc_opcodes))