xref: /openbsd-src/gnu/usr.bin/binutils/opcodes/mips16-opc.c (revision 5f210c2af8ad7a823d98e333e3a6e3d7999783f5)
1fddef416Sniklas /* mips16-opc.c.  Mips16 opcode table.
2*5f210c2aSfgsch    Copyright 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
3fddef416Sniklas    Contributed by Ian Lance Taylor, Cygnus Support
4fddef416Sniklas 
5fddef416Sniklas This file is part of GDB, GAS, and the GNU binutils.
6fddef416Sniklas 
7fddef416Sniklas GDB, GAS, and the GNU binutils are free software; you can redistribute
8fddef416Sniklas them and/or modify them under the terms of the GNU General Public
9fddef416Sniklas License as published by the Free Software Foundation; either version
10fddef416Sniklas 1, or (at your option) any later version.
11fddef416Sniklas 
12fddef416Sniklas GDB, GAS, and the GNU binutils are distributed in the hope that they
13fddef416Sniklas will be useful, but WITHOUT ANY WARRANTY; without even the implied
14fddef416Sniklas warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
15fddef416Sniklas the GNU General Public License for more details.
16fddef416Sniklas 
17fddef416Sniklas You should have received a copy of the GNU General Public License
18fddef416Sniklas along with this file; see the file COPYING.  If not, write to the Free
19fddef416Sniklas Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20fddef416Sniklas 02111-1307, USA.  */
21fddef416Sniklas 
22fddef416Sniklas #include <stdio.h>
23f7cc78ecSespie #include "sysdep.h"
24fddef416Sniklas #include "opcode/mips.h"
25fddef416Sniklas 
26fddef416Sniklas /* This is the opcodes table for the mips16 processor.  The format of
27fddef416Sniklas    this table is intentionally identical to the one in mips-opc.c.
28fddef416Sniklas    However, the special letters that appear in the argument string are
29fddef416Sniklas    different, and the table uses some different flags.  */
30fddef416Sniklas 
31fddef416Sniklas /* Use some short hand macros to keep down the length of the lines in
32fddef416Sniklas    the opcodes table.  */
33fddef416Sniklas 
34fddef416Sniklas #define UBD     INSN_UNCOND_BRANCH_DELAY
35f7cc78ecSespie #define BR      MIPS16_INSN_BRANCH
36fddef416Sniklas 
37fddef416Sniklas #define WR_x	MIPS16_INSN_WRITE_X
38fddef416Sniklas #define WR_y	MIPS16_INSN_WRITE_Y
39fddef416Sniklas #define WR_z	MIPS16_INSN_WRITE_Z
40fddef416Sniklas #define WR_T	MIPS16_INSN_WRITE_T
41fddef416Sniklas #define WR_SP	MIPS16_INSN_WRITE_SP
42fddef416Sniklas #define WR_31	MIPS16_INSN_WRITE_31
43fddef416Sniklas #define WR_Y	MIPS16_INSN_WRITE_GPR_Y
44fddef416Sniklas 
45fddef416Sniklas #define RD_x	MIPS16_INSN_READ_X
46fddef416Sniklas #define RD_y	MIPS16_INSN_READ_Y
47fddef416Sniklas #define RD_Z	MIPS16_INSN_READ_Z
48fddef416Sniklas #define RD_T	MIPS16_INSN_READ_T
49fddef416Sniklas #define RD_SP	MIPS16_INSN_READ_SP
50fddef416Sniklas #define RD_31	MIPS16_INSN_READ_31
51fddef416Sniklas #define RD_PC	MIPS16_INSN_READ_PC
52fddef416Sniklas #define RD_X	MIPS16_INSN_READ_GPR_X
53fddef416Sniklas 
54fddef416Sniklas #define WR_HI	INSN_WRITE_HI
55fddef416Sniklas #define WR_LO	INSN_WRITE_LO
56fddef416Sniklas #define RD_HI	INSN_READ_HI
57fddef416Sniklas #define RD_LO	INSN_READ_LO
58fddef416Sniklas 
59fddef416Sniklas #define TRAP	INSN_TRAP
60fddef416Sniklas 
61fddef416Sniklas #define I3	INSN_ISA3
62fddef416Sniklas 
63f7cc78ecSespie #define T3      INSN_3900
64f7cc78ecSespie 
65*5f210c2aSfgsch const struct mips_opcode mips16_opcodes[] =
66*5f210c2aSfgsch {
67*5f210c2aSfgsch {"nop",	    "",		0x6500, 0xffff, RD_Z,		0 }, /* move $0,$Z */
68*5f210c2aSfgsch {"la",	    "x,A",	0x0800, 0xf800, WR_x|RD_PC,	0 },
69*5f210c2aSfgsch {"abs",	    "x,w",	0, (int) M_ABS, INSN_MACRO,	0 },
70*5f210c2aSfgsch {"addiu",   "y,x,4",	0x4000, 0xf810, WR_y|RD_x,	0 },
71*5f210c2aSfgsch {"addiu",   "x,k",	0x4800, 0xf800, WR_x|RD_x,	0 },
72*5f210c2aSfgsch {"addiu",   "S,K",	0x6300, 0xff00, WR_SP|RD_SP,	0 },
73*5f210c2aSfgsch {"addiu",   "S,S,K",	0x6300, 0xff00, WR_SP|RD_SP,	0 },
74*5f210c2aSfgsch {"addiu",   "x,P,V",	0x0800, 0xf800, WR_x|RD_PC,	0 },
75*5f210c2aSfgsch {"addiu",   "x,S,V",	0x0000, 0xf800, WR_x|RD_SP,	0 },
76*5f210c2aSfgsch {"addu",    "z,v,y",	0xe001, 0xf803, WR_z|RD_x|RD_y,	0 },
77*5f210c2aSfgsch {"addu",    "y,x,4",	0x4000, 0xf810, WR_y|RD_x,	0 },
78*5f210c2aSfgsch {"addu",    "x,k",	0x4800, 0xf800, WR_x|RD_x,	0 },
79*5f210c2aSfgsch {"addu",    "S,K",	0x6300, 0xff00, WR_SP|RD_SP,	0 },
80*5f210c2aSfgsch {"addu",    "S,S,K",	0x6300, 0xff00, WR_SP|RD_SP,	0 },
81*5f210c2aSfgsch {"addu",    "x,P,V",	0x0800, 0xf800, WR_x|RD_PC,	0 },
82*5f210c2aSfgsch {"addu",    "x,S,V",	0x0000, 0xf800, WR_x|RD_SP,	0 },
83*5f210c2aSfgsch {"and",	    "x,y",	0xe80c, 0xf81f, WR_x|RD_x|RD_y,	0 },
84*5f210c2aSfgsch {"b",	    "q",	0x1000, 0xf800, BR,		0 },
85*5f210c2aSfgsch {"beq",	    "x,y,p",	0, (int) M_BEQ, INSN_MACRO,	0 },
86*5f210c2aSfgsch {"beq",     "x,U,p",	0, (int) M_BEQ_I, INSN_MACRO,	0 },
87*5f210c2aSfgsch {"beqz",    "x,p",	0x2000, 0xf800, BR|RD_x,	0 },
88*5f210c2aSfgsch {"bge",	    "x,y,p",	0, (int) M_BGE, INSN_MACRO,	0 },
89*5f210c2aSfgsch {"bge",     "x,8,p",	0, (int) M_BGE_I, INSN_MACRO,	0 },
90*5f210c2aSfgsch {"bgeu",    "x,y,p",	0, (int) M_BGEU, INSN_MACRO,	0 },
91*5f210c2aSfgsch {"bgeu",    "x,8,p",	0, (int) M_BGEU_I, INSN_MACRO,	0 },
92*5f210c2aSfgsch {"bgt",	    "x,y,p",	0, (int) M_BGT, INSN_MACRO,	0 },
93*5f210c2aSfgsch {"bgt",     "x,8,p",	0, (int) M_BGT_I, INSN_MACRO,	0 },
94*5f210c2aSfgsch {"bgtu",    "x,y,p",	0, (int) M_BGTU, INSN_MACRO,	0 },
95*5f210c2aSfgsch {"bgtu",    "x,8,p",	0, (int) M_BGTU_I, INSN_MACRO,	0 },
96*5f210c2aSfgsch {"ble",	    "x,y,p",	0, (int) M_BLE, INSN_MACRO,	0 },
97*5f210c2aSfgsch {"ble",     "x,8,p",	0, (int) M_BLE_I, INSN_MACRO,	0 },
98*5f210c2aSfgsch {"bleu",    "x,y,p",	0, (int) M_BLEU, INSN_MACRO,	0 },
99*5f210c2aSfgsch {"bleu",    "x,8,p",	0, (int) M_BLEU_I, INSN_MACRO,	0 },
100*5f210c2aSfgsch {"blt",	    "x,y,p",	0, (int) M_BLT, INSN_MACRO,	0 },
101*5f210c2aSfgsch {"blt",     "x,8,p",	0, (int) M_BLT_I, INSN_MACRO,	0 },
102*5f210c2aSfgsch {"bltu",    "x,y,p",	0, (int) M_BLTU, INSN_MACRO,	0 },
103*5f210c2aSfgsch {"bltu",    "x,8,p",	0, (int) M_BLTU_I, INSN_MACRO,	0 },
104*5f210c2aSfgsch {"bne",	    "x,y,p",	0, (int) M_BNE, INSN_MACRO,	0 },
105*5f210c2aSfgsch {"bne",     "x,U,p",	0, (int) M_BNE_I, INSN_MACRO,	0 },
106*5f210c2aSfgsch {"bnez",    "x,p",	0x2800, 0xf800, BR|RD_x,	0 },
107*5f210c2aSfgsch {"break",   "6",	0xe805, 0xf81f, TRAP,		0 },
108*5f210c2aSfgsch {"bteqz",   "p",	0x6000, 0xff00, BR|RD_T,	0 },
109*5f210c2aSfgsch {"btnez",   "p",	0x6100, 0xff00, BR|RD_T,	0 },
110*5f210c2aSfgsch {"cmpi",    "x,U",	0x7000, 0xf800, WR_T|RD_x,	0 },
111*5f210c2aSfgsch {"cmp",	    "x,y",	0xe80a, 0xf81f, WR_T|RD_x|RD_y,	0 },
112*5f210c2aSfgsch {"cmp",     "x,U",	0x7000, 0xf800, WR_T|RD_x,	0 },
113f7cc78ecSespie {"dla",	    "y,E",	0xfe00, 0xff00, WR_y|RD_PC, 	I3 },
114f7cc78ecSespie {"daddiu",  "y,x,4",	0x4010, 0xf810, WR_y|RD_x, 	I3 },
115f7cc78ecSespie {"daddiu",  "y,j",	0xfd00, 0xff00, WR_y|RD_y, 	I3 },
116f7cc78ecSespie {"daddiu",  "S,K",	0xfb00, 0xff00, WR_SP|RD_SP, 	I3 },
117f7cc78ecSespie {"daddiu",  "S,S,K",	0xfb00, 0xff00, WR_SP|RD_SP, 	I3 },
118f7cc78ecSespie {"daddiu",  "y,P,W",	0xfe00, 0xff00, WR_y|RD_PC, 	I3 },
119f7cc78ecSespie {"daddiu",  "y,S,W",	0xff00, 0xff00, WR_y|RD_SP, 	I3 },
120f7cc78ecSespie {"daddu",   "z,v,y",	0xe000, 0xf803, WR_z|RD_x|RD_y, I3 },
121f7cc78ecSespie {"daddu",   "y,x,4",	0x4010, 0xf810, WR_y|RD_x, 	I3 },
122f7cc78ecSespie {"daddu",   "y,j",	0xfd00, 0xff00, WR_y|RD_y, 	I3 },
123f7cc78ecSespie {"daddu",   "S,K",	0xfb00, 0xff00, WR_SP|RD_SP, 	I3 },
124f7cc78ecSespie {"daddu",   "S,S,K",	0xfb00, 0xff00, WR_SP|RD_SP, 	I3 },
125f7cc78ecSespie {"daddu",   "y,P,W",	0xfe00, 0xff00, WR_y|RD_PC, 	I3 },
126f7cc78ecSespie {"daddu",   "y,S,W",	0xff00, 0xff00, WR_y|RD_SP, 	I3 },
127f7cc78ecSespie {"ddiv",    "0,x,y",	0xe81e, 0xf81f, RD_x|RD_y|WR_HI|WR_LO, I3 },
128*5f210c2aSfgsch {"ddiv",    "z,v,y",	0, (int) M_DDIV_3, INSN_MACRO,	0 },
129f7cc78ecSespie {"ddivu",   "0,x,y",	0xe81f, 0xf81f, RD_x|RD_y|WR_HI|WR_LO, I3 },
130*5f210c2aSfgsch {"ddivu",   "z,v,y",	0, (int) M_DDIVU_3, INSN_MACRO,	0 },
131*5f210c2aSfgsch {"div",     "0,x,y",	0xe81a, 0xf81f, RD_x|RD_y|WR_HI|WR_LO,	0 },
132*5f210c2aSfgsch {"div",     "z,v,y",	0, (int) M_DIV_3, INSN_MACRO,	0 },
133*5f210c2aSfgsch {"divu",    "0,x,y",	0xe81b, 0xf81f, RD_x|RD_y|WR_HI|WR_LO,	0 },
134*5f210c2aSfgsch {"divu",    "z,v,y",	0, (int) M_DIVU_3, INSN_MACRO,	0 },
135f7cc78ecSespie {"dmul",    "z,v,y",	0, (int) M_DMUL, INSN_MACRO, 	I3 },
136f7cc78ecSespie {"dmult",   "x,y",	0xe81c, 0xf81f, RD_x|RD_y|WR_HI|WR_LO, I3 },
137f7cc78ecSespie {"dmultu",  "x,y",	0xe81d, 0xf81f, RD_x|RD_y|WR_HI|WR_LO, I3 },
138f7cc78ecSespie {"drem",    "0,x,y",	0xe81e, 0xf81f, RD_x|RD_y|WR_HI|WR_LO, I3 },
139*5f210c2aSfgsch {"drem",    "z,v,y",	0, (int) M_DREM_3, INSN_MACRO,	0 },
140f7cc78ecSespie {"dremu",   "0,x,y",	0xe81f, 0xf81f, RD_x|RD_y|WR_HI|WR_LO, I3 },
141*5f210c2aSfgsch {"dremu",   "z,v,y",	0, (int) M_DREMU_3, INSN_MACRO,	0 },
142f7cc78ecSespie {"dsllv",   "y,x",	0xe814, 0xf81f, WR_y|RD_y|RD_x, I3 },
143f7cc78ecSespie {"dsll",    "x,w,[",	0x3001, 0xf803, WR_x|RD_y, 	I3 },
144f7cc78ecSespie {"dsll",    "y,x",	0xe814, 0xf81f, WR_y|RD_y|RD_x, I3 },
145f7cc78ecSespie {"dsrav",   "y,x",	0xe817, 0xf81f, WR_y|RD_y|RD_x, I3 },
146f7cc78ecSespie {"dsra",    "y,]",	0xe813, 0xf81f, WR_y|RD_y, 	I3 },
147f7cc78ecSespie {"dsra",    "y,x",	0xe817, 0xf81f, WR_y|RD_y|RD_x, I3 },
148f7cc78ecSespie {"dsrlv",   "y,x",	0xe816, 0xf81f, WR_y|RD_y|RD_x, I3 },
149f7cc78ecSespie {"dsrl",    "y,]",	0xe808, 0xf81f, WR_y|RD_y, 	I3 },
150f7cc78ecSespie {"dsrl",    "y,x",	0xe816, 0xf81f, WR_y|RD_y|RD_x, I3 },
151f7cc78ecSespie {"dsubu",   "z,v,y",	0xe002, 0xf803, WR_z|RD_x|RD_y, I3 },
152*5f210c2aSfgsch {"dsubu",   "y,x,4",	0, (int) M_DSUBU_I, INSN_MACRO,	0 },
153*5f210c2aSfgsch {"dsubu",   "y,j",	0, (int) M_DSUBU_I_2, INSN_MACRO, 0 },
154*5f210c2aSfgsch {"exit",    "L",	0xed09, 0xff1f, TRAP,		0 },
155*5f210c2aSfgsch {"exit",    "L",	0xee09, 0xff1f, TRAP,		0 },
156*5f210c2aSfgsch {"exit",    "L",	0xef09, 0xff1f, TRAP,		0 },
157*5f210c2aSfgsch {"entry",   "l",	0xe809, 0xf81f, TRAP,		0 },
158*5f210c2aSfgsch {"extend",  "e",	0xf000, 0xf800, 0,		0 },
159*5f210c2aSfgsch {"jalr",    "x",	0xe840, 0xf8ff, UBD|WR_31|RD_x,	0 },
160*5f210c2aSfgsch {"jalr",    "R,x",	0xe840, 0xf8ff, UBD|WR_31|RD_x,	0 },
161*5f210c2aSfgsch {"jal",     "x",	0xe840, 0xf8ff, UBD|WR_31|RD_x,	0 },
162*5f210c2aSfgsch {"jal",     "R,x",	0xe840, 0xf8ff, UBD|WR_31|RD_x,	0 },
163*5f210c2aSfgsch {"jal",	    "a",	0x1800, 0xfc00, UBD|WR_31,	0 },
164*5f210c2aSfgsch {"jalx",    "a",	0x1c00, 0xfc00, UBD|WR_31,	0 },
165*5f210c2aSfgsch {"jr",	    "x",	0xe800, 0xf8ff, UBD|RD_x,	0 },
166*5f210c2aSfgsch {"jr",	    "R",	0xe820, 0xffff, UBD|RD_31,	0 },
167*5f210c2aSfgsch {"j",	    "x",	0xe800, 0xf8ff, UBD|RD_x,	0 },
168*5f210c2aSfgsch {"j",	    "R",	0xe820, 0xffff, UBD|RD_31,	0 },
169*5f210c2aSfgsch {"lb",	    "y,5(x)",	0x8000, 0xf800, WR_y|RD_x,	0 },
170*5f210c2aSfgsch {"lbu",	    "y,5(x)",	0xa000, 0xf800, WR_y|RD_x,	0 },
171f7cc78ecSespie {"ld",	    "y,D(x)",	0x3800, 0xf800, WR_y|RD_x, 	I3 },
172f7cc78ecSespie {"ld",	    "y,B",	0xfc00, 0xff00, WR_y|RD_PC, 	I3 },
173f7cc78ecSespie {"ld",	    "y,D(P)",	0xfc00, 0xff00, WR_y|RD_PC, 	I3 },
174f7cc78ecSespie {"ld",	    "y,D(S)",	0xf800, 0xff00, WR_y|RD_SP, 	I3 },
175*5f210c2aSfgsch {"lh",	    "y,H(x)",	0x8800, 0xf800, WR_y|RD_x,	0 },
176*5f210c2aSfgsch {"lhu",	    "y,H(x)",	0xa800, 0xf800, WR_y|RD_x,	0 },
177*5f210c2aSfgsch {"li",	    "x,U",	0x6800, 0xf800, WR_x,		0 },
178*5f210c2aSfgsch {"lw",	    "y,W(x)",	0x9800, 0xf800, WR_y|RD_x,	0 },
179*5f210c2aSfgsch {"lw",	    "x,A",	0xb000, 0xf800, WR_x|RD_PC,	0 },
180*5f210c2aSfgsch {"lw",	    "x,V(P)",	0xb000, 0xf800, WR_x|RD_PC,	0 },
181*5f210c2aSfgsch {"lw",	    "x,V(S)",	0x9000, 0xf800, WR_x|RD_SP,	0 },
182f7cc78ecSespie {"lwu",     "y,W(x)",	0xb800, 0xf800, WR_y|RD_x, 	I3 },
183*5f210c2aSfgsch {"mfhi",    "x",	0xe810, 0xf8ff, WR_x|RD_HI,	0 },
184*5f210c2aSfgsch {"mflo",    "x",	0xe812, 0xf8ff, WR_x|RD_LO,	0 },
185*5f210c2aSfgsch {"move",    "y,X",	0x6700, 0xff00, WR_y|RD_X, 	0 },
186*5f210c2aSfgsch {"move",    "Y,Z",	0x6500, 0xff00, WR_Y|RD_Z,	0 },
187*5f210c2aSfgsch {"mul",     "z,v,y",	0, (int) M_MUL, INSN_MACRO,	0 },
188*5f210c2aSfgsch {"mult",    "x,y",	0xe818, 0xf81f, RD_x|RD_y|WR_HI|WR_LO,	0 },
189*5f210c2aSfgsch {"multu",   "x,y",	0xe819, 0xf81f, RD_x|RD_y|WR_HI|WR_LO,	0 },
190*5f210c2aSfgsch {"neg",	    "x,w",	0xe80b, 0xf81f, WR_x|RD_y,	0 },
191*5f210c2aSfgsch {"not",	    "x,w",	0xe80f, 0xf81f, WR_x|RD_y,	0 },
192*5f210c2aSfgsch {"or",	    "x,y",	0xe80d, 0xf81f, WR_x|RD_x|RD_y,	0 },
193*5f210c2aSfgsch {"rem",     "0,x,y",	0xe81a, 0xf81f, RD_x|RD_y|WR_HI|WR_LO,	0 },
194*5f210c2aSfgsch {"rem",     "z,v,y",	0, (int) M_REM_3, INSN_MACRO,	0 },
195*5f210c2aSfgsch {"remu",    "0,x,y",	0xe81b, 0xf81f, RD_x|RD_y|WR_HI|WR_LO,	0 },
196*5f210c2aSfgsch {"remu",    "z,v,y",	0, (int) M_REMU_3, INSN_MACRO,	0 },
197*5f210c2aSfgsch {"sb",	    "y,5(x)",	0xc000, 0xf800, RD_y|RD_x,	0 },
198f7cc78ecSespie {"sd",	    "y,D(x)",	0x7800, 0xf800, RD_y|RD_x, 	I3 },
199f7cc78ecSespie {"sd",	    "y,D(S)",	0xf900, 0xff00, RD_y|RD_PC, 	I3 },
200*5f210c2aSfgsch {"sd",	    "R,C(S)",	0xfa00, 0xff00, RD_31|RD_PC,	0 },
201*5f210c2aSfgsch {"sh",	    "y,H(x)",	0xc800, 0xf800, RD_y|RD_x,	0 },
202*5f210c2aSfgsch {"sllv",    "y,x",	0xe804, 0xf81f, WR_y|RD_y|RD_x, 0 },
203*5f210c2aSfgsch {"sll",	    "x,w,<",	0x3000, 0xf803, WR_x|RD_y,	0 },
204*5f210c2aSfgsch {"sll",     "y,x",	0xe804, 0xf81f, WR_y|RD_y|RD_x,	0 },
205*5f210c2aSfgsch {"slti",    "x,8",	0x5000, 0xf800, WR_T|RD_x,	0 },
206*5f210c2aSfgsch {"slt",	    "x,y",	0xe802, 0xf81f, WR_T|RD_x|RD_y,	0 },
207*5f210c2aSfgsch {"slt",     "x,8",	0x5000, 0xf800, WR_T|RD_x,	0 },
208*5f210c2aSfgsch {"sltiu",   "x,8",	0x5800, 0xf800, WR_T|RD_x,	0 },
209*5f210c2aSfgsch {"sltu",    "x,y",	0xe803, 0xf81f, WR_T|RD_x|RD_y,	0 },
210*5f210c2aSfgsch {"sltu",    "x,8",	0x5800, 0xf800, WR_T|RD_x,	0 },
211*5f210c2aSfgsch {"srav",    "y,x",	0xe807, 0xf81f, WR_y|RD_y|RD_x,	0 },
212*5f210c2aSfgsch {"sra",	    "x,w,<",	0x3003, 0xf803, WR_x|RD_y,	0 },
213*5f210c2aSfgsch {"sra",     "y,x",	0xe807, 0xf81f, WR_y|RD_y|RD_x,	0 },
214*5f210c2aSfgsch {"srlv",    "y,x",	0xe806, 0xf81f, WR_y|RD_y|RD_x,	0 },
215*5f210c2aSfgsch {"srl",	    "x,w,<",	0x3002, 0xf803, WR_x|RD_y,	0 },
216*5f210c2aSfgsch {"srl",     "y,x",	0xe806, 0xf81f, WR_y|RD_y|RD_x,	0 },
217*5f210c2aSfgsch {"subu",    "z,v,y",	0xe003, 0xf803, WR_z|RD_x|RD_y,	0 },
218*5f210c2aSfgsch {"subu",    "y,x,4",	0, (int) M_SUBU_I, INSN_MACRO,	0 },
219*5f210c2aSfgsch {"subu",    "x,k",	0, (int) M_SUBU_I_2, INSN_MACRO,0 },
220*5f210c2aSfgsch {"sw",	    "y,W(x)",	0xd800, 0xf800, RD_y|RD_x,	0 },
221*5f210c2aSfgsch {"sw",	    "x,V(S)",	0xd000, 0xf800, RD_x|RD_SP,	0 },
222*5f210c2aSfgsch {"sw",	    "R,V(S)",	0x6200, 0xff00, RD_31|RD_SP,	0 },
223*5f210c2aSfgsch {"xor",	    "x,y",	0xe80e, 0xf81f, WR_x|RD_x|RD_y, 0 },
224fddef416Sniklas };
225fddef416Sniklas 
226fddef416Sniklas const int bfd_mips16_num_opcodes =
227fddef416Sniklas   ((sizeof mips16_opcodes) / (sizeof (mips16_opcodes[0])));
228