xref: /plan9/sys/src/cmd/ql/optab.c (revision 6891d8578618fb7ccda4a131c122d4d0e6580c4b)
17dd7cddfSDavid du Colombier #include	"l.h"
27dd7cddfSDavid du Colombier 
37dd7cddfSDavid du Colombier Optab	optab[] =
47dd7cddfSDavid du Colombier {
57dd7cddfSDavid du Colombier 	{ ATEXT,	C_LEXT,	C_NONE, C_NONE, 	C_LCON, 	 0, 0, 0 },
67dd7cddfSDavid du Colombier 	{ ATEXT,	C_LEXT,	C_REG, C_NONE, 	C_LCON, 	 0, 0, 0 },
77dd7cddfSDavid du Colombier 	{ ATEXT,	C_LEXT,	C_NONE, C_LCON, 	C_LCON, 	 0, 0, 0 },
87dd7cddfSDavid du Colombier 	{ ATEXT,	C_LEXT,	C_REG, C_LCON, 	C_LCON, 	 0, 0, 0 },
9375daca8SDavid du Colombier 	{ ATEXT,	C_ADDR,	C_NONE, C_NONE, 	C_LCON, 	 0, 0, 0 },
10375daca8SDavid du Colombier 	{ ATEXT,	C_ADDR,	C_REG, C_NONE, 	C_LCON, 	 0, 0, 0 },
11375daca8SDavid du Colombier 	{ ATEXT,	C_ADDR,	C_NONE, C_LCON, 	C_LCON, 	 0, 0, 0 },
12375daca8SDavid du Colombier 	{ ATEXT,	C_ADDR,	C_REG, C_LCON, 	C_LCON, 	 0, 0, 0 },
137dd7cddfSDavid du Colombier 
147dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_REG,		 1, 4, 0 },
157dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_REG,		12, 4, 0 },
167dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_REG,		13, 4, 0 },
177dd7cddfSDavid du Colombier 
187dd7cddfSDavid du Colombier 	{ AADD,		C_REG,	C_REG, C_NONE, 	C_REG,		 2, 4, 0 },
197dd7cddfSDavid du Colombier 	{ AADD,		C_REG,	C_NONE, C_NONE, 	C_REG,		 2, 4, 0 },
207dd7cddfSDavid du Colombier 	{ AADD,		C_ADDCON,C_REG, C_NONE, 	C_REG,		 4, 4, 0 },
217dd7cddfSDavid du Colombier 	{ AADD,		C_ADDCON,C_NONE, C_NONE, C_REG,		 4, 4, 0 },
227dd7cddfSDavid du Colombier 	{ AADD,		C_UCON,	C_REG, C_NONE, 	C_REG,		20, 4, 0 },
237dd7cddfSDavid du Colombier 	{ AADD,		C_UCON,	C_NONE, C_NONE, 	C_REG,		20, 4, 0 },
247dd7cddfSDavid du Colombier 	{ AADD,		C_LCON,	C_REG, C_NONE, 	C_REG,		22, 12, 0 },
257dd7cddfSDavid du Colombier 	{ AADD,		C_LCON,	C_NONE, C_NONE, 	C_REG,		22, 12, 0 },
267dd7cddfSDavid du Colombier 
277dd7cddfSDavid du Colombier 	{ AADDC,	C_REG,	C_REG, C_NONE, 	C_REG,		 2, 4, 0 },
287dd7cddfSDavid du Colombier 	{ AADDC,	C_REG,	C_NONE, C_NONE, 	C_REG,		 2, 4, 0 },
297dd7cddfSDavid du Colombier 	{ AADDC,	C_ADDCON,C_REG, C_NONE, 	C_REG,		 4, 4, 0 },
307dd7cddfSDavid du Colombier 	{ AADDC,	C_ADDCON,C_NONE, C_NONE, C_REG,		 4, 4, 0 },
317dd7cddfSDavid du Colombier 	{ AADDC,	C_LCON,	C_REG, C_NONE, 	C_REG,		22, 12, 0 },
327dd7cddfSDavid du Colombier 	{ AADDC,	C_LCON,	C_NONE, C_NONE, 	C_REG,		22, 12, 0 },
337dd7cddfSDavid du Colombier 
347dd7cddfSDavid du Colombier 	{ AAND,		C_REG,	C_REG, C_NONE, 	C_REG,		6, 4, 0 },	/* logical, no literal */
357dd7cddfSDavid du Colombier 	{ AAND,		C_REG,	C_NONE, C_NONE, 	C_REG,		6, 4, 0 },
367dd7cddfSDavid du Colombier 	{ AANDCC,	C_REG,	C_REG, C_NONE, 	C_REG,		6, 4, 0 },
377dd7cddfSDavid du Colombier 	{ AANDCC,	C_REG,	C_NONE, C_NONE, 	C_REG,		6, 4, 0 },
387dd7cddfSDavid du Colombier 
397dd7cddfSDavid du Colombier 	{ AANDCC,	C_ANDCON,C_NONE, C_NONE, C_REG,		58, 4, 0 },
407dd7cddfSDavid du Colombier 	{ AANDCC,	C_ANDCON,C_REG, C_NONE, 	C_REG,		58, 4, 0 },
417dd7cddfSDavid du Colombier 	{ AANDCC,	C_UCON,	C_NONE, C_NONE, 	C_REG,		59, 4, 0 },
427dd7cddfSDavid du Colombier 	{ AANDCC,	C_UCON,	C_REG, C_NONE, 	C_REG,		59, 4, 0 },
437dd7cddfSDavid du Colombier 	{ AANDCC,	C_LCON,	C_NONE, C_NONE, 	C_REG,		23, 12, 0 },
447dd7cddfSDavid du Colombier 	{ AANDCC,	C_LCON,	C_REG, C_NONE, 	C_REG,		23, 12, 0 },
457dd7cddfSDavid du Colombier 
467dd7cddfSDavid du Colombier 	{ AMULLW,	C_REG,	C_REG, C_NONE, 	C_REG,		 2, 4, 0 },
477dd7cddfSDavid du Colombier 	{ AMULLW,	C_REG,	C_NONE, C_NONE, 	C_REG,		 2, 4, 0 },
487dd7cddfSDavid du Colombier 	{ AMULLW,	C_ADDCON,C_REG, C_NONE, 	C_REG,		 4, 4, 0 },
497dd7cddfSDavid du Colombier 	{ AMULLW,	C_ADDCON,C_NONE, C_NONE, C_REG,		 4, 4, 0 },
507dd7cddfSDavid du Colombier 	{ AMULLW,	C_ANDCON,C_REG, C_NONE, 	C_REG,		 4, 4, 0 },
517dd7cddfSDavid du Colombier 	{ AMULLW,	C_ANDCON,	C_NONE, C_NONE,	C_REG,	 4, 4, 0 },
527dd7cddfSDavid du Colombier 	{ AMULLW,	C_LCON,	C_REG,	C_NONE,	C_REG,		22, 12, 0},
537dd7cddfSDavid du Colombier 	{ AMULLW,	C_LCON,	C_NONE,	C_NONE,	C_REG,		22, 12, 0},
547dd7cddfSDavid du Colombier 
557dd7cddfSDavid du Colombier 	{ ASUBC,	C_REG,	C_REG, C_NONE, 	C_REG,		 10, 4, 0 },
567dd7cddfSDavid du Colombier 	{ ASUBC,	C_REG,	C_NONE, C_NONE, 	C_REG,		 10, 4, 0 },
577dd7cddfSDavid du Colombier 	{ ASUBC,	C_REG,	C_NONE, C_ADDCON, 	C_REG,	 27, 4, 0 },
587dd7cddfSDavid du Colombier 	{ ASUBC,	C_REG,	C_NONE,	C_LCON,	C_REG,		28, 12, 0},
597dd7cddfSDavid du Colombier 
607dd7cddfSDavid du Colombier 	{ AOR,		C_REG,	C_REG, C_NONE, 	C_REG,		6, 4, 0 },	/* logical, literal not cc (or/xor) */
617dd7cddfSDavid du Colombier 	{ AOR,		C_REG,	C_NONE, C_NONE, 	C_REG,		6, 4, 0 },
627dd7cddfSDavid du Colombier 	{ AOR,		C_ANDCON, C_NONE, C_NONE,  C_REG,	58, 4, 0 },
637dd7cddfSDavid du Colombier 	{ AOR,		C_ANDCON, C_REG, C_NONE,  C_REG,		58, 4, 0 },
647dd7cddfSDavid du Colombier 	{ AOR,		C_UCON, C_NONE, C_NONE,  C_REG,		59, 4, 0 },
657dd7cddfSDavid du Colombier 	{ AOR,		C_UCON, C_REG, C_NONE,  C_REG,		59, 4, 0 },
667dd7cddfSDavid du Colombier 	{ AOR,		C_LCON,	C_NONE, C_NONE, 	C_REG,		23, 12, 0 },
677dd7cddfSDavid du Colombier 	{ AOR,		C_LCON,	C_REG, C_NONE, 	C_REG,		23, 12, 0 },
687dd7cddfSDavid du Colombier 
697dd7cddfSDavid du Colombier 	{ ADIVW,	C_REG,	C_REG, C_NONE, 	C_REG,		 2, 4, 0 },	/* op r1[,r2],r3 */
707dd7cddfSDavid du Colombier 	{ ADIVW,	C_REG,	C_NONE, C_NONE, 	C_REG,		 2, 4, 0 },
717dd7cddfSDavid du Colombier 	{ ASUB,	C_REG,	C_REG, C_NONE, 	C_REG,		 10, 4, 0 },	/* op r2[,r1],r3 */
727dd7cddfSDavid du Colombier 	{ ASUB,	C_REG,	C_NONE, C_NONE, 	C_REG,		 10, 4, 0 },
737dd7cddfSDavid du Colombier 
747dd7cddfSDavid du Colombier 	{ ASLW,	C_REG,	C_NONE, C_NONE, 	C_REG,		 6, 4, 0 },
757dd7cddfSDavid du Colombier 	{ ASLW,	C_REG,	C_REG, C_NONE, 	C_REG,		 6, 4, 0 },
767dd7cddfSDavid du Colombier 	{ ASLW,	C_SCON,	C_REG, C_NONE, 	C_REG,		57, 4, 0 },
777dd7cddfSDavid du Colombier 	{ ASLW,	C_SCON,	C_NONE, C_NONE, 	C_REG,		57, 4, 0 },
787dd7cddfSDavid du Colombier 
797dd7cddfSDavid du Colombier 	{ ASRAW,	C_REG,	C_NONE, C_NONE, 	C_REG,		 6, 4, 0 },
807dd7cddfSDavid du Colombier 	{ ASRAW,	C_REG,	C_REG, C_NONE, 	C_REG,		 6, 4, 0 },
817dd7cddfSDavid du Colombier 	{ ASRAW,	C_SCON,	C_REG, C_NONE, 	C_REG,		56, 4, 0 },
827dd7cddfSDavid du Colombier 	{ ASRAW,	C_SCON,	C_NONE, C_NONE, 	C_REG,		56, 4, 0 },
837dd7cddfSDavid du Colombier 
847dd7cddfSDavid du Colombier 	{ ARLWMI,	C_SCON, C_REG, C_LCON, 	C_REG,		62, 4, 0 },
857dd7cddfSDavid du Colombier 	{ ARLWMI,	C_REG,	C_REG, C_LCON, 	C_REG,		63, 4, 0 },
867dd7cddfSDavid du Colombier 
877dd7cddfSDavid du Colombier 	{ AFADD,	C_FREG,	C_NONE, C_NONE, 	C_FREG,		 2, 4, 0 },
887dd7cddfSDavid du Colombier 	{ AFADD,	C_FREG,	C_REG, C_NONE, 	C_FREG,		 2, 4, 0 },
897dd7cddfSDavid du Colombier 	{ AFABS,	C_FREG,	C_NONE, C_NONE, 	C_FREG,		33, 4, 0 },
907dd7cddfSDavid du Colombier 	{ AFABS,	C_NONE,	C_NONE, C_NONE, 	C_FREG,		33, 4, 0 },
917dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_FREG,		33, 4, 0 },
927dd7cddfSDavid du Colombier 
937dd7cddfSDavid du Colombier 	{ AFMADD,	C_FREG,	C_REG, C_FREG, 	C_FREG,		 34, 4, 0 },
947dd7cddfSDavid du Colombier 	{ AFMUL,	C_FREG,	C_NONE, C_NONE, 	C_FREG,		 32, 4, 0 },
957dd7cddfSDavid du Colombier 	{ AFMUL,	C_FREG,	C_REG, C_NONE, 	C_FREG,		 32, 4, 0 },
967dd7cddfSDavid du Colombier 
977dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_REG, C_NONE, 	C_ZOREG,	 7, 4, REGZERO },
987dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_REG, C_NONE, 	C_ZOREG,	 7, 4, REGZERO },
997dd7cddfSDavid du Colombier 	{ AMOVBZU,	C_REG,	C_REG, C_NONE, 	C_ZOREG,	 7, 4, REGZERO },
1007dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_REG, C_NONE, 	C_ZOREG,	 7, 4, REGZERO },
1017dd7cddfSDavid du Colombier 	{ AMOVBU,	C_REG,	C_REG, C_NONE, 	C_ZOREG,	 7, 4, REGZERO },
1027dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_SEXT,		 7, 4, REGSB },
1037dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_SEXT,		 7, 4, REGSB },
1047dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_SEXT,		 7, 4, REGSB },
1057dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_SAUTO,	 7, 4, REGSP },
1067dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_SAUTO,	 7, 4, REGSP },
1077dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_SAUTO,	 7, 4, REGSP },
1087dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_SOREG,	 7, 4, REGZERO },
1097dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_SOREG,	 7, 4, REGZERO },
1107dd7cddfSDavid du Colombier 	{ AMOVBZU,	C_REG,	C_NONE, C_NONE, 	C_SOREG,	 7, 4, REGZERO },
1117dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_SOREG,	 7, 4, REGZERO },
1127dd7cddfSDavid du Colombier 	{ AMOVBU,	C_REG,	C_NONE, C_NONE, 	C_SOREG,	 7, 4, REGZERO },
1137dd7cddfSDavid du Colombier 
1147dd7cddfSDavid du Colombier 	{ AMOVW,	C_ZOREG,C_REG, C_NONE, 	C_REG,		 8, 4, REGZERO },
1157dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_ZOREG,C_REG, C_NONE, 	C_REG,		 8, 4, REGZERO },
1167dd7cddfSDavid du Colombier 	{ AMOVBZU,	C_ZOREG,C_REG, C_NONE, 	C_REG,		 8, 4, REGZERO },
1177dd7cddfSDavid du Colombier 	{ AMOVB,	C_ZOREG,C_REG, C_NONE, 	C_REG,		9, 8, REGZERO },
1187dd7cddfSDavid du Colombier 	{ AMOVBU,	C_ZOREG,C_REG, C_NONE, 	C_REG,		9, 8, REGZERO },
1197dd7cddfSDavid du Colombier 	{ AMOVW,	C_SEXT,	C_NONE, C_NONE, 	C_REG,		 8, 4, REGSB },
1207dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_SEXT,	C_NONE, C_NONE, 	C_REG,		 8, 4, REGSB },
1217dd7cddfSDavid du Colombier 	{ AMOVB,	C_SEXT,	C_NONE, C_NONE, 	C_REG,		9, 8, REGSB },
1227dd7cddfSDavid du Colombier 	{ AMOVW,	C_SAUTO,C_NONE, C_NONE, 	C_REG,		 8, 4, REGSP },
1237dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_SAUTO,C_NONE, C_NONE, 	C_REG,		 8, 4, REGSP },
1247dd7cddfSDavid du Colombier 	{ AMOVB,	C_SAUTO,C_NONE, C_NONE, 	C_REG,		9, 8, REGSP },
1257dd7cddfSDavid du Colombier 	{ AMOVW,	C_SOREG,C_NONE, C_NONE, 	C_REG,		 8, 4, REGZERO },
1267dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_SOREG,C_NONE, C_NONE, 	C_REG,		 8, 4, REGZERO },
1277dd7cddfSDavid du Colombier 	{ AMOVBZU,	C_SOREG,C_NONE, C_NONE, 	C_REG,		 8, 4, REGZERO },
1287dd7cddfSDavid du Colombier 	{ AMOVB,	C_SOREG,C_NONE, C_NONE, 	C_REG,		9, 8, REGZERO },
1297dd7cddfSDavid du Colombier 	{ AMOVBU,	C_SOREG,C_NONE, C_NONE, 	C_REG,		9, 8, REGZERO },
1307dd7cddfSDavid du Colombier 
1317dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_LEXT,		35, 8, REGSB },
1327dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_LEXT,		35, 8, REGSB },
1337dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_LEXT,		35, 8, REGSB },
1347dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_LAUTO,	35, 8, REGSP },
1357dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_LAUTO,	35, 8, REGSP },
1367dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_LAUTO,	35, 8, REGSP },
1377dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_LOREG,	35, 8, REGZERO },
1387dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_LOREG,	35, 8, REGZERO },
1397dd7cddfSDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_LOREG,	35, 8, REGZERO },
140375daca8SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_ADDR,		74, 8, 0 },
141375daca8SDavid du Colombier 	{ AMOVBZ,	C_REG,	C_NONE, C_NONE, 	C_ADDR,		74, 8, 0 },
142375daca8SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE, C_NONE, 	C_ADDR,		74, 8, 0 },
1437dd7cddfSDavid du Colombier 
1447dd7cddfSDavid du Colombier 	{ AMOVW,	C_LEXT,	C_NONE, C_NONE, 	C_REG,		36, 8, REGSB },
1457dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_LEXT,	C_NONE, C_NONE, 	C_REG,		36, 8, REGSB },
1467dd7cddfSDavid du Colombier 	{ AMOVB,	C_LEXT,	C_NONE, C_NONE, 	C_REG,		37, 12, REGSB },
1477dd7cddfSDavid du Colombier 	{ AMOVW,	C_LAUTO,C_NONE, C_NONE, 	C_REG,		36, 8, REGSP },
1487dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_LAUTO,C_NONE, C_NONE, 	C_REG,		36, 8, REGSP },
1497dd7cddfSDavid du Colombier 	{ AMOVB,	C_LAUTO,C_NONE, C_NONE, 	C_REG,		37, 12, REGSP },
1507dd7cddfSDavid du Colombier 	{ AMOVW,	C_LOREG,C_NONE, C_NONE, 	C_REG,		36, 8, REGZERO },
1517dd7cddfSDavid du Colombier 	{ AMOVBZ,	C_LOREG,C_NONE, C_NONE, 	C_REG,		36, 8, REGZERO },
1527dd7cddfSDavid du Colombier 	{ AMOVB,	C_LOREG,C_NONE, C_NONE, 	C_REG,		37, 12, REGZERO },
153375daca8SDavid du Colombier 	{ AMOVW,	C_ADDR,	C_NONE, C_NONE, 	C_REG,		75, 8, 0 },
154375daca8SDavid du Colombier 	{ AMOVBZ,	C_ADDR,	C_NONE, C_NONE, 	C_REG,		75, 8, 0 },
155375daca8SDavid du Colombier 	{ AMOVB,	C_ADDR,	C_NONE, C_NONE, 	C_REG,		76, 12, 0 },
1567dd7cddfSDavid du Colombier 
1577dd7cddfSDavid du Colombier 	{ AMOVW,	C_SECON,C_NONE, C_NONE, 	C_REG,		 3, 4, REGSB },
1587dd7cddfSDavid du Colombier 	{ AMOVW,	C_SACON,C_NONE, C_NONE, 	C_REG,		 3, 4, REGSP },
1597dd7cddfSDavid du Colombier 	{ AMOVW,	C_LECON,C_NONE, C_NONE, 	C_REG,		26, 8, REGSB },
1607dd7cddfSDavid du Colombier 	{ AMOVW,	C_LACON,C_NONE, C_NONE, 	C_REG,		26, 8, REGSP },
1617dd7cddfSDavid du Colombier 	{ AMOVW,	C_ADDCON,C_NONE, C_NONE, C_REG,		 3, 4, REGZERO },
1627dd7cddfSDavid du Colombier 
1637dd7cddfSDavid du Colombier 	{ AMOVW,	C_UCON, C_NONE, C_NONE,  C_REG,		3, 4, REGZERO },
1647dd7cddfSDavid du Colombier 	{ AMOVW,	C_LCON,	C_NONE, C_NONE, 	C_REG,		19, 8, 0 },
1657dd7cddfSDavid du Colombier 
1667dd7cddfSDavid du Colombier 	{ AMOVHBR,	C_ZOREG,	C_REG, C_NONE, C_REG,		45, 4, 0 },
1677dd7cddfSDavid du Colombier 	{ AMOVHBR,	C_ZOREG, C_NONE, C_NONE, C_REG,	45, 4, 0 },
1687dd7cddfSDavid du Colombier 	{ AMOVHBR,	C_REG,	C_REG, C_NONE,	C_ZOREG,		44, 4, 0 },
1697dd7cddfSDavid du Colombier 	{ AMOVHBR,	C_REG,	C_NONE, C_NONE,	C_ZOREG,		44, 4, 0 },
1707dd7cddfSDavid du Colombier 
1717dd7cddfSDavid du Colombier 	{ ASYSCALL,	C_NONE,	C_NONE, C_NONE, 	C_NONE,		 5, 4, 0 },
1727dd7cddfSDavid du Colombier 
1737dd7cddfSDavid du Colombier 	{ ABEQ,		C_NONE,	C_NONE, C_NONE, 	C_SBRA,		16, 4, 0 },
1747dd7cddfSDavid du Colombier 	{ ABEQ,		C_CREG,	C_NONE, C_NONE, 	C_SBRA,		16, 4, 0 },
1757dd7cddfSDavid du Colombier 
1767dd7cddfSDavid du Colombier 	{ ABR,		C_NONE,	C_NONE, C_NONE, 	C_LBRA,		11, 4, 0 },
1777dd7cddfSDavid du Colombier 
1787dd7cddfSDavid du Colombier 	{ ABC,		C_SCON,	C_REG, C_NONE, 	C_SBRA,		16, 4, 0 },
1797dd7cddfSDavid du Colombier 	{ ABC,		C_SCON, C_REG, C_NONE, 	C_LBRA,		17, 4, 0 },
1807dd7cddfSDavid du Colombier 
1817dd7cddfSDavid du Colombier 	{ ABR,		C_NONE,	C_NONE, C_NONE, 	C_LR,		18, 4, 0 },
1827dd7cddfSDavid du Colombier 	{ ABR,		C_NONE,	C_NONE, C_NONE, 	C_CTR,		18, 4, 0 },
1837dd7cddfSDavid du Colombier 	{ ABR,		C_NONE,	C_NONE, C_NONE, 	C_ZOREG,		15, 8, 0 },
1847dd7cddfSDavid du Colombier 
1857dd7cddfSDavid du Colombier 	{ ABC,		C_NONE,	C_REG, C_NONE, 	C_LR,		18, 4, 0 },
1867dd7cddfSDavid du Colombier 	{ ABC,		C_NONE,	C_REG, C_NONE, 	C_CTR,		18, 4, 0 },
1877dd7cddfSDavid du Colombier 	{ ABC,		C_SCON,	C_REG, C_NONE, 	C_LR,		18, 4, 0 },
1887dd7cddfSDavid du Colombier 	{ ABC,		C_SCON,	C_REG, C_NONE, 	C_CTR,		18, 4, 0 },
1897dd7cddfSDavid du Colombier 	{ ABC,		C_NONE,	C_NONE, C_NONE, 	C_ZOREG,		15, 8, 0 },
1907dd7cddfSDavid du Colombier 
1917dd7cddfSDavid du Colombier 	{ AFMOVD,	C_SEXT,	C_NONE, C_NONE, 	C_FREG,		8, 4, REGSB },
1927dd7cddfSDavid du Colombier 	{ AFMOVD,	C_SAUTO,C_NONE, C_NONE, 	C_FREG,		8, 4, REGSP },
1937dd7cddfSDavid du Colombier 	{ AFMOVD,	C_SOREG,C_NONE, C_NONE, 	C_FREG,		8, 4, REGZERO },
1947dd7cddfSDavid du Colombier 
1957dd7cddfSDavid du Colombier 	{ AFMOVD,	C_LEXT,	C_NONE, C_NONE, 	C_FREG,		8, 4, REGSB },
1967dd7cddfSDavid du Colombier 	{ AFMOVD,	C_LAUTO,C_NONE, C_NONE, 	C_FREG,		8, 4, REGSP },
1977dd7cddfSDavid du Colombier 	{ AFMOVD,	C_LOREG,C_NONE, C_NONE, 	C_FREG,		8, 4, REGZERO },
198375daca8SDavid du Colombier 	{ AFMOVD,	C_ADDR,	C_NONE, C_NONE, 	C_FREG,		75, 8, 0 },
1997dd7cddfSDavid du Colombier 
2007dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_SEXT,		7, 4, REGSB },
2017dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_SAUTO,	7, 4, REGSP },
2027dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_SOREG,	7, 4, REGZERO },
2037dd7cddfSDavid du Colombier 
2047dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_LEXT,		7, 4, REGSB },
2057dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_LAUTO,	7, 4, REGSP },
2067dd7cddfSDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_LOREG,	7, 4, REGZERO },
207375daca8SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE, C_NONE, 	C_ADDR,		74, 8, 0 },
2087dd7cddfSDavid du Colombier 
2097dd7cddfSDavid du Colombier 	{ ASYNC,		C_NONE,	C_NONE, C_NONE, 	C_NONE,		46, 4, 0 },
2107dd7cddfSDavid du Colombier 	{ AWORD,	C_LCON,	C_NONE, C_NONE, 	C_NONE,		40, 4, 0 },
2117dd7cddfSDavid du Colombier 
2127dd7cddfSDavid du Colombier 	{ AADDME,	C_REG,	C_NONE, C_NONE, 	C_REG,		47, 4, 0 },
2137dd7cddfSDavid du Colombier 
2147dd7cddfSDavid du Colombier 	{ AEXTSB,	C_REG,	C_NONE, C_NONE, 	C_REG,		48, 4, 0 },
2157dd7cddfSDavid du Colombier 	{ AEXTSB,	C_NONE,	C_NONE, C_NONE, 	C_REG,		48, 4, 0 },
2167dd7cddfSDavid du Colombier 
2177dd7cddfSDavid du Colombier 	{ ANEG,		C_REG,	C_NONE, C_NONE, 	C_REG,		47, 4, 0 },
2187dd7cddfSDavid du Colombier 	{ ANEG,		C_NONE,	C_NONE, C_NONE, 	C_REG,		47, 4, 0 },
2197dd7cddfSDavid du Colombier 
2207dd7cddfSDavid du Colombier 	{ AREM,		C_REG,	C_NONE, C_NONE, 	C_REG,		51, 12, 0 },
2217dd7cddfSDavid du Colombier 	{ AREM,		C_REG,	C_REG, C_NONE, 	C_REG,		51, 12, 0 },
2227dd7cddfSDavid du Colombier 
2237dd7cddfSDavid du Colombier 	{ AMTFSB0,	C_SCON,	C_NONE, C_NONE, 	C_NONE,		52, 4, 0 },
2247dd7cddfSDavid du Colombier 	{ AMOVFL, C_FPSCR, C_NONE, C_NONE,	C_FREG,		53, 4, 0 },
2257dd7cddfSDavid du Colombier 	{ AMOVFL, C_FREG, C_NONE, C_NONE,	C_FPSCR,		64, 4, 0 },
2267dd7cddfSDavid du Colombier 	{ AMOVFL, C_FREG, C_NONE, C_LCON,	C_FPSCR,		64, 4, 0 },
2277dd7cddfSDavid du Colombier 	{ AMOVFL,	C_LCON, C_NONE, C_NONE,	C_FPSCR,		65, 4, 0 },
2287dd7cddfSDavid du Colombier 
2297dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_MSR,		54, 4, 0 },
2307dd7cddfSDavid du Colombier 	{ AMOVW,	C_MSR,	C_NONE, C_NONE, 	C_REG,		54, 4, 0 },
2317dd7cddfSDavid du Colombier 
2327dd7cddfSDavid du Colombier 	{ AMOVW,	C_SREG,	C_NONE, C_NONE, 	C_REG,		55, 4, 0 },
2337dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_SREG,		55, 4, 0 },
2347dd7cddfSDavid du Colombier 	{ AMOVW,	C_SREG, C_REG, C_NONE, 	C_REG,		55, 4, 0 },	/* MOVW SR(Rn), Rm and v.v.*/
2357dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_REG, C_NONE, 	C_SREG,		55, 4, 0 },
2367dd7cddfSDavid du Colombier 
2377dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_SPR,		66, 4, 0 },
2387dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_LR,		66, 4, 0 },
2397dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_CTR,		66, 4, 0 },
2407dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE, C_NONE, 	C_XER,		66, 4, 0 },
2417dd7cddfSDavid du Colombier 	{ AMOVW,	C_SPR,	C_NONE, C_NONE, 	C_REG,		66, 4, 0 },
2427dd7cddfSDavid du Colombier 	{ AMOVW,	C_LR,	C_NONE, C_NONE, 	C_REG,		66, 4, 0 },
2437dd7cddfSDavid du Colombier 	{ AMOVW,	C_CTR,	C_NONE, C_NONE, 	C_REG,		66, 4, 0 },
2447dd7cddfSDavid du Colombier 	{ AMOVW,	C_XER,	C_NONE, C_NONE, 	C_REG,		66, 4, 0 },
2457dd7cddfSDavid du Colombier 
2467dd7cddfSDavid du Colombier 	{ AMOVFL,	C_FPSCR, C_NONE, C_NONE, 	C_CREG,		73, 4, 0 },
2477dd7cddfSDavid du Colombier 	{ AMOVFL,	C_CREG,	C_NONE, C_NONE, 	C_CREG,		67, 4, 0 },
2487dd7cddfSDavid du Colombier 	{ AMOVW,	C_XER,	C_NONE, C_NONE, 	C_CREG,		72, 4, 0 },
2497dd7cddfSDavid du Colombier 	{ AMOVW,	C_CREG,	C_NONE,	C_NONE,		C_REG,		68, 4, 0 },
2507dd7cddfSDavid du Colombier 	{ AMOVFL,	C_REG, C_NONE, C_LCON, C_CREG,		69, 4, 0 },
2517dd7cddfSDavid du Colombier 	{ AMOVFL,	C_REG, C_NONE, C_NONE, C_CREG,		69, 4, 0 },
2527dd7cddfSDavid du Colombier 	{ AMOVW,	C_REG, C_NONE, C_NONE, C_CREG,		69, 4, 0 },
2537dd7cddfSDavid du Colombier 
2547dd7cddfSDavid du Colombier 	{ ACMP,	C_REG,	C_NONE, C_NONE, 	C_REG,	70, 4, 0 },
2557dd7cddfSDavid du Colombier 	{ ACMP,	C_REG,	C_REG, C_NONE, 	C_REG,	70, 4, 0 },
2567dd7cddfSDavid du Colombier 	{ ACMP,	C_REG,	C_NONE, C_NONE,	C_ADDCON,	71, 4, 0 },
2577dd7cddfSDavid du Colombier 	{ ACMP,	C_REG,	C_REG, C_NONE,	C_ADDCON,	71, 4, 0 },
2587dd7cddfSDavid du Colombier 
2597dd7cddfSDavid du Colombier 	{ ACMPU,	C_REG,	C_NONE, C_NONE, 	C_REG,	70, 4, 0 },
2607dd7cddfSDavid du Colombier 	{ ACMPU,	C_REG,	C_REG, C_NONE, 	C_REG,	70, 4, 0 },
2617dd7cddfSDavid du Colombier 	{ ACMPU,	C_REG,	C_NONE, C_NONE,	C_ANDCON,	71, 4, 0 },
2627dd7cddfSDavid du Colombier 	{ ACMPU,	C_REG,	C_REG, C_NONE,	C_ANDCON,	71, 4, 0 },
2637dd7cddfSDavid du Colombier 
2647dd7cddfSDavid du Colombier 	{ AFCMPO,	C_FREG,	C_NONE, C_NONE, 	C_FREG,	70, 4, 0 },
2657dd7cddfSDavid du Colombier 	{ AFCMPO,	C_FREG,	C_REG, C_NONE, 	C_FREG,	70, 4, 0 },
2667dd7cddfSDavid du Colombier 
2677dd7cddfSDavid du Colombier 	{ ATW,		C_LCON,	C_REG, C_NONE, 	C_REG,		60, 4, 0 },
2687dd7cddfSDavid du Colombier 	{ ATW,		C_LCON,	C_REG, C_NONE, 	C_ADDCON,	61, 4, 0 },
2697dd7cddfSDavid du Colombier 
2707dd7cddfSDavid du Colombier 	{ ADCBF,	C_ZOREG, C_NONE, C_NONE,  C_NONE,	43, 4, 0 },
2717dd7cddfSDavid du Colombier 	{ ADCBF,	C_ZOREG, C_REG, C_NONE,  C_NONE,	43, 4, 0 },
2727dd7cddfSDavid du Colombier 
2737dd7cddfSDavid du Colombier 	{ AECOWX,	C_REG,	C_REG, C_NONE, 	C_ZOREG,	44, 4, 0 },
2747dd7cddfSDavid du Colombier 	{ AECIWX,	C_ZOREG, C_REG, C_NONE,  C_REG,		45, 4, 0 },
2757dd7cddfSDavid du Colombier 	{ AECOWX,	C_REG,	C_NONE, C_NONE, 	C_ZOREG,	44, 4, 0 },
2767dd7cddfSDavid du Colombier 	{ AECIWX,	C_ZOREG, C_NONE, C_NONE,  C_REG,		45, 4, 0 },
2777dd7cddfSDavid du Colombier 
2787dd7cddfSDavid du Colombier 	{ AEIEIO,	C_NONE,	C_NONE, C_NONE, 	C_NONE,		46, 4, 0 },
2797dd7cddfSDavid du Colombier 	{ ATLBIE,	C_REG, C_NONE, C_NONE,		C_NONE,		49, 4, 0 },
2807dd7cddfSDavid du Colombier 
2817dd7cddfSDavid du Colombier 	{ ASTSW,	C_REG,	C_NONE, C_NONE, 	C_ZOREG,	44, 4, 0 },
2827dd7cddfSDavid du Colombier 	{ ASTSW,	C_REG,	C_NONE, C_LCON, 	C_ZOREG,	41, 4, 0 },
2837dd7cddfSDavid du Colombier 	{ ALSW,	C_ZOREG, C_NONE, C_NONE,  C_REG,		45, 4, 0 },
2847dd7cddfSDavid du Colombier 	{ ALSW,	C_ZOREG, C_NONE, C_LCON,  C_REG,		42, 4, 0 },
285375daca8SDavid du Colombier 
286375daca8SDavid du Colombier 	{ AMACCHW,	C_REG,	C_REG, C_NONE, 	C_REG,		 2, 4, 0 },	/* op rb,ra,rt */
287375daca8SDavid du Colombier 
288*6891d857SDavid du Colombier 	{ AFSMOVS,	C_ZOREG,	C_REG, C_NONE, C_FREG,		45, 4, 0 },
289*6891d857SDavid du Colombier 	{ AFSMOVS,	C_ZOREG, C_NONE, C_NONE, C_FREG,	45, 4, 0 },
290*6891d857SDavid du Colombier 	{ AFSMOVS,	C_FREG,	C_REG, C_NONE,	C_ZOREG,		44, 4, 0 },
291*6891d857SDavid du Colombier 	{ AFSMOVS,	C_FREG,	C_NONE, C_NONE,	C_ZOREG,		44, 4, 0 },
292*6891d857SDavid du Colombier 
293*6891d857SDavid du Colombier 	{ AFPMOVD,	C_ZOREG,	C_REG, C_NONE, C_FREG,		45, 4, 0 },
294*6891d857SDavid du Colombier 	{ AFPMOVD,	C_ZOREG, C_NONE, C_NONE, C_FREG,	45, 4, 0 },
295*6891d857SDavid du Colombier 	{ AFPMOVD,	C_FREG,	C_REG, C_NONE,	C_ZOREG,		44, 4, 0 },
296*6891d857SDavid du Colombier 	{ AFPMOVD,	C_FREG,	C_NONE, C_NONE,	C_ZOREG,		44, 4, 0 },
297*6891d857SDavid du Colombier 
298*6891d857SDavid du Colombier 	{ AFPMOVD,	C_FREG,	C_NONE, C_NONE, 	C_FREG,		33, 4, 0 },	/* f[xps]mr */
299*6891d857SDavid du Colombier 	{ AFMOVSPD,	C_FREG,	C_NONE, C_NONE, 	C_FREG,		33, 4, 0 },	/* fsm[tf]p */
300*6891d857SDavid du Colombier 
3017dd7cddfSDavid du Colombier 	{ AXXX,		C_NONE,	C_NONE, C_NONE, 	C_NONE,		 0, 4, 0 },
3027dd7cddfSDavid du Colombier };
303