xref: /plan9/sys/src/cmd/kl/optab.c (revision a83436df813a19eb567efc5fe03bf863a0d64541)
13e12c5d1SDavid du Colombier #include	"l.h"
23e12c5d1SDavid du Colombier 
33e12c5d1SDavid du Colombier #define	X	99
43e12c5d1SDavid du Colombier 
53e12c5d1SDavid du Colombier Optab	optab[] =
63e12c5d1SDavid du Colombier {
73e12c5d1SDavid du Colombier 	{ ATEXT,	C_LEXT,	C_NONE,	C_LCON, 	 0, 0, 0 },
83e12c5d1SDavid du Colombier 	{ ATEXT,	C_LEXT,	C_REG,	C_LCON, 	 0, 0, 0 },
93e12c5d1SDavid du Colombier 	{ ANOP,		C_NONE,	C_NONE,	C_NONE, 	 0, 0, 0 },
103e12c5d1SDavid du Colombier 
113e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_REG,		 1, 4, 0 },
123e12c5d1SDavid du Colombier 
133e12c5d1SDavid du Colombier 	{ AMOVW,	C_SCON,	C_NONE,	C_REG,		 2, 4, 0 },
143e12c5d1SDavid du Colombier 	{ AMOVW,	C_SACON,C_NONE,	C_REG,		 2, 4, REGSP },
153e12c5d1SDavid du Colombier 	{ AMOVW,	C_SECON,C_NONE,	C_REG,		 2, 4, REGSB },
163e12c5d1SDavid du Colombier 
173e12c5d1SDavid du Colombier 	{ AMOVW,	C_SOREG,C_NONE,	C_REG,		 3, 4, 0 },
183e12c5d1SDavid du Colombier 	{ AMOVW,	C_ZOREG,C_REG,	C_REG,		 3, 4, 0 },
193e12c5d1SDavid du Colombier 	{ AMOVW,	C_SAUTO,C_NONE,	C_REG,		 3, 4, REGSP },
203e12c5d1SDavid du Colombier 	{ AMOVW,	C_SEXT,	C_NONE,	C_REG,		 3, 4, REGSB },
213e12c5d1SDavid du Colombier 	{ AMOVB,	C_SOREG,C_NONE,	C_REG,		 3, 4, 0 },
223e12c5d1SDavid du Colombier 	{ AMOVB,	C_ZOREG,C_REG,	C_REG,		 3, 4, 0 },
233e12c5d1SDavid du Colombier 	{ AMOVB,	C_SAUTO,C_NONE,	C_REG,		 3, 4, REGSP },
243e12c5d1SDavid du Colombier 	{ AMOVB,	C_SEXT,	C_NONE,	C_REG,		 3, 4, REGSB },
253e12c5d1SDavid du Colombier 	{ AMOVD,	C_SOREG,C_NONE,	C_REG,		 3, 4, 0 },
263e12c5d1SDavid du Colombier 	{ AMOVD,	C_ZOREG,C_REG,	C_REG,		 3, 4, 0 },
273e12c5d1SDavid du Colombier 	{ AMOVD,	C_SAUTO,C_NONE,	C_REG,		 3, 4, REGSP },
283e12c5d1SDavid du Colombier 	{ AMOVD,	C_SEXT,	C_NONE,	C_REG,		 3, 4, REGSB },
293e12c5d1SDavid du Colombier 
303e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_SOREG,	 4, 4, 0 },
313e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_REG,	C_ZOREG,	 4, 4, 0 },
323e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_SAUTO,	 4, 4, REGSP },
333e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_SEXT,		 4, 4, REGSB },
343e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_SOREG,	 4, 4, 0 },
353e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_REG,	C_ZOREG,	 4, 4, 0 },
363e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_SAUTO,	 4, 4, REGSP },
373e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_SEXT,		 4, 4, REGSB },
383e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_SOREG,	 4, 4, 0 },
393e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_REG,	C_ZOREG,	 4, 4, 0 },
403e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_SAUTO,	 4, 4, REGSP },
413e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_SEXT,		 4, 4, REGSB },
423e12c5d1SDavid du Colombier 
433e12c5d1SDavid du Colombier 	{ AMOVW,	C_LCON,	C_NONE,	C_REG,		 5, 8, 0 },
443e12c5d1SDavid du Colombier 
453e12c5d1SDavid du Colombier 	{ AMOVW,	C_ASI,	C_NONE,	C_REG,		 6, 4, 0 },
463e12c5d1SDavid du Colombier 	{ AMOVW,	C_ASI,	C_REG,	C_REG,		 6, 4, 0 },
473e12c5d1SDavid du Colombier 	{ AMOVB,	C_ASI,	C_NONE,	C_REG,		 6, 4, 0 },
483e12c5d1SDavid du Colombier 	{ AMOVB,	C_ASI,	C_REG,	C_REG,		 6, 4, 0 },
493e12c5d1SDavid du Colombier 	{ AMOVD,	C_ASI,	C_NONE,	C_REG,		 6, 4, 0 },
503e12c5d1SDavid du Colombier 	{ AMOVD,	C_ASI,	C_REG,	C_REG,		 6, 4, 0 },
513e12c5d1SDavid du Colombier 
523e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_ASI,		 7, 4, 0 },
533e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_REG,	C_ASI,		 7, 4, 0 },
543e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_ASI,		 7, 4, 0 },
553e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_REG,	C_ASI,		 7, 4, 0 },
563e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_ASI,		 7, 4, 0 },
573e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_REG,	C_ASI,		 7, 4, 0 },
583e12c5d1SDavid du Colombier 
593e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_PREG,		 8, 4, 0 },
603e12c5d1SDavid du Colombier 	{ AMOVW,	C_PREG,	C_NONE,	C_REG,		 8, 4, 0 },
613e12c5d1SDavid du Colombier 
623e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_REG,		 9, 8, 0 },
633e12c5d1SDavid du Colombier 
643e12c5d1SDavid du Colombier 	{ AMOVW,	C_LACON,C_NONE,	C_REG,		10,12, REGSP },
653e12c5d1SDavid du Colombier 	{ AMOVW,	C_LECON,C_NONE,	C_REG,		10,12, REGSB },
663e12c5d1SDavid du Colombier 
673e12c5d1SDavid du Colombier 	{ AMOVW,	C_LOREG,C_NONE,	C_REG,		11,12, 0 },
683e12c5d1SDavid du Colombier 	{ AMOVW,	C_LAUTO,C_NONE,	C_REG,		11,12, REGSP },
693e12c5d1SDavid du Colombier 	{ AMOVW,	C_LEXT,	C_NONE,	C_REG,		11,12, REGSB },
703e12c5d1SDavid du Colombier 	{ AMOVB,	C_LOREG,C_NONE,	C_REG,		11,12, 0 },
713e12c5d1SDavid du Colombier 	{ AMOVB,	C_LAUTO,C_NONE,	C_REG,		11,12, REGSP },
723e12c5d1SDavid du Colombier 	{ AMOVB,	C_LEXT,	C_NONE,	C_REG,		11,12, REGSB },
733e12c5d1SDavid du Colombier 	{ AMOVD,	C_LOREG,C_NONE,	C_REG,		11,12, 0 },
743e12c5d1SDavid du Colombier 	{ AMOVD,	C_LAUTO,C_NONE,	C_REG,		11,12, REGSP },
753e12c5d1SDavid du Colombier 	{ AMOVD,	C_LEXT,	C_NONE,	C_REG,		11,12, REGSB },
763e12c5d1SDavid du Colombier 
773e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_LOREG,	12,12, 0 },
783e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_LAUTO,	12,12, REGSP },
793e12c5d1SDavid du Colombier 	{ AMOVW,	C_REG,	C_NONE,	C_LEXT,		12,12, REGSB },
803e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_LOREG,	12,12, 0 },
813e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_LAUTO,	12,12, REGSP },
823e12c5d1SDavid du Colombier 	{ AMOVB,	C_REG,	C_NONE,	C_LEXT,		12,12, REGSB },
833e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_LOREG,	12,12, 0 },
843e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_LAUTO,	12,12, REGSP },
853e12c5d1SDavid du Colombier 	{ AMOVD,	C_REG,	C_NONE,	C_LEXT,		12,12, REGSB },
863e12c5d1SDavid du Colombier 
873e12c5d1SDavid du Colombier 	{ AMOVW,	C_UCON,	C_NONE,	C_REG,		13, 4, 0 },
883e12c5d1SDavid du Colombier 
893e12c5d1SDavid du Colombier 	{ AADD,		C_SCON,	C_NONE,	C_REG,		20, 4, 0 },
903e12c5d1SDavid du Colombier 	{ AADD,		C_SCON,	C_REG,	C_REG,		20, 4, 0 },
913e12c5d1SDavid du Colombier 
923e12c5d1SDavid du Colombier 	{ AADD,		C_REG,	C_NONE,	C_REG,		21, 4, 0 },
933e12c5d1SDavid du Colombier 	{ AADD,		C_REG,	C_REG,	C_REG,		21, 4, 0 },
943e12c5d1SDavid du Colombier 
953e12c5d1SDavid du Colombier 	{ AADD,		C_LCON,	C_NONE,	C_REG,		22,12, 0 },
963e12c5d1SDavid du Colombier 	{ AADD,		C_LCON,	C_REG,	C_REG,		22,12, 0 },
973e12c5d1SDavid du Colombier 
983e12c5d1SDavid du Colombier 	{ ACMP,		C_REG,	C_NONE,	C_REG,		23, 4, 0 },
993e12c5d1SDavid du Colombier 	{ ACMP,		C_REG,	C_NONE,	C_SCON,		24, 4, 0 },
1003e12c5d1SDavid du Colombier 	{ ACMP,		C_SCON,	C_NONE,	C_REG,		25, 8, 0 },
1013e12c5d1SDavid du Colombier 
1023e12c5d1SDavid du Colombier 	{ AADD,		C_UCON,	C_NONE,	C_REG,		26, 8, 0 },
1033e12c5d1SDavid du Colombier 	{ AADD,		C_UCON,	C_REG,	C_REG,		26, 8, 0 },
1043e12c5d1SDavid du Colombier 
1053e12c5d1SDavid du Colombier 	{ AJMP,		C_NONE,	C_NONE,	C_SOREG,	30, 4, 0 },
1063e12c5d1SDavid du Colombier 	{ AJMPL,	C_NONE,	C_NONE,	C_SOREG,	30, 4, 0 },
1073e12c5d1SDavid du Colombier 
1083e12c5d1SDavid du Colombier 	{ AJMP,		C_NONE,	C_NONE,	C_SBRA,		31, 4, 0 },
1093e12c5d1SDavid du Colombier 	{ ABA,		C_NONE,	C_NONE,	C_SBRA,		31, 4, 0 },
1103e12c5d1SDavid du Colombier 
1113e12c5d1SDavid du Colombier 	{ AJMPL,	C_NONE,	C_NONE,	C_LBRA,		32, 4, 0 },
1123e12c5d1SDavid du Colombier 
1133e12c5d1SDavid du Colombier 	{ ATA,		C_REG,	C_NONE,	C_NONE,		33, 4, 0 },
1143e12c5d1SDavid du Colombier 	{ ARETT,	C_REG,	C_NONE,	C_REG,		34, 8, 0 },
1153e12c5d1SDavid du Colombier 
1163e12c5d1SDavid du Colombier 	{ AMOVW,	C_SOREG,C_NONE,	C_FSR,		40, 4, 0 },
1173e12c5d1SDavid du Colombier 	{ AMOVW,	C_SAUTO,C_NONE,	C_FSR,		40, 4, REGSP },
1183e12c5d1SDavid du Colombier 	{ AMOVW,	C_SEXT,	C_NONE,	C_FSR,		40, 4, REGSB },
1193e12c5d1SDavid du Colombier 	{ AMOVW,	C_FSR,	C_NONE,	C_SOREG,	40, 4, 0 },
1203e12c5d1SDavid du Colombier 	{ AMOVW,	C_FSR,	C_NONE,	C_SAUTO,	40, 4, REGSP },
1213e12c5d1SDavid du Colombier 	{ AMOVW,	C_FSR,	C_NONE,	C_SEXT,		40, 4, REGSB },
1223e12c5d1SDavid du Colombier 	{ AMOVD,	C_FQ,	C_NONE,	C_SOREG,	40, 4, 0 },
1233e12c5d1SDavid du Colombier 	{ AMOVD,	C_FQ,	C_NONE,	C_SAUTO,	40, 4, REGSP },
1243e12c5d1SDavid du Colombier 	{ AMOVD,	C_FQ,	C_NONE,	C_SEXT,		40, 4, REGSB },
1253e12c5d1SDavid du Colombier 
1263e12c5d1SDavid du Colombier 	{ AFMOVF,	C_SOREG,C_NONE,	C_FREG,		41, 4, 0 },
1273e12c5d1SDavid du Colombier 	{ AFMOVF,	C_SAUTO,C_NONE,	C_FREG,		41, 4, REGSP },
1283e12c5d1SDavid du Colombier 	{ AFMOVF,	C_SEXT,	C_NONE,	C_FREG,		41, 4, REGSB },
1293e12c5d1SDavid du Colombier 	{ AMOVW,	C_SOREG,C_NONE,	C_FREG,		41, 4, 0 },
1303e12c5d1SDavid du Colombier 	{ AMOVW,	C_SAUTO,C_NONE,	C_FREG,		41, 4, REGSP },
1313e12c5d1SDavid du Colombier 	{ AMOVW,	C_SEXT,	C_NONE,	C_FREG,		41, 4, REGSB },
1323e12c5d1SDavid du Colombier 	{ AMOVD,	C_SOREG,C_NONE,	C_FREG,		41, 4, 0 },
1333e12c5d1SDavid du Colombier 	{ AMOVD,	C_SAUTO,C_NONE,	C_FREG,		41, 4, REGSP },
1343e12c5d1SDavid du Colombier 	{ AFMOVD,	C_ESAUTO,C_NONE,C_FREG,		41, 4, REGSP },
1353e12c5d1SDavid du Colombier 	{ AMOVD,	C_SEXT,	C_NONE,	C_FREG,		41, 4, REGSB },
1363e12c5d1SDavid du Colombier 	{ AFMOVD,	C_ESEXT,C_NONE,	C_FREG,		41, 4, REGSB },
1373e12c5d1SDavid du Colombier 
1383e12c5d1SDavid du Colombier 	{ AFMOVD,	C_SOREG,C_NONE,	C_FREG,		42, 8, 0 },
1393e12c5d1SDavid du Colombier 	{ AFMOVD,	C_SAUTO,C_NONE,	C_FREG,		42, 8, REGSP },
1403e12c5d1SDavid du Colombier 	{ AFMOVD,	C_SEXT,	C_NONE,	C_FREG,		42, 8, REGSB },
1413e12c5d1SDavid du Colombier 
1423e12c5d1SDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_SOREG,	43, 4, 0 },
1433e12c5d1SDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_SAUTO,	43, 4, REGSP },
1443e12c5d1SDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_SEXT,		43, 4, REGSB },
1453e12c5d1SDavid du Colombier 	{ AMOVW,	C_FREG,	C_NONE,	C_SOREG,	43, 4, 0 },
1463e12c5d1SDavid du Colombier 	{ AMOVW,	C_FREG,	C_NONE,	C_SAUTO,	43, 4, REGSP },
1473e12c5d1SDavid du Colombier 	{ AMOVW,	C_FREG,	C_NONE,	C_SEXT,		43, 4, REGSB },
1483e12c5d1SDavid du Colombier 	{ AMOVD,	C_FREG,	C_NONE,	C_SOREG,	43, 4, 0 },
1493e12c5d1SDavid du Colombier 	{ AMOVD,	C_FREG,	C_NONE,	C_SAUTO,	43, 4, REGSP },
1503e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_ESAUTO,	43, 4, REGSP },
1513e12c5d1SDavid du Colombier 	{ AMOVD,	C_FREG,	C_NONE,	C_SEXT,		43, 4, REGSB },
1523e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_ESEXT,	43, 4, REGSB },
1533e12c5d1SDavid du Colombier 
1543e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_SOREG,	44, 8, 0 },
1553e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_SAUTO,	44, 8, REGSP },
1563e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_SEXT,		44, 8, REGSB },
1573e12c5d1SDavid du Colombier 
1583e12c5d1SDavid du Colombier 	{ AFMOVF,	C_LOREG,C_NONE,	C_FREG,		45,12, 0 },
1593e12c5d1SDavid du Colombier 	{ AFMOVF,	C_LAUTO,C_NONE,	C_FREG,		45,12, REGSP },
1603e12c5d1SDavid du Colombier 	{ AFMOVF,	C_LEXT,	C_NONE,	C_FREG,		45,12, REGSB },
1613e12c5d1SDavid du Colombier 
1623e12c5d1SDavid du Colombier 	{ AFMOVD,	C_LOREG,C_NONE,	C_FREG,		46,16, 0 },
1633e12c5d1SDavid du Colombier 	{ AFMOVD,	C_LAUTO,C_NONE,	C_FREG,		46,16, REGSP },
1643e12c5d1SDavid du Colombier 	{ AFMOVD,	C_LEXT,	C_NONE,	C_FREG,		46,16, REGSB },
1653e12c5d1SDavid du Colombier 
1663e12c5d1SDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_LOREG,	47,12, 0 },
1673e12c5d1SDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_LAUTO,	47,12, REGSP },
1683e12c5d1SDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_LEXT,		47,12, REGSB },
1693e12c5d1SDavid du Colombier 
1703e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_LOREG,	48,16, 0 },
1713e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_LAUTO,	48,16, REGSP },
1723e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_LEXT,		48,16, REGSB },
1733e12c5d1SDavid du Colombier 
1743e12c5d1SDavid du Colombier 	{ AFMOVD,	C_FREG,	C_NONE,	C_FREG,		49, 8, 0 },
1753e12c5d1SDavid du Colombier 	{ AFCMPD,	C_FREG,	C_NONE,	C_FREG,		50, 4, 0 },
1763e12c5d1SDavid du Colombier 
177*a83436dfSDavid du Colombier 	{ AFABSF,	C_FREG,	C_NONE,	C_FREG,		57, 4, 0 },
178*a83436dfSDavid du Colombier 	{ AFMOVF,	C_FREG,	C_NONE,	C_FREG,		57, 4, 0 },
1793e12c5d1SDavid du Colombier 	{ AFADDD,	C_FREG,	C_NONE,	C_FREG,		21, 4, 0 },
1803e12c5d1SDavid du Colombier 	{ AFADDD,	C_FREG,	C_REG,	C_FREG,		21, 4, 0 },
1813e12c5d1SDavid du Colombier 
1823e12c5d1SDavid du Colombier 	{ AWORD,	C_LCON,	C_NONE,	C_NONE,		51, 4, 0 },
1833e12c5d1SDavid du Colombier 
1843e12c5d1SDavid du Colombier 	{ ADIV,		C_REG,	C_NONE,	C_REG,		52,12, 0 },
1853e12c5d1SDavid du Colombier 	{ ADIV,		C_REG,	C_REG,	C_REG,		52,12, 0 },
1863e12c5d1SDavid du Colombier 
1873e12c5d1SDavid du Colombier 	{ ADIVL,	C_REG,	C_NONE,	C_REG,		53, 8, 0 },
1883e12c5d1SDavid du Colombier 	{ ADIVL,	C_REG,	C_REG,	C_REG,		53, 8, 0 },
1893e12c5d1SDavid du Colombier 
1903e12c5d1SDavid du Colombier 	{ AMOD,		C_REG,	C_NONE,	C_REG,		54,20, 0 },
1913e12c5d1SDavid du Colombier 	{ AMOD,		C_REG,	C_REG,	C_REG,		54,20, 0 },
1923e12c5d1SDavid du Colombier 
1933e12c5d1SDavid du Colombier 	{ AMODL,	C_REG,	C_NONE,	C_REG,		55,16, 0 },
1943e12c5d1SDavid du Colombier 	{ AMODL,	C_REG,	C_REG,	C_REG,		55,16, 0 },
1953e12c5d1SDavid du Colombier 
1963e12c5d1SDavid du Colombier 	{ ABE,		C_NONE,	C_NONE,	C_SBRA,		56, 4, 0 },
1973e12c5d1SDavid du Colombier 
1983e12c5d1SDavid du Colombier 	{ AXXX,		C_NONE,	C_NONE,	C_NONE,		 0, 4, 0 },
1993e12c5d1SDavid du Colombier };
200