xref: /netbsd-src/external/gpl3/gdb/dist/include/opcode/np1.h (revision aab831cebf6361fb2b518a47c70732e608d9abd2)
198b9484cSchristos /* Print GOULD NPL instructions for GDB, the GNU debugger.
2*aab831ceSchristos    Copyright (C) 1986-2024 Free Software Foundation, Inc.
398b9484cSchristos 
498b9484cSchristos    This file is part of GDB.
598b9484cSchristos 
698b9484cSchristos    GDB is free software; you can redistribute it and/or modify
798b9484cSchristos    it under the terms of the GNU General Public License as published by
898b9484cSchristos    the Free Software Foundation; either version 3, or (at your option)
998b9484cSchristos    any later version.
1098b9484cSchristos 
1198b9484cSchristos    GDB is distributed in the hope that it will be useful,
1298b9484cSchristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
1398b9484cSchristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1498b9484cSchristos    GNU General Public License for more details.
1598b9484cSchristos 
1698b9484cSchristos    You should have received a copy of the GNU General Public License
1798b9484cSchristos    along with GDB; see the file COPYING3.  If not, write to
1898b9484cSchristos    the Free Software Foundation, 51 Franklin Street - Fifth Floor,
1998b9484cSchristos    Boston, MA 02110-1301, USA.  */
2098b9484cSchristos 
2198b9484cSchristos struct gld_opcode
2298b9484cSchristos {
2398b9484cSchristos   char *name;
2498b9484cSchristos   unsigned long opcode;
2598b9484cSchristos   unsigned long mask;
2698b9484cSchristos   char *args;
2798b9484cSchristos   int length;
2898b9484cSchristos };
2998b9484cSchristos 
3098b9484cSchristos /* We store four bytes of opcode for all opcodes because that
3198b9484cSchristos    is the most any of them need.  The actual length of an instruction
3298b9484cSchristos    is always at least 2 bytes, and at most four.  The length of the
3398b9484cSchristos    instruction is based on the opcode.
3498b9484cSchristos 
3598b9484cSchristos    The mask component is a mask saying which bits must match
3698b9484cSchristos    particular opcode in order for an instruction to be an instance
3798b9484cSchristos    of that opcode.
3898b9484cSchristos 
3998b9484cSchristos    The args component is a string containing characters
4098b9484cSchristos    that are used to format the arguments to the instruction.  */
4198b9484cSchristos 
4298b9484cSchristos /* Kinds of operands:
4398b9484cSchristos    r  Register in first field
4498b9484cSchristos    R  Register in second field
4598b9484cSchristos    b  Base register in first field
4698b9484cSchristos    B  Base register in second field
4798b9484cSchristos    v  Vector register in first field
4898b9484cSchristos    V  Vector register in first field
4998b9484cSchristos    A  Optional address register (base register)
5098b9484cSchristos    X  Optional index register
5198b9484cSchristos    I  Immediate data (16bits signed)
5298b9484cSchristos    O  Offset field (16bits signed)
5398b9484cSchristos    h  Offset field (15bits signed)
5498b9484cSchristos    d  Offset field (14bits signed)
5598b9484cSchristos    S  Shift count field
5698b9484cSchristos 
5798b9484cSchristos    any other characters are printed as is...  */
5898b9484cSchristos 
5998b9484cSchristos /* The assembler requires that this array be sorted as follows:
6098b9484cSchristos    all instances of the same mnemonic must be consecutive.
6198b9484cSchristos    All instances of the same mnemonic with the same number of operands
6298b9484cSchristos    must be consecutive.   */
6398b9484cSchristos struct gld_opcode gld_opcodes[] =
6498b9484cSchristos {
6598b9484cSchristos { "lb",		0xb4080000,	0xfc080000,	"r,xOA,X",	4 },
6698b9484cSchristos { "lnb",	0xb8080000,	0xfc080000,	"r,xOA,X",	4 },
6798b9484cSchristos { "lbs",	0xec080000,	0xfc080000,	"r,xOA,X",	4 },
6898b9484cSchristos { "lh",		0xb4000001,	0xfc080001,	"r,xOA,X",	4 },
6998b9484cSchristos { "lnh",	0xb8000001,	0xfc080001,	"r,xOA,X",	4 },
7098b9484cSchristos { "lw",		0xb4000000,	0xfc080000,	"r,xOA,X",	4 },
7198b9484cSchristos { "lnw",	0xb8000000,	0xfc080000,	"r,xOA,X",	4 },
7298b9484cSchristos { "ld",		0xb4000002,	0xfc080002,	"r,xOA,X",	4 },
7398b9484cSchristos { "lnd",	0xb8000002,	0xfc080002,	"r,xOA,X",	4 },
7498b9484cSchristos { "li",		0xf8000000,	0xfc7f0000,	"r,I",		4 },
7598b9484cSchristos { "lpa",	0x50080000,	0xfc080000,	"r,xOA,X",	4 },
7698b9484cSchristos { "la",		0x50000000,	0xfc080000,	"r,xOA,X",	4 },
7798b9484cSchristos { "labr",	0x58080000,	0xfc080000,	"b,xOA,X",	4 },
7898b9484cSchristos { "lbp",	0x90080000,	0xfc080000,	"r,xOA,X",	4 },
7998b9484cSchristos { "lhp",	0x90000001,	0xfc080001,	"r,xOA,X",	4 },
8098b9484cSchristos { "lwp",	0x90000000,	0xfc080000,	"r,xOA,X",	4 },
8198b9484cSchristos { "ldp",	0x90000002,	0xfc080002,	"r,xOA,X",	4 },
8298b9484cSchristos { "suabr",	0x58000000,	0xfc080000,	"b,xOA,X",	4 },
8398b9484cSchristos { "lf",		0xbc000000,	0xfc080000,	"r,xOA,X",	4 },
8498b9484cSchristos { "lfbr",	0xbc080000,	0xfc080000,	"b,xOA,X",	4 },
8598b9484cSchristos { "lwbr",	0x5c000000,	0xfc080000,	"b,xOA,X",	4 },
8698b9484cSchristos { "stb",	0xd4080000,	0xfc080000,	"r,xOA,X",	4 },
8798b9484cSchristos { "sth",	0xd4000001,	0xfc080001,	"r,xOA,X",	4 },
8898b9484cSchristos { "stw",	0xd4000000,	0xfc080000,	"r,xOA,X",	4 },
8998b9484cSchristos { "std",	0xd4000002,	0xfc080002,	"r,xOA,X",	4 },
9098b9484cSchristos { "stf",	0xdc000000,	0xfc080000,	"r,xOA,X",	4 },
9198b9484cSchristos { "stfbr",	0xdc080000,	0xfc080000,	"b,xOA,X",	4 },
9298b9484cSchristos { "stwbr",	0x54000000,	0xfc080000,	"b,xOA,X",	4 },
9398b9484cSchristos { "zmb",	0xd8080000,	0xfc080000,	"r,xOA,X",	4 },
9498b9484cSchristos { "zmh",	0xd8000001,	0xfc080001,	"r,xOA,X",	4 },
9598b9484cSchristos { "zmw",	0xd8000000,	0xfc080000,	"r,xOA,X",	4 },
9698b9484cSchristos { "zmd",	0xd8000002,	0xfc080002,	"r,xOA,X",	4 },
9798b9484cSchristos { "stbp",	0x94080000,	0xfc080000,	"r,xOA,X",	4 },
9898b9484cSchristos { "sthp",	0x94000001,	0xfc080001,	"r,xOA,X",	4 },
9998b9484cSchristos { "stwp",	0x94000000,	0xfc080000,	"r,xOA,X",	4 },
10098b9484cSchristos { "stdp",	0x94000002,	0xfc080002,	"r,xOA,X",	4 },
10198b9484cSchristos { "lil",	0xf80b0000,	0xfc7f0000,	"r,D",		4 },
10298b9484cSchristos { "lwsl1",	0xec000000,	0xfc080000,	"r,xOA,X",	4 },
10398b9484cSchristos { "lwsl2",	0xfc000000,	0xfc080000,	"r,xOA,X",	4 },
10498b9484cSchristos { "lwsl3",	0xfc080000,	0xfc080000,	"r,xOA,X",	4 },
10598b9484cSchristos 
10698b9484cSchristos { "lvb",	0xb0080000,	0xfc080000,	"v,xOA,X",	4 },
10798b9484cSchristos { "lvh",	0xb0000001,	0xfc080001,	"v,xOA,X",	4 },
10898b9484cSchristos { "lvw",	0xb0000000,	0xfc080000,	"v,xOA,X",	4 },
10998b9484cSchristos { "lvd",	0xb0000002,	0xfc080002,	"v,xOA,X",	4 },
11098b9484cSchristos { "liv",	0x3c040000,	0xfc0f0000,	"v,R",		2 },
11198b9484cSchristos { "livf",	0x3c080000,	0xfc0f0000,	"v,R",		2 },
11298b9484cSchristos { "stvb",	0xd0080000,	0xfc080000,	"v,xOA,X",	4 },
11398b9484cSchristos { "stvh",	0xd0000001,	0xfc080001,	"v,xOA,X",	4 },
11498b9484cSchristos { "stvw",	0xd0000000,	0xfc080000,	"v,xOA,X",	4 },
11598b9484cSchristos { "stvd",	0xd0000002,	0xfc080002,	"v,xOA,X",	4 },
11698b9484cSchristos 
11798b9484cSchristos { "trr",	0x2c000000,	0xfc0f0000,	"r,R",		2 },
11898b9484cSchristos { "trn",	0x2c040000,	0xfc0f0000,	"r,R",		2 },
11998b9484cSchristos { "trnd",	0x2c0c0000,	0xfc0f0000,	"r,R",		2 },
12098b9484cSchristos { "trabs",	0x2c010000,	0xfc0f0000,	"r,R",		2 },
12198b9484cSchristos { "trabsd",	0x2c090000,	0xfc0f0000,	"r,R",		2 },
12298b9484cSchristos { "trc",	0x2c030000,	0xfc0f0000,	"r,R",		2 },
12398b9484cSchristos { "xcr",	0x28040000,	0xfc0f0000,	"r,R",		2 },
12498b9484cSchristos { "cxcr",	0x2c060000,	0xfc0f0000,	"r,R",		2 },
12598b9484cSchristos { "cxcrd",	0x2c0e0000,	0xfc0f0000,	"r,R",		2 },
12698b9484cSchristos { "tbrr",	0x2c020000,	0xfc0f0000,	"r,B",		2 },
12798b9484cSchristos { "trbr",	0x28030000,	0xfc0f0000,	"b,R",		2 },
12898b9484cSchristos { "xcbr",	0x28020000,	0xfc0f0000,	"b,B",		2 },
12998b9484cSchristos { "tbrbr",	0x28010000,	0xfc0f0000,	"b,B",		2 },
13098b9484cSchristos 
13198b9484cSchristos { "trvv",	0x28050000,	0xfc0f0000,	"v,V",		2 },
13298b9484cSchristos { "trvvn",	0x2c050000,	0xfc0f0000,	"v,V",		2 },
13398b9484cSchristos { "trvvnd",	0x2c0d0000,	0xfc0f0000,	"v,V",		2 },
13498b9484cSchristos { "trvab",	0x2c070000,	0xfc0f0000,	"v,V",		2 },
13598b9484cSchristos { "trvabd",	0x2c0f0000,	0xfc0f0000,	"v,V",		2 },
13698b9484cSchristos { "cmpv",	0x14060000,	0xfc0f0000,	"v,V",		2 },
13798b9484cSchristos { "expv",	0x14070000,	0xfc0f0000,	"v,V",		2 },
13898b9484cSchristos { "mrvvlt",	0x10030000,	0xfc0f0000,	"v,V",		2 },
13998b9484cSchristos { "mrvvle",	0x10040000,	0xfc0f0000,	"v,V",		2 },
14098b9484cSchristos { "mrvvgt",	0x14030000,	0xfc0f0000,	"v,V",		2 },
14198b9484cSchristos { "mrvvge",	0x14040000,	0xfc0f0000,	"v,V",		2 },
14298b9484cSchristos { "mrvveq",	0x10050000,	0xfc0f0000,	"v,V",		2 },
14398b9484cSchristos { "mrvvne",	0x10050000,	0xfc0f0000,	"v,V",		2 },
14498b9484cSchristos { "mrvrlt",	0x100d0000,	0xfc0f0000,	"v,R",		2 },
14598b9484cSchristos { "mrvrle",	0x100e0000,	0xfc0f0000,	"v,R",		2 },
14698b9484cSchristos { "mrvrgt",	0x140d0000,	0xfc0f0000,	"v,R",		2 },
14798b9484cSchristos { "mrvrge",	0x140e0000,	0xfc0f0000,	"v,R",		2 },
14898b9484cSchristos { "mrvreq",	0x100f0000,	0xfc0f0000,	"v,R",		2 },
14998b9484cSchristos { "mrvrne",	0x140f0000,	0xfc0f0000,	"v,R",		2 },
15098b9484cSchristos { "trvr",	0x140b0000,	0xfc0f0000,	"r,V",		2 },
15198b9484cSchristos { "trrv",	0x140c0000,	0xfc0f0000,	"v,R",		2 },
15298b9484cSchristos 
15398b9484cSchristos { "bu",		0x40000000,	0xff880000,	"xOA,X",	4 },
15498b9484cSchristos { "bns",	0x70080000,	0xff880000,	"xOA,X",	4 },
15598b9484cSchristos { "bnco",	0x70880000,	0xff880000,	"xOA,X",	4 },
15698b9484cSchristos { "bge",	0x71080000,	0xff880000,	"xOA,X",	4 },
15798b9484cSchristos { "bne",	0x71880000,	0xff880000,	"xOA,X",	4 },
15898b9484cSchristos { "bunge",	0x72080000,	0xff880000,	"xOA,X",	4 },
15998b9484cSchristos { "bunle",	0x72880000,	0xff880000,	"xOA,X",	4 },
16098b9484cSchristos { "bgt",	0x73080000,	0xff880000,	"xOA,X",	4 },
16198b9484cSchristos { "bnany",	0x73880000,	0xff880000,	"xOA,X",	4 },
16298b9484cSchristos { "bs"	,	0x70000000,	0xff880000,	"xOA,X",	4 },
16398b9484cSchristos { "bco",	0x70800000,	0xff880000,	"xOA,X",	4 },
16498b9484cSchristos { "blt",	0x71000000,	0xff880000,	"xOA,X",	4 },
16598b9484cSchristos { "beq",	0x71800000,	0xff880000,	"xOA,X",	4 },
16698b9484cSchristos { "buge",	0x72000000,	0xff880000,	"xOA,X",	4 },
16798b9484cSchristos { "bult",	0x72800000,	0xff880000,	"xOA,X",	4 },
16898b9484cSchristos { "ble",	0x73000000,	0xff880000,	"xOA,X",	4 },
16998b9484cSchristos { "bany",	0x73800000,	0xff880000,	"xOA,X",	4 },
17098b9484cSchristos { "brlnk",	0x44000000,	0xfc080000,	"r,xOA,X",	4 },
17198b9484cSchristos { "bib",	0x48000000,	0xfc080000,	"r,xOA,X",	4 },
17298b9484cSchristos { "bih",	0x48080000,	0xfc080000,	"r,xOA,X",	4 },
17398b9484cSchristos { "biw",	0x4c000000,	0xfc080000,	"r,xOA,X",	4 },
17498b9484cSchristos { "bid",	0x4c080000,	0xfc080000,	"r,xOA,X",	4 },
17598b9484cSchristos { "bivb",	0x60000000,	0xfc080000,	"r,xOA,X",	4 },
17698b9484cSchristos { "bivh",	0x60080000,	0xfc080000,	"r,xOA,X",	4 },
17798b9484cSchristos { "bivw",	0x64000000,	0xfc080000,	"r,xOA,X",	4 },
17898b9484cSchristos { "bivd",	0x64080000,	0xfc080000,	"r,xOA,X",	4 },
17998b9484cSchristos { "bvsb",	0x68000000,	0xfc080000,	"r,xOA,X",	4 },
18098b9484cSchristos { "bvsh",	0x68080000,	0xfc080000,	"r,xOA,X",	4 },
18198b9484cSchristos { "bvsw",	0x6c000000,	0xfc080000,	"r,xOA,X",	4 },
18298b9484cSchristos { "bvsd",	0x6c080000,	0xfc080000,	"r,xOA,X",	4 },
18398b9484cSchristos 
18498b9484cSchristos { "camb",	0x80080000,	0xfc080000,	"r,xOA,X",	4 },
18598b9484cSchristos { "camh",	0x80000001,	0xfc080001,	"r,xOA,X",	4 },
18698b9484cSchristos { "camw",	0x80000000,	0xfc080000,	"r,xOA,X",	4 },
18798b9484cSchristos { "camd",	0x80000002,	0xfc080002,	"r,xOA,X",	4 },
18898b9484cSchristos { "car",	0x10000000,	0xfc0f0000,	"r,R",		2 },
18998b9484cSchristos { "card",	0x14000000,	0xfc0f0000,	"r,R",		2 },
19098b9484cSchristos { "ci",		0xf8050000,	0xfc7f0000,	"r,I",		4 },
19198b9484cSchristos { "chkbnd",	0x5c080000,	0xfc080000,	"r,xOA,X",	4 },
19298b9484cSchristos 
19398b9484cSchristos { "cavv",	0x10010000,	0xfc0f0000,	"v,V",		2 },
19498b9484cSchristos { "cavr",	0x10020000,	0xfc0f0000,	"v,R",		2 },
19598b9484cSchristos { "cavvd",	0x10090000,	0xfc0f0000,	"v,V",		2 },
19698b9484cSchristos { "cavrd",	0x100b0000,	0xfc0f0000,	"v,R",		2 },
19798b9484cSchristos 
19898b9484cSchristos { "anmb",	0x84080000,	0xfc080000,	"r,xOA,X",	4 },
19998b9484cSchristos { "anmh",	0x84000001,	0xfc080001,	"r,xOA,X",	4 },
20098b9484cSchristos { "anmw",	0x84000000,	0xfc080000,	"r,xOA,X",	4 },
20198b9484cSchristos { "anmd",	0x84000002,	0xfc080002,	"r,xOA,X",	4 },
20298b9484cSchristos { "anr",	0x04000000,	0xfc0f0000,	"r,R",		2 },
20398b9484cSchristos { "ani",	0xf8080000,	0xfc7f0000,	"r,I",		4 },
20498b9484cSchristos { "ormb",	0xb8080000,	0xfc080000,	"r,xOA,X",	4 },
20598b9484cSchristos { "ormh",	0xb8000001,	0xfc080001,	"r,xOA,X",	4 },
20698b9484cSchristos { "ormw",	0xb8000000,	0xfc080000,	"r,xOA,X",	4 },
20798b9484cSchristos { "ormd",	0xb8000002,	0xfc080002,	"r,xOA,X",	4 },
20898b9484cSchristos { "orr",	0x08000000,	0xfc0f0000,	"r,R",		2 },
20998b9484cSchristos { "oi",		0xf8090000,	0xfc7f0000,	"r,I",		4 },
21098b9484cSchristos { "eomb",	0x8c080000,	0xfc080000,	"r,xOA,X",	4 },
21198b9484cSchristos { "eomh",	0x8c000001,	0xfc080001,	"r,xOA,X",	4 },
21298b9484cSchristos { "eomw",	0x8c000000,	0xfc080000,	"r,xOA,X",	4 },
21398b9484cSchristos { "eomd",	0x8c000002,	0xfc080002,	"r,xOA,X",	4 },
21498b9484cSchristos { "eor",	0x0c000000,	0xfc0f0000,	"r,R",		2 },
21598b9484cSchristos { "eoi",	0xf80a0000,	0xfc7f0000,	"r,I",		4 },
21698b9484cSchristos 
21798b9484cSchristos { "anvv",	0x04010000,	0xfc0f0000,	"v,V",		2 },
21898b9484cSchristos { "anvr",	0x04020000,	0xfc0f0000,	"v,R",		2 },
21998b9484cSchristos { "orvv",	0x08010000,	0xfc0f0000,	"v,V",		2 },
22098b9484cSchristos { "orvr",	0x08020000,	0xfc0f0000,	"v,R",		2 },
22198b9484cSchristos { "eovv",	0x0c010000,	0xfc0f0000,	"v,V",		2 },
22298b9484cSchristos { "eovr",	0x0c020000,	0xfc0f0000,	"v,R",		2 },
22398b9484cSchristos 
22498b9484cSchristos { "sacz",	0x100c0000,	0xfc0f0000,	"r,R",		2 },
22598b9484cSchristos { "sla",	0x1c400000,	0xfc600000,	"r,S",		2 },
22698b9484cSchristos { "sll",	0x1c600000,	0xfc600000,	"r,S",		2 },
22798b9484cSchristos { "slc",	0x24400000,	0xfc600000,	"r,S",		2 },
22898b9484cSchristos { "slad",	0x20400000,	0xfc600000,	"r,S",		2 },
22998b9484cSchristos { "slld",	0x20600000,	0xfc600000,	"r,S",		2 },
23098b9484cSchristos { "sra",	0x1c000000,	0xfc600000,	"r,S",		2 },
23198b9484cSchristos { "srl",	0x1c200000,	0xfc600000,	"r,S",		2 },
23298b9484cSchristos { "src",	0x24000000,	0xfc600000,	"r,S",		2 },
23398b9484cSchristos { "srad",	0x20000000,	0xfc600000,	"r,S",		2 },
23498b9484cSchristos { "srld",	0x20200000,	0xfc600000,	"r,S",		2 },
23598b9484cSchristos { "sda",	0x3c030000,	0xfc0f0000,	"r,R",		2 },
23698b9484cSchristos { "sdl",	0x3c020000,	0xfc0f0000,	"r,R",		2 },
23798b9484cSchristos { "sdc",	0x3c010000,	0xfc0f0000,	"r,R",		2 },
23898b9484cSchristos { "sdad",	0x3c0b0000,	0xfc0f0000,	"r,R",		2 },
23998b9484cSchristos { "sdld",	0x3c0a0000,	0xfc0f0000,	"r,R",		2 },
24098b9484cSchristos 
24198b9484cSchristos { "svda",	0x3c070000,	0xfc0f0000,	"v,R",		2 },
24298b9484cSchristos { "svdl",	0x3c060000,	0xfc0f0000,	"v,R",		2 },
24398b9484cSchristos { "svdc",	0x3c050000,	0xfc0f0000,	"v,R",		2 },
24498b9484cSchristos { "svdad",	0x3c0e0000,	0xfc0f0000,	"v,R",		2 },
24598b9484cSchristos { "svdld",	0x3c0d0000,	0xfc0f0000,	"v,R",		2 },
24698b9484cSchristos 
24798b9484cSchristos { "sbm",	0xac080000,	0xfc080000,	"f,xOA,X",	4 },
24898b9484cSchristos { "zbm",	0xac000000,	0xfc080000,	"f,xOA,X",	4 },
24998b9484cSchristos { "tbm",	0xa8080000,	0xfc080000,	"f,xOA,X",	4 },
25098b9484cSchristos { "incmb",	0xa0000000,	0xfc080000,	"xOA,X",	4 },
25198b9484cSchristos { "incmh",	0xa0080000,	0xfc080000,	"xOA,X",	4 },
25298b9484cSchristos { "incmw",	0xa4000000,	0xfc080000,	"xOA,X",	4 },
25398b9484cSchristos { "incmd",	0xa4080000,	0xfc080000,	"xOA,X",	4 },
25498b9484cSchristos { "sbmd",	0x7c080000,	0xfc080000,	"r,xOA,X",	4 },
25598b9484cSchristos { "zbmd",	0x7c000000,	0xfc080000,	"r,xOA,X",	4 },
25698b9484cSchristos { "tbmd",	0x78080000,	0xfc080000,	"r,xOA,X",	4 },
25798b9484cSchristos 
25898b9484cSchristos { "ssm",	0x9c080000,	0xfc080000,	"f,xOA,X",	4 },
25998b9484cSchristos { "zsm",	0x9c000000,	0xfc080000,	"f,xOA,X",	4 },
26098b9484cSchristos { "tsm",	0x98080000,	0xfc080000,	"f,xOA,X",	4 },
26198b9484cSchristos 
26298b9484cSchristos { "admb",	0xc8080000,	0xfc080000,	"r,xOA,X",	4 },
26398b9484cSchristos { "admh",	0xc8000001,	0xfc080001,	"r,xOA,X",	4 },
26498b9484cSchristos { "admw",	0xc8000000,	0xfc080000,	"r,xOA,X",	4 },
26598b9484cSchristos { "admd",	0xc8000002,	0xfc080002,	"r,xOA,X",	4 },
26698b9484cSchristos { "adr",	0x38000000,	0xfc0f0000,	"r,R",		2 },
26798b9484cSchristos { "armb",	0xe8080000,	0xfc080000,	"r,xOA,X",	4 },
26898b9484cSchristos { "armh",	0xe8000001,	0xfc080001,	"r,xOA,X",	4 },
26998b9484cSchristos { "armw",	0xe8000000,	0xfc080000,	"r,xOA,X",	4 },
27098b9484cSchristos { "armd",	0xe8000002,	0xfc080002,	"r,xOA,X",	4 },
27198b9484cSchristos { "adi",	0xf8010000,	0xfc0f0000,	"r,I",		4 },
27298b9484cSchristos { "sumb",	0xcc080000,	0xfc080000,	"r,xOA,X",	4 },
27398b9484cSchristos { "sumh",	0xcc000001,	0xfc080001,	"r,xOA,X",	4 },
27498b9484cSchristos { "sumw",	0xcc000000,	0xfc080000,	"r,xOA,X",	4 },
27598b9484cSchristos { "sumd",	0xcc000002,	0xfc080002,	"r,xOA,X",	4 },
27698b9484cSchristos { "sur",	0x3c000000,	0xfc0f0000,	"r,R",		2 },
27798b9484cSchristos { "sui",	0xf8020000,	0xfc0f0000,	"r,I",		4 },
27898b9484cSchristos { "mpmb",	0xc0080000,	0xfc080000,	"r,xOA,X",	4 },
27998b9484cSchristos { "mpmh",	0xc0000001,	0xfc080001,	"r,xOA,X",	4 },
28098b9484cSchristos { "mpmw",	0xc0000000,	0xfc080000,	"r,xOA,X",	4 },
28198b9484cSchristos { "mpr",	0x38020000,	0xfc0f0000,	"r,R",		2 },
28298b9484cSchristos { "mprd",	0x3c0f0000,	0xfc0f0000,	"r,R",		2 },
28398b9484cSchristos { "mpi",	0xf8030000,	0xfc0f0000,	"r,I",		4 },
28498b9484cSchristos { "dvmb",	0xc4080000,	0xfc080000,	"r,xOA,X",	4 },
28598b9484cSchristos { "dvmh",	0xc4000001,	0xfc080001,	"r,xOA,X",	4 },
28698b9484cSchristos { "dvmw",	0xc4000000,	0xfc080000,	"r,xOA,X",	4 },
28798b9484cSchristos { "dvr",	0x380a0000,	0xfc0f0000,	"r,R",		2 },
28898b9484cSchristos { "dvi",	0xf8040000,	0xfc0f0000,	"r,I",		4 },
28998b9484cSchristos { "exs",	0x38080000,	0xfc0f0000,	"r,R",		2 },
29098b9484cSchristos 
29198b9484cSchristos { "advv",	0x30000000,	0xfc0f0000,	"v,V",		2 },
29298b9484cSchristos { "advvd",	0x30080000,	0xfc0f0000,	"v,V",		2 },
29398b9484cSchristos { "adrv",	0x34000000,	0xfc0f0000,	"v,R",		2 },
29498b9484cSchristos { "adrvd",	0x34080000,	0xfc0f0000,	"v,R",		2 },
29598b9484cSchristos { "suvv",	0x30010000,	0xfc0f0000,	"v,V",		2 },
29698b9484cSchristos { "suvvd",	0x30090000,	0xfc0f0000,	"v,V",		2 },
29798b9484cSchristos { "surv",	0x34010000,	0xfc0f0000,	"v,R",		2 },
29898b9484cSchristos { "survd",	0x34090000,	0xfc0f0000,	"v,R",		2 },
29998b9484cSchristos { "mpvv",	0x30020000,	0xfc0f0000,	"v,V",		2 },
30098b9484cSchristos { "mprv",	0x34020000,	0xfc0f0000,	"v,R",		2 },
30198b9484cSchristos 
30298b9484cSchristos { "adfw",	0xe0080000,	0xfc080000,	"r,xOA,X",	4 },
30398b9484cSchristos { "adfd",	0xe0080002,	0xfc080002,	"r,xOA,X",	4 },
30498b9484cSchristos { "adrfw",	0x38010000,	0xfc0f0000,	"r,R",		2 },
30598b9484cSchristos { "adrfd",	0x38090000,	0xfc0f0000,	"r,R",		2 },
30698b9484cSchristos { "surfw",	0xe0000000,	0xfc080000,	"r,xOA,X",	4 },
30798b9484cSchristos { "surfd",	0xe0000002,	0xfc080002,	"r,xOA,X",	4 },
30898b9484cSchristos { "surfw",	0x38030000,	0xfc0f0000,	"r,R",		2 },
30998b9484cSchristos { "surfd",	0x380b0000,	0xfc0f0000,	"r,R",		2 },
31098b9484cSchristos { "mpfw",	0xe4080000,	0xfc080000,	"r,xOA,X",	4 },
31198b9484cSchristos { "mpfd",	0xe4080002,	0xfc080002,	"r,xOA,X",	4 },
31298b9484cSchristos { "mprfw",	0x38060000,	0xfc0f0000,	"r,R",		2 },
31398b9484cSchristos { "mprfd",	0x380e0000,	0xfc0f0000,	"r,R",		2 },
31498b9484cSchristos { "rfw",	0xe4000000,	0xfc080000,	"r,xOA,X",	4 },
31598b9484cSchristos { "rfd",	0xe4000002,	0xfc080002,	"r,xOA,X",	4 },
31698b9484cSchristos { "rrfw",	0x0c0e0000,	0xfc0f0000,	"r",		2 },
31798b9484cSchristos { "rrfd",	0x0c0f0000,	0xfc0f0000,	"r",		2 },
31898b9484cSchristos 
31998b9484cSchristos { "advvfw",	0x30040000,	0xfc0f0000,	"v,V",		2 },
32098b9484cSchristos { "advvfd",	0x300c0000,	0xfc0f0000,	"v,V",		2 },
32198b9484cSchristos { "adrvfw",	0x34040000,	0xfc0f0000,	"v,R",		2 },
32298b9484cSchristos { "adrvfd",	0x340c0000,	0xfc0f0000,	"v,R",		2 },
32398b9484cSchristos { "suvvfw",	0x30050000,	0xfc0f0000,	"v,V",		2 },
32498b9484cSchristos { "suvvfd",	0x300d0000,	0xfc0f0000,	"v,V",		2 },
32598b9484cSchristos { "survfw",	0x34050000,	0xfc0f0000,	"v,R",		2 },
32698b9484cSchristos { "survfd",	0x340d0000,	0xfc0f0000,	"v,R",		2 },
32798b9484cSchristos { "mpvvfw",	0x30060000,	0xfc0f0000,	"v,V",		2 },
32898b9484cSchristos { "mpvvfd",	0x300e0000,	0xfc0f0000,	"v,V",		2 },
32998b9484cSchristos { "mprvfw",	0x34060000,	0xfc0f0000,	"v,R",		2 },
33098b9484cSchristos { "mprvfd",	0x340e0000,	0xfc0f0000,	"v,R",		2 },
33198b9484cSchristos { "rvfw",	0x30070000,	0xfc0f0000,	"v",		2 },
33298b9484cSchristos { "rvfd",	0x300f0000,	0xfc0f0000,	"v",		2 },
33398b9484cSchristos 
33498b9484cSchristos { "fltw",	0x38070000,	0xfc0f0000,	"r,R",		2 },
33598b9484cSchristos { "fltd",	0x380f0000,	0xfc0f0000,	"r,R",		2 },
33698b9484cSchristos { "fixw",	0x38050000,	0xfc0f0000,	"r,R",		2 },
33798b9484cSchristos { "fixd",	0x380d0000,	0xfc0f0000,	"r,R",		2 },
33898b9484cSchristos { "cfpds",	0x3c090000,	0xfc0f0000,	"r,R",		2 },
33998b9484cSchristos 
34098b9484cSchristos { "fltvw",	0x080d0000,	0xfc0f0000,	"v,V",		2 },
34198b9484cSchristos { "fltvd",	0x080f0000,	0xfc0f0000,	"v,V",		2 },
34298b9484cSchristos { "fixvw",	0x080c0000,	0xfc0f0000,	"v,V",		2 },
34398b9484cSchristos { "fixvd",	0x080e0000,	0xfc0f0000,	"v,V",		2 },
34498b9484cSchristos { "cfpvds",	0x0c0d0000,	0xfc0f0000,	"v,V",		2 },
34598b9484cSchristos 
34698b9484cSchristos { "orvrn",	0x000a0000,	0xfc0f0000,	"r,V",		2 },
34798b9484cSchristos { "andvrn",	0x00080000,	0xfc0f0000,	"r,V",		2 },
34898b9484cSchristos { "frsteq",	0x04090000,	0xfc0f0000,	"r,V",		2 },
34998b9484cSchristos { "sigma",	0x0c080000,	0xfc0f0000,	"r,V",		2 },
35098b9484cSchristos { "sigmad",	0x0c0a0000,	0xfc0f0000,	"r,V",		2 },
35198b9484cSchristos { "sigmf",	0x08080000,	0xfc0f0000,	"r,V",		2 },
35298b9484cSchristos { "sigmfd",	0x080a0000,	0xfc0f0000,	"r,V",		2 },
35398b9484cSchristos { "prodf",	0x04080000,	0xfc0f0000,	"r,V",		2 },
35498b9484cSchristos { "prodfd",	0x040a0000,	0xfc0f0000,	"r,V",		2 },
35598b9484cSchristos { "maxv",	0x10080000,	0xfc0f0000,	"r,V",		2 },
35698b9484cSchristos { "maxvd",	0x100a0000,	0xfc0f0000,	"r,V",		2 },
35798b9484cSchristos { "minv",	0x14080000,	0xfc0f0000,	"r,V",		2 },
35898b9484cSchristos { "minvd",	0x140a0000,	0xfc0f0000,	"r,V",		2 },
35998b9484cSchristos 
36098b9484cSchristos { "lpsd",	0xf0000000,	0xfc080000,	"xOA,X",	4 },
36198b9484cSchristos { "ldc",	0xf0080000,	0xfc080000,	"xOA,X",	4 },
36298b9484cSchristos { "spm",	0x040c0000,	0xfc0f0000,	"r",		2 },
36398b9484cSchristos { "rpm",	0x040d0000,	0xfc0f0000,	"r",		2 },
36498b9484cSchristos { "tritr",	0x00070000,	0xfc0f0000,	"r",		2 },
36598b9484cSchristos { "trrit",	0x00060000,	0xfc0f0000,	"r",		2 },
36698b9484cSchristos { "rpswt",	0x04080000,	0xfc0f0000,	"r",		2 },
36798b9484cSchristos { "exr",	0xf8070000,	0xfc0f0000,	"",		4 },
36898b9484cSchristos { "halt",	0x00000000,	0xfc0f0000,	"",		2 },
36998b9484cSchristos { "wait",	0x00010000,	0xfc0f0000,	"",		2 },
37098b9484cSchristos { "nop",	0x00020000,	0xfc0f0000,	"",		2 },
37198b9484cSchristos { "eiae",	0x00030000,	0xfc0f0000,	"",		2 },
37298b9484cSchristos { "efae",	0x000d0000,	0xfc0f0000,	"",		2 },
37398b9484cSchristos { "diae",	0x000e0000,	0xfc0f0000,	"",		2 },
37498b9484cSchristos { "dfae",	0x000f0000,	0xfc0f0000,	"",		2 },
37598b9484cSchristos { "spvc",	0xf8060000,	0xfc0f0000,	"r,T,N",	4 },
37698b9484cSchristos { "rdsts",	0x00090000,	0xfc0f0000,	"r",		2 },
37798b9484cSchristos { "setcpu",	0x000c0000,	0xfc0f0000,	"r",		2 },
37898b9484cSchristos { "cmc",	0x000b0000,	0xfc0f0000,	"r",		2 },
37998b9484cSchristos { "trrcu",	0x00040000,	0xfc0f0000,	"r",		2 },
38098b9484cSchristos { "attnio",	0x00050000,	0xfc0f0000,	"",		2 },
38198b9484cSchristos { "fudit",	0x28080000,	0xfc0f0000,	"",		2 },
38298b9484cSchristos { "break",	0x28090000,	0xfc0f0000,	"",		2 },
38398b9484cSchristos { "frzss",	0x280a0000,	0xfc0f0000,	"",		2 },
38498b9484cSchristos { "ripi",	0x04040000,	0xfc0f0000,	"r,R",		2 },
38598b9484cSchristos { "xcp",	0x04050000,	0xfc0f0000,	"r",		2 },
38698b9484cSchristos { "block",	0x04060000,	0xfc0f0000,	"",		2 },
38798b9484cSchristos { "unblock",	0x04070000,	0xfc0f0000,	"",		2 },
38898b9484cSchristos { "trsc",	0x08060000,	0xfc0f0000,	"r,R",		2 },
38998b9484cSchristos { "tscr",	0x08070000,	0xfc0f0000,	"r,R",		2 },
39098b9484cSchristos { "fq",		0x04080000,	0xfc0f0000,	"r",		2 },
39198b9484cSchristos { "flupte",	0x2c080000,	0xfc0f0000,	"r",		2 },
39298b9484cSchristos { "rviu",	0x040f0000,	0xfc0f0000,	"",		2 },
39398b9484cSchristos { "ldel",	0x280c0000,	0xfc0f0000,	"r,R",		2 },
39498b9484cSchristos { "ldu",	0x280d0000,	0xfc0f0000,	"r,R",		2 },
39598b9484cSchristos { "stdecc",	0x280b0000,	0xfc0f0000,	"r,R",		2 },
39698b9484cSchristos { "trpc",	0x08040000,	0xfc0f0000,	"r",		2 },
39798b9484cSchristos { "tpcr",	0x08050000,	0xfc0f0000,	"r",		2 },
39898b9484cSchristos { "ghalt",	0x0c050000,	0xfc0f0000,	"r",		2 },
39998b9484cSchristos { "grun",	0x0c040000,	0xfc0f0000,	"",		2 },
40098b9484cSchristos { "tmpr",	0x2c0a0000,	0xfc0f0000,	"r,R",		2 },
40198b9484cSchristos { "trmp",	0x2c0b0000,	0xfc0f0000,	"r,R",		2 },
40298b9484cSchristos 
40398b9484cSchristos { "trrve",	0x28060000,	0xfc0f0000,	"r",		2 },
40498b9484cSchristos { "trver",	0x28070000,	0xfc0f0000,	"r",		2 },
40598b9484cSchristos { "trvlr",	0x280f0000,	0xfc0f0000,	"r",		2 },
40698b9484cSchristos 
40798b9484cSchristos { "linkfl",	0x18000000,	0xfc0f0000,	"r,R",		2 },
40898b9484cSchristos { "linkbl",	0x18020000,	0xfc0f0000,	"r,R",		2 },
40998b9484cSchristos { "linkfp",	0x18010000,	0xfc0f0000,	"r,R",		2 },
41098b9484cSchristos { "linkbp",	0x18030000,	0xfc0f0000,	"r,R",		2 },
41198b9484cSchristos { "linkpl",	0x18040000,	0xfc0f0000,	"r,R",		2 },
41298b9484cSchristos { "ulinkl",	0x18080000,	0xfc0f0000,	"r,R",		2 },
41398b9484cSchristos { "ulinkp",	0x18090000,	0xfc0f0000,	"r,R",		2 },
41498b9484cSchristos { "ulinktl",	0x180a0000,	0xfc0f0000,	"r,R",		2 },
41598b9484cSchristos { "ulinktp",	0x180b0000,	0xfc0f0000,	"r,R",		2 },
41698b9484cSchristos };
41798b9484cSchristos 
41898b9484cSchristos int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]);
41998b9484cSchristos 
42098b9484cSchristos struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) /
42198b9484cSchristos 		 		sizeof(gld_opcodes[0]);
422