xref: /csrg-svn/old/pcc/ccom.vax/table.c (revision 16182)
1*16182Sralph static char *sccsid ="@(#)table.c	1.2 (Berkeley) 03/14/84";
29705Slinton # include "mfile2"
39705Slinton 
49705Slinton # define WPTR TPTRTO|TINT|TLONG|TFLOAT|TDOUBLE|TPOINT|TUNSIGNED|TULONG
59705Slinton # define AWD SNAME|SOREG|SCON|STARNM|STARREG
69705Slinton /* tbl */
79705Slinton # define ANYSIGNED TPOINT|TINT|TLONG|TSHORT|TCHAR
89705Slinton # define ANYUSIGNED TUNSIGNED|TULONG|TUSHORT|TUCHAR
99705Slinton # define ANYFIXED ANYSIGNED|ANYUSIGNED
109705Slinton # define TWORD TINT|TUNSIGNED|TPOINT|TLONG|TULONG
119705Slinton # define NIAWD SNAME|SCON|STARNM
129705Slinton /* tbl */
139705Slinton 
149705Slinton struct optab  table[] = {
159705Slinton 
169705Slinton PCONV,	INAREG|INTAREG,
179705Slinton 	SAREG|AWD,	TCHAR|TSHORT,
189705Slinton 	SANY,	TPOINT,
199705Slinton 		NAREG|NASL,	RESC1,
209705Slinton 		"	cvtZLl	AL,A1\n",
219705Slinton 
229705Slinton PCONV,	INAREG|INTAREG,
239705Slinton 	SAREG|AWD,	TUCHAR|TUSHORT,
249705Slinton 	SANY,	TPOINT,
259705Slinton 		NAREG|NASL,	RESC1,
269705Slinton 		"	movzZLl	AL,A1\n",
279705Slinton 
289705Slinton 	/* the following entry is to fix a problem with
299705Slinton 	   the manner that the first pass handles the
309705Slinton 	   type of a shift expression                 */
319705Slinton PCONV,	INAREG|INTAREG,
329705Slinton 	SAREG|AWD,	TINT|TUNSIGNED,
339705Slinton 	SANY,	TPOINT,
349705Slinton 		NAREG|NASL,	RLEFT,
359705Slinton 		"",
369705Slinton 
37*16182Sralph #ifdef FORT
389705Slinton SCONV,	INTAREG|FORCC,
39*16182Sralph 	SAREG|AWD,	TDOUBLE,
40*16182Sralph 	SANY,	TFLOAT,
41*16182Sralph 		NAREG|NASL,	RESC1|RESCC,
42*16182Sralph 		"	cvtdf	AL,A1\n",
439705Slinton 
449705Slinton SCONV,	INTAREG|FORCC,
459705Slinton 	SAREG|AWD,	ANYSIGNED|TUNSIGNED|TULONG|TFLOAT,
469705Slinton 	SANY,	TFLOAT,
479705Slinton 		NAREG|NASL,	RESC1|RESCC,
489705Slinton 		"	cvtZLf	AL,TA1\n",
499705Slinton 
509705Slinton SCONV,	INTAREG|FORCC,
519705Slinton 	SAREG|AWD,	TUCHAR|TUSHORT,
529705Slinton 	SANY,	TFLOAT,
539705Slinton 		NAREG|NASL,	RESC1|RESCC,
549705Slinton 		"	movzZLl	AL,A1\n	cvtlf	A1,TA1\n",
559705Slinton #endif
569705Slinton 
579705Slinton SCONV,	INTAREG|FORCC,
589705Slinton 	SAREG|AWD,	TUCHAR|TUSHORT,
599705Slinton 	SANY,	TFLOAT|TDOUBLE,
609705Slinton 		NAREG|NASL,	RESC1|RESCC,
619705Slinton 		"	movzZLl	AL,A1\n	cvtld	A1,A1\n",
629705Slinton 
639705Slinton SCONV,	INTAREG|FORCC,
64*16182Sralph 	SAREG|AWD,	TANY,
659705Slinton 	SANY,	TANY,
669705Slinton 		NAREG|NASL,	RESC1|RESCC,
67*16182Sralph 		"	ZA\n",
689705Slinton 
699705Slinton 
709705Slinton INIT,	FOREFF,
719705Slinton 	SCON,	TANY,
729705Slinton 	SANY,	TWORD,
739705Slinton 		0,	RNOP,
749705Slinton 		"	.long	CL\n",
759705Slinton 
769705Slinton INIT,	FOREFF,
779705Slinton 	SCON,	TANY,
789705Slinton 	SANY,	TSHORT|TUSHORT,
799705Slinton 		0,	RNOP,
809705Slinton 		"	.word	CL\n",
819705Slinton 
829705Slinton INIT,	FOREFF,
839705Slinton 	SCON,	TANY,
849705Slinton 	SANY,	TCHAR|TUCHAR,
859705Slinton 		0,	RNOP,
869705Slinton 		"	.byte	CL\n",
879705Slinton 
889705Slinton 	/* for the use of fortran only */
899705Slinton 
909705Slinton GOTO,	FOREFF,
919705Slinton 	SCON,	TANY,
929705Slinton 	SANY,	TANY,
939705Slinton 		0,	RNOP,
949705Slinton 		"	jbr	CL\n",
959705Slinton 
969705Slinton GOTO,	FOREFF,
979705Slinton 	AWD,	TANY,
989705Slinton 	SANY,	TANY,
999705Slinton 		0,	RNOP,
1009705Slinton 		"	jmp	*AL\n",
1019705Slinton 
1029705Slinton GOTO,	FOREFF,
1039705Slinton 	SAREG,	TANY,
1049705Slinton 	SANY,	TANY,
1059705Slinton 		0,	RNOP,
1069705Slinton 		"	jmp	(AL)\n",
1079705Slinton 
1089705Slinton STARG,	FORARG,
1099705Slinton 	SCON|SOREG,	TANY,
1109705Slinton 	SANY,	TANY,
1119705Slinton 		NTEMP+2*NAREG,	RESC3,
1129705Slinton 		"ZS",
1139705Slinton 
1149705Slinton STASG,	FORARG,
1159705Slinton 	SNAME|SOREG,	TANY,
1169705Slinton 	SCON|SAREG,	TANY,
1179705Slinton 		0,	RNULL,
1189705Slinton 		"	subl2	ZT,sp\nZS",
1199705Slinton 
1209705Slinton STASG,	FOREFF,
1219705Slinton 	SNAME|SOREG,	TANY,
1229705Slinton 	SCON|SAREG,	TANY,
1239705Slinton 		0,	RNOP,
1249705Slinton 		"ZS",
1259705Slinton 
1269705Slinton STASG,	INAREG,
1279705Slinton 	SNAME|SOREG,	TANY,
1289705Slinton 	SCON,	TANY,
1299705Slinton 		NAREG,	RESC1,
1309705Slinton 		"ZS	movl	AR,A1\n",
1319705Slinton 
1329705Slinton STASG,	INAREG,
1339705Slinton 	SNAME|SOREG,	TANY,
1349705Slinton 	SAREG,	TANY,
1359705Slinton 		0,	RRIGHT,
1369705Slinton 		"	pushl	AR\nZS	movl	(sp)+,AR\n",
1379705Slinton 
1389705Slinton FLD,	INAREG|INTAREG,
1399705Slinton 	SANY,	TANY,
1409705Slinton 	SFLD,	ANYSIGNED,
1419705Slinton 		NAREG|NASR,	RESC1,
1429705Slinton 		"	extv	$H,$S,AR,A1\n",
1439705Slinton 
1449705Slinton FLD,	INAREG|INTAREG,
1459705Slinton 	SANY,	TANY,
1469705Slinton 	SFLD,	ANYUSIGNED,
1479705Slinton 		NAREG|NASR,	RESC1,
1489705Slinton 		"	extzv	$H,$S,AR,A1\n",
1499705Slinton 
1509705Slinton FLD,	FORARG,
1519705Slinton 	SANY,	TANY,
1529705Slinton 	SFLD,	ANYSIGNED,
1539705Slinton 		0,	RNULL,
1549705Slinton 		"	extv	$H,$S,AR,-(sp)\n",
1559705Slinton 
1569705Slinton FLD,	FORARG,
1579705Slinton 	SANY,	TANY,
1589705Slinton 	SFLD,	ANYUSIGNED,
1599705Slinton 		0,	RNULL,
1609705Slinton 		"	extzv	$H,$S,AR,-(sp)\n",
1619705Slinton 
1629705Slinton OPLOG,	FORCC,
1639705Slinton 	SAREG|AWD,	TWORD,
1649705Slinton 	SAREG|AWD,	TWORD,
1659705Slinton 		0,	RESCC,
1669705Slinton 		"	cmpl	AL,AR\nZP",
1679705Slinton 
1689705Slinton OPLOG,	FORCC,
1699705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1709705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1719705Slinton 		0,	RESCC,
1729705Slinton 		"	cmpw	AL,AR\nZP",
1739705Slinton 
1749705Slinton OPLOG,	FORCC,
1759705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
1769705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
1779705Slinton 		0,	RESCC,
1789705Slinton 		"	cmpb	AL,AR\nZP",
1799705Slinton 
1809705Slinton OPLOG,	FORCC,
1819705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1829705Slinton 	SSCON,	TANY,
1839705Slinton 		0,	RESCC,
1849705Slinton 		"	cmpw	AL,AR\nZP",
1859705Slinton 
1869705Slinton OPLOG,	FORCC,
1879705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
1889705Slinton 	SCCON,	TANY,
1899705Slinton 		0,	RESCC,
1909705Slinton 		"	cmpb	AL,AR\nZP",
1919705Slinton 
1929705Slinton OPLOG,	FORCC,
1939705Slinton 	SAREG|AWD,	TDOUBLE,
1949705Slinton 	SAREG|AWD,	TDOUBLE,
1959705Slinton 		0,	RESCC,
1969705Slinton 		"	cmpd	AL,AR\nZP",
1979705Slinton 
1989705Slinton OPLOG,	FORCC,
1999705Slinton 	SAREG|AWD,	TDOUBLE,
2009705Slinton 	SAREG|AWD,	TFLOAT,
201*16182Sralph 		NAREG,	RESCC,
2029705Slinton 		"	cvtfd	AR,A1\n	cmpd	AL,A1\nZP",
2039705Slinton 
2049705Slinton OPLOG,	FORCC,
2059705Slinton 	SAREG|AWD,	TFLOAT,
2069705Slinton 	SAREG|AWD,	TDOUBLE,
207*16182Sralph 		NAREG,	RESCC,
2089705Slinton 		"	cvtfd	AL,A1\n	cmpd	A1,AR\nZP",
2099705Slinton 
2109705Slinton OPLOG,	FORCC,
2119705Slinton 	SAREG|AWD,	TFLOAT,
2129705Slinton 	SAREG|AWD,	TFLOAT,
2139705Slinton 		0,	RESCC,
2149705Slinton 		"	cmpf	AL,AR\nZP",
2159705Slinton 
2169705Slinton CCODES,	INAREG|INTAREG,
2179705Slinton 	SANY,	TANY,
2189705Slinton 	SANY,	TANY,
2199705Slinton 		NAREG,	RESC1,
2209705Slinton 		"	movl	$1,A1\nZN",
2219705Slinton 
222*16182Sralph #ifdef FORT
2239705Slinton UNARY CALL,	INTAREG,
2249705Slinton 	SCON,	TANY,
225*16182Sralph 	SANY,	TFLOAT,
226*16182Sralph 		NAREG|NASL,	RESC1,
227*16182Sralph 		"	calls	ZC,CL\n",
228*16182Sralph 
229*16182Sralph UNARY CALL,	INTAREG,
230*16182Sralph 	SCON,	TANY,
231*16182Sralph 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TDOUBLE,
2329705Slinton 		NAREG|NASL,	RESC1, /* should be register 0 */
2339705Slinton 		"	calls	ZC,CL\n",
2349705Slinton 
235*16182Sralph #else
236*16182Sralph 
2379705Slinton UNARY CALL,	INTAREG,
238*16182Sralph 	SCON,	TANY,
239*16182Sralph 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
240*16182Sralph 		NAREG|NASL,	RESC1,
241*16182Sralph 		"	calls	ZC,CL\n",
242*16182Sralph #endif
243*16182Sralph 
244*16182Sralph UNARY CALL,	INTAREG,
2459705Slinton 	SAREG,	TANY,
2469705Slinton 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
2479705Slinton 		NAREG|NASL,	RESC1,	/* should be 0 */
2489705Slinton 		"	calls	ZC,(AL)\n",
2499705Slinton 
2509705Slinton UNARY CALL,	INAREG|INTAREG,
2519705Slinton 	SNAME,	TANY,
2529705Slinton 	SANY,	TANY,
2539705Slinton 		NAREG|NASL,	RESC1,	/* really reg 0 */
2549705Slinton 		"	calls	ZC,*AL\n",
2559705Slinton 
2569705Slinton UNARY CALL,	INAREG|INTAREG,
2579705Slinton 	SSOREG,	TANY,
2589705Slinton 	SANY,	TANY,
2599705Slinton 		NAREG|NASL,	RESC1,	/* really reg 0 */
2609705Slinton 		"	calls	ZC,*AL\n",
2619705Slinton 
2629705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2639705Slinton 	SAREG,	TWORD,
2649705Slinton 	SCON,	TINT,
2659705Slinton 		0,	RLEFT|RESCC,
2669705Slinton 		"	extzv	AR,ZU,AL,AL\n",
2679705Slinton 
2689705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2699705Slinton 	SAREG,	TWORD,
2709705Slinton 	SAREG,	ANYFIXED,
2719705Slinton 		NAREG,	RLEFT|RESCC,
2729705Slinton 		"	subl3	AR,$32,A1\n	extzv	AR,A1,AL,AL\n",
2739705Slinton 
2749705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2759705Slinton 	SAREG,	TWORD,
2769705Slinton 	SAREG|AWD,	TWORD,
2779705Slinton 		NAREG,	RLEFT|RESCC,
2789705Slinton 		"	subl3	AR,$32,A1\n	extzv	AR,A1,AL,AL\n",
2799705Slinton 
2809705Slinton RS,	INAREG|INTAREG|FORCC,
2819705Slinton 	SAREG,	TWORD,
2829705Slinton 	SCON,	TINT,
2839705Slinton 		NAREG|NASL,	RESC1|RESCC,
2849705Slinton 		"	extzv	AR,ZU,AL,A1\n",
2859705Slinton 
2869705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2879705Slinton 	SAREG|AWD,	TWORD,
2889705Slinton 	SAREG|NIAWD,	ANYSIGNED|ANYUSIGNED,
2899705Slinton 		0,	RLEFT|RESCC,
2909705Slinton 		"	ashl	AR,AL,AL\n",
2919705Slinton 
2929705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2939705Slinton 	SAREG|AWD,	TWORD,
2949705Slinton 	SSOREG,	ANYSIGNED|ANYUSIGNED,
2959705Slinton 		0,	RLEFT|RESCC,
2969705Slinton 		"	ashl	AR,AL,AL\n",
2979705Slinton 
2989705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2999705Slinton 	SAREG|AWD,	TWORD,
3009705Slinton 	SOREG,	ANYSIGNED|ANYUSIGNED,
3019705Slinton 		NAREG,	RLEFT|RESCC,
3029705Slinton 		"	ZB	AR,A1\n	ashl	A1,AL,AL\n",
3039705Slinton 
3049705Slinton LS,	INAREG|INTAREG|FORCC,
3059705Slinton 	SAREG|AWD,	TWORD,
3069705Slinton 	SAREG|NIAWD,	ANYSIGNED|ANYUSIGNED,
3079705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
3089705Slinton 		"	ashl	AR,AL,A1\n",
3099705Slinton 
3109705Slinton LS,	INAREG|INTAREG|FORCC,
3119705Slinton 	SAREG|AWD,	TWORD,
3129705Slinton 	SSOREG,	ANYSIGNED|ANYUSIGNED,
3139705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
3149705Slinton 		"	ashl	AR,AL,A1\n",
3159705Slinton 
3169705Slinton LS,	INAREG|INTAREG|FORCC,
3179705Slinton 	SAREG|AWD,	TWORD,
3189705Slinton 	SOREG,	ANYSIGNED|ANYUSIGNED,
3199705Slinton 		NAREG|NASR,	RESC1|RESCC,
3209705Slinton 		"	ZB	AR,A1\n	ashl	A1,AL,A1\n",
3219705Slinton 
3229705Slinton INCR,	FOREFF,
3239705Slinton 	AWD,	TANY,
3249705Slinton 	SCON,	TANY,
3259705Slinton 		0,	RLEFT,
3269705Slinton 		"	ZE\n",
3279705Slinton 
3289705Slinton DECR,	FOREFF,
3299705Slinton 	AWD,	TANY,
3309705Slinton 	SCON,	TANY,
3319705Slinton 		0,	RLEFT,
3329705Slinton 		"	ZE\n",
3339705Slinton 
3349705Slinton INCR,	FOREFF,
3359705Slinton 	SAREG,	TWORD,
3369705Slinton 	SCON,	TANY,
3379705Slinton 		0,	RLEFT,
3389705Slinton 		"	ZE\n",
3399705Slinton 
3409705Slinton DECR,	FOREFF,
3419705Slinton 	SAREG,	TWORD,
3429705Slinton 	SCON,	TANY,
3439705Slinton 		0,	RLEFT,
3449705Slinton 		"	ZE\n",
3459705Slinton 
3469705Slinton /* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */
3479705Slinton 
3489705Slinton INCR,	INAREG|INTAREG,
3499705Slinton 	AWD,	TANY,
3509705Slinton 	SCON,	TANY,
3519705Slinton 		NAREG,	RESC1,
3529705Slinton 		"	ZD\n",
3539705Slinton 
3549705Slinton DECR,	INAREG|INTAREG,
3559705Slinton 	AWD,	TANY,
3569705Slinton 	SCON,	TANY,
3579705Slinton 		NAREG,	RESC1,
3589705Slinton 		"	ZD\n",
3599705Slinton 
3609705Slinton INCR,	INAREG|INTAREG,
3619705Slinton 	SAREG,	TWORD,
3629705Slinton 	SCON,	TANY,
3639705Slinton 		NAREG,	RESC1,
3649705Slinton 		"	ZD\n",
3659705Slinton 
3669705Slinton DECR,	INAREG|INTAREG,
3679705Slinton 	SAREG,	TWORD,
3689705Slinton 	SCON,	TANY,
3699705Slinton 		NAREG,	RESC1,
3709705Slinton 		"	ZD\n",
3719705Slinton 
3729705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
373*16182Sralph 	SAREG|AWD,	TDOUBLE,
374*16182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
375*16182Sralph 		NAREG|NASR,	RLEFT|RESCC,
376*16182Sralph 		"	movzZRl	AR,A1\n	cvtld	A1,AL\n",
377*16182Sralph 
378*16182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
379*16182Sralph 	SAREG|AWD,	TFLOAT,
380*16182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
381*16182Sralph 		NAREG|NASR,	RLEFT|RESCC,
382*16182Sralph 		"	movzZRl	AR,A1\n	cvtlf	A1,AL\n",
383*16182Sralph 
384*16182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
3859705Slinton 	SAREG|AWD,	TANY,
3869705Slinton 	SAREG|AWD,	TANY,
3879705Slinton 		0,	RLEFT|RRIGHT|RESCC,
3889705Slinton 		"	ZA\n",
3899705Slinton 
3909705Slinton ASSIGN,	INAREG|FOREFF,
3919705Slinton 	SFLD,	TANY,
3929705Slinton 	SAREG|AWD,	TWORD,
3939705Slinton 		0,	RRIGHT,
3949705Slinton 		"	insv	AR,$H,$S,AL\n",
3959705Slinton 
3969705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
3979705Slinton 	SAREG|AWD,	TWORD,
3989705Slinton 	SFLD,	ANYSIGNED,
3999705Slinton 		0,	RLEFT|RESCC,
4009705Slinton 		"	extv	$H,$S,AR,AL\n",
4019705Slinton 
4029705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
4039705Slinton 	SAREG|AWD,	TWORD,
4049705Slinton 	SFLD,	ANYUSIGNED,
4059705Slinton 		0,	RLEFT|RESCC,
4069705Slinton 		"	extzv	$H,$S,AR,AL\n",
4079705Slinton 
4089705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
4099705Slinton UNARY MUL,	FOREFF,
4109705Slinton 	SCC,	TANY,
4119705Slinton 	SCC,	TANY,
4129705Slinton 		0,	RNULL,
4139705Slinton 		"	HELP HELP HELP\n",
4149705Slinton 
4159705Slinton REG,	INTEMP,
4169705Slinton 	SANY,	TANY,
4179705Slinton 	SAREG,	TDOUBLE,
4189705Slinton 		2*NTEMP,	RESC1,
4199705Slinton 		"	movd	AR,A1\n",
4209705Slinton 
4219705Slinton REG,	INTEMP,
4229705Slinton 	SANY,	TANY,
4239705Slinton 	SAREG,	TANY,
4249705Slinton 		NTEMP,	RESC1,
4259705Slinton 		"	movZF	AR,A1\n",
4269705Slinton 
4279705Slinton #ifdef FORT
4289705Slinton  REG,	FORARG,
4299705Slinton 	SANY,	TANY,
4309705Slinton 	SAREG,	TFLOAT,
4319705Slinton 		0,	RNULL,
4329705Slinton 		"	cvtfd	AR,-(sp)\n",
4339705Slinton 
4349705Slinton REG,	FORARG,
4359705Slinton 	SANY,	TANY,
4369705Slinton 	SAREG,	TDOUBLE,
4379705Slinton 		0,	RNULL,
4389705Slinton 		"	movZR	AR,-(sp)\n",
4399705Slinton #endif
4409705Slinton 
4419705Slinton OPLEAF,	FOREFF,
4429705Slinton 	SANY,	TANY,
4439705Slinton 	SAREG|AWD,	TANY,
4449705Slinton 		0,	RLEFT,
4459705Slinton 		"",
4469705Slinton 
4479705Slinton OPLTYPE,	INAREG|INTAREG,
4489705Slinton 	SANY,	TANY,
4499705Slinton 	SANY,	TANY,
4509705Slinton 		NAREG|NASR,	RESC1,
4519705Slinton 		"	ZA\n",
4529705Slinton 
4539705Slinton OPLTYPE,	FORCC,
4549705Slinton 	SANY,	TANY,
4559705Slinton 	SANY,	TANY,
4569705Slinton 		0,	RESCC,
4579705Slinton 		"	tstZR	AR\n",
4589705Slinton 
4599705Slinton OPLTYPE,	FORARG,
4609705Slinton 	SANY,	TANY,
4619705Slinton 	SANY,	TWORD,
4629705Slinton 		0,	RNULL,
4639705Slinton 		"	pushl	AR\n",
4649705Slinton 
4659705Slinton OPLTYPE,	FORARG,
4669705Slinton 	SANY,	TANY,
4679705Slinton 	SANY,	TCHAR|TSHORT,
4689705Slinton 		0,	RNULL,
4699705Slinton 		"	cvtZRl	AR,-(sp)\n",
4709705Slinton 
4719705Slinton OPLTYPE,	FORARG,
4729705Slinton 	SANY,	TANY,
4739705Slinton 	SANY,	TUCHAR|TUSHORT,
4749705Slinton 		0,	RNULL,
4759705Slinton 		"	movzZRl	AR,-(sp)\n",
4769705Slinton 
4779705Slinton OPLTYPE,	FORARG,
4789705Slinton 	SANY,	TANY,
4799705Slinton 	SANY,	TDOUBLE,
4809705Slinton 		0,	RNULL,
4819705Slinton 		"	movd	AR,-(sp)\n",
4829705Slinton 
4839705Slinton OPLTYPE,	FORARG,
4849705Slinton 	SANY,	TANY,
4859705Slinton 	SANY,	TFLOAT,
4869705Slinton 		0,	RNULL,
4879705Slinton 		"	cvtfd	AR,-(sp)\n",
4889705Slinton 
489*16182Sralph #ifdef FORT
4909705Slinton UNARY MINUS,	INTAREG|FORCC,
491*16182Sralph 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG|TFLOAT|TDOUBLE,
492*16182Sralph 	SANY,	TANY,
493*16182Sralph 		NAREG|NASL,	RESC1|RESCC,
494*16182Sralph 		"	mnegZL	TAL,A1\n",
495*16182Sralph 
496*16182Sralph #else
497*16182Sralph 
498*16182Sralph UNARY MINUS,	INTAREG|FORCC,
4999705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE,
5009705Slinton 	SANY,	TANY,
5019705Slinton 		NAREG|NASL,	RESC1|RESCC,
5029705Slinton 		"	mnegZL	AL,A1\n",
503*16182Sralph #endif
5049705Slinton 
5059705Slinton COMPL,	INTAREG|FORCC,
5069705Slinton 	SAREG|AWD,	TINT|TUNSIGNED,
5079705Slinton 	SANY,	TANY,
5089705Slinton 		NAREG|NASL,	RESC1|RESCC,
5099705Slinton 		"	mcomZL	AL,A1\n",
5109705Slinton 
5119705Slinton COMPL,	INTAREG|FORCC,
5129705Slinton 	SAREG|AWD,	ANYSIGNED|ANYUSIGNED,
5139705Slinton 	SANY,	TANY,
5149705Slinton 		NAREG|NASL,	RESC1|RESCC,
5159705Slinton 		"	cvtZLl	AL,A1\n	mcoml	A1,A1\n",
5169705Slinton 
5179705Slinton AND,	FORCC,
5189705Slinton 	SAREG|AWD,	TWORD,
5199705Slinton 	SCON,	TWORD,
5209705Slinton 		0,	RESCC,
5219705Slinton 		"	bitl	ZZ,AL\n",
5229705Slinton 
5239705Slinton AND,	FORCC,
5249705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
5259705Slinton 	SSCON,	TWORD,
5269705Slinton 		0,	RESCC,
5279705Slinton 		"	bitw	ZZ,AL\n",
5289705Slinton 
5299705Slinton AND,	FORCC,
5309705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
5319705Slinton 	SCCON,	TWORD,
5329705Slinton 		0,	RESCC,
5339705Slinton 		"	bitb	ZZ,AL\n",
5349705Slinton 
5359705Slinton ASG AND,	INAREG|FOREFF|FORCC,
5369705Slinton 	SAREG,	TWORD,
5379705Slinton 	SCON,	TWORD,
5389705Slinton 		0,	RLEFT|RESCC,
5399705Slinton 		"	bicl2	AR,AL\n",
5409705Slinton 
5419705Slinton ASG OPMUL,	INAREG|FOREFF|FORCC,
5429705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5439705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5449705Slinton 		0,	RLEFT|RESCC,
5459705Slinton 		"	OL2	AR,AL\n",
5469705Slinton 
5479705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5489705Slinton 	STAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5499705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5509705Slinton 		0,	RLEFT|RESCC,
5519705Slinton 		"	OL2	AR,AL\n",
5529705Slinton 
5539705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5549705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5559705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5569705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
5579705Slinton 		"	OL3	AR,AL,A1\n",
5589705Slinton 
5599705Slinton ASG MOD,	INAREG|INTAREG|FOREFF|FORCC,
5609705Slinton 	SAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5619705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5629705Slinton 		NAREG,	RLEFT|RESCC,
5639705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl2	A1,AL\n",
5649705Slinton 
5659705Slinton MOD,	INAREG|INTAREG,
5669705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5679705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5689705Slinton 		NAREG,	RESC1,
5699705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl3	A1,AL,A1\n",
5709705Slinton 
5719705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5729705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5739705Slinton 	SONE,	TINT|TLONG,
5749705Slinton 		0,	RLEFT|RESCC,
5759705Slinton 		"	incZL	AL\n",
5769705Slinton 
5779705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5789705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
5799705Slinton 	SONE,	TINT|TLONG,
5809705Slinton 		0,	RLEFT|RESCC,
5819705Slinton 		"	incZL	AL\n",
5829705Slinton 
5839705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5849705Slinton 	SAREG,	TSHORT|TCHAR,
5859705Slinton 	SONE,	TINT|TLONG,
5869705Slinton 		0,	RLEFT|RESCC,
5879705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
5889705Slinton 
5899705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5909705Slinton 	SAREG,	TUSHORT|TUCHAR,
5919705Slinton 	SONE,	TINT|TLONG,
5929705Slinton 		0,	RLEFT|RESCC,
5939705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
5949705Slinton 
5959705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5969705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5979705Slinton 	SONE,	TINT|TLONG,
5989705Slinton 		0,	RLEFT|RESCC,
5999705Slinton 		"	decZL	AL\n",
6009705Slinton 
6019705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6029705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
6039705Slinton 	SONE,	TINT|TLONG,
6049705Slinton 		0,	RLEFT|RESCC,
6059705Slinton 		"	decZL	AL\n",
6069705Slinton 
6079705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6089705Slinton 	SAREG,	TSHORT|TCHAR,
6099705Slinton 	SONE,	TINT|TLONG,
6109705Slinton 		0,	RLEFT|RESCC,
6119705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6129705Slinton 
6139705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6149705Slinton 	SAREG,	TUSHORT|TUCHAR,
6159705Slinton 	SONE,	TINT|TLONG,
6169705Slinton 		0,	RLEFT|RESCC,
6179705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6189705Slinton 
6199705Slinton PLUS,	INAREG|INTAREG|FORCC,
6209705Slinton 	STAREG,	TWORD,
6219705Slinton 	SONE,	TWORD,
6229705Slinton 		0,	RLEFT|RESCC,
6239705Slinton 		"	incZL	AL\n",
6249705Slinton 
6259705Slinton PLUS,	INAREG|INTAREG|FORCC,
6269705Slinton 	STAREG,	TSHORT|TCHAR,
6279705Slinton 	SONE,	TWORD,
6289705Slinton 		0,	RLEFT|RESCC,
6299705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
6309705Slinton 
6319705Slinton PLUS,	INAREG|INTAREG|FORCC,
6329705Slinton 	STAREG,	TUSHORT|TUCHAR,
6339705Slinton 	SONE,	TWORD,
6349705Slinton 		0,	RLEFT|RESCC,
6359705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
6369705Slinton 
6379705Slinton MINUS,	INAREG|INTAREG|FORCC,
6389705Slinton 	STAREG,	TWORD,
6399705Slinton 	SONE,	TWORD,
6409705Slinton 		0,	RLEFT|RESCC,
6419705Slinton 		"	decZL	AL\n",
6429705Slinton 
6439705Slinton MINUS,	INAREG|INTAREG|FORCC,
6449705Slinton 	STAREG,	TSHORT|TCHAR,
6459705Slinton 	SONE,	TWORD,
6469705Slinton 		0,	RLEFT|RESCC,
6479705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6489705Slinton 
6499705Slinton MINUS,	INAREG|INTAREG|FORCC,
6509705Slinton 	STAREG,	TUSHORT|TUCHAR,
6519705Slinton 	SONE,	TWORD,
6529705Slinton 		0,	RLEFT|RESCC,
6539705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6549705Slinton 
6559705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6569705Slinton 	SAREG|AWD,	TWORD,
6579705Slinton 	SAREG|AWD,	TWORD,
6589705Slinton 		0,	RLEFT|RESCC,
6599705Slinton 		"	OL2	AR,AL\n",
6609705Slinton 
6619705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6629705Slinton 	SAREG,	TWORD,
6639705Slinton 	SAREG,	TSHORT|TUSHORT|TCHAR|TUCHAR,
6649705Slinton 		0,	RLEFT|RESCC,
6659705Slinton 		"	OL2	AR,AL\n",
6669705Slinton 
6679705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6689705Slinton 	AWD,	TSHORT|TUSHORT,
6699705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
6709705Slinton 		0,	RLEFT|RESCC,
6719705Slinton 		"	OW2	AR,AL\n",
6729705Slinton 
6739705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6749705Slinton 	AWD,	TSHORT|TUSHORT,
6759705Slinton 	SSCON,	TWORD,
6769705Slinton 		0,	RLEFT|RESCC,
6779705Slinton 		"	OW2	AR,AL\n",
6789705Slinton 
6799705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6809705Slinton 	AWD,	TCHAR|TUCHAR,
6819705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
6829705Slinton 		0,	RLEFT|RESCC,
6839705Slinton 		"	OB2	AR,AL\n",
6849705Slinton 
6859705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6869705Slinton 	AWD,	TCHAR|TUCHAR,
6879705Slinton 	SCCON,	TWORD,
6889705Slinton 		0,	RLEFT|RESCC,
6899705Slinton 		"	OB2	AR,AL\n",
6909705Slinton 
6919705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6929705Slinton 	SAREG,	TSHORT,
6939705Slinton 	SAREG|AWD,	ANYFIXED,
6949705Slinton 		0,	RLEFT|RESCC,
6959705Slinton 		"	OW2	AR,AL\n	cvtZLl	AL,AL\n",
6969705Slinton 
6979705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6989705Slinton 	SAREG,	TUSHORT,
6999705Slinton 	SAREG|AWD,	ANYFIXED,
7009705Slinton 		0,	RLEFT|RESCC,
7019705Slinton 		"	OW2	AR,AL\n	movzZLl	AL,AL\n",
7029705Slinton 
7039705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
7049705Slinton 	SAREG,	TCHAR,
7059705Slinton 	SAREG|AWD,	ANYFIXED,
7069705Slinton 		0,	RLEFT|RESCC,
7079705Slinton 		"	OB2	AR,AL\n	cvtZLl	AL,AL\n",
7089705Slinton 
7099705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
7109705Slinton 	SAREG,	TUCHAR,
7119705Slinton 	SAREG|AWD,	ANYFIXED,
7129705Slinton 		0,	RLEFT|RESCC,
7139705Slinton 		"	OB2	AR,AL\n	movzZLl	AL,AL\n",
7149705Slinton 
7159705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7169705Slinton 	STAREG,	ANYFIXED,
7179705Slinton 	SAREG|AWD,	TWORD,
7189705Slinton 		0,	RLEFT|RESCC,
7199705Slinton 		"	OL2	AR,AL\n",
7209705Slinton 
7219705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7229705Slinton 	SAREG|AWD,	TWORD,
7239705Slinton 	SAREG|AWD,	TWORD,
7249705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7259705Slinton 		"	OL3	AR,AL,A1\n",
7269705Slinton 
7279705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7289705Slinton 	SAREG|AWD,	TDOUBLE,
7299705Slinton 	SAREG|AWD,	TDOUBLE,
7309705Slinton 		0,	RLEFT|RESCC,
7319705Slinton 		"	OD2	AR,AL\n",
7329705Slinton 
7339705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7349705Slinton 	SAREG|AWD,	TFLOAT,
7359705Slinton 	SAREG|AWD,	TFLOAT,
7369705Slinton 		0,	RLEFT|RESCC,
7379705Slinton 		"	OF2	AR,AL\n",
7389705Slinton 
7399705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7409705Slinton 	SAREG|AWD,	TDOUBLE,
7419705Slinton 	SAREG|AWD,	TFLOAT,
7429705Slinton 		NAREG|NASR,	RLEFT|RESCC,
7439705Slinton 		"	cvtfd	AR,A1\n	OD2	A1,AL\n",
7449705Slinton 
7459705Slinton ASG OPFLOAT,	INAREG|INTAREG|FOREFF|FORCC,
7469705Slinton 	SAREG|AWD,	TFLOAT,
7479705Slinton 	SAREG|AWD,	TDOUBLE,
7489705Slinton 		NAREG,	RLEFT|RESC1|RESCC,
7499705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n	cvtdf	A1,AL\n",
7509705Slinton 
7519705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7529705Slinton 	STAREG,	TDOUBLE,
7539705Slinton 	SAREG|AWD,	TDOUBLE,
7549705Slinton 		0,	RLEFT|RESCC,
7559705Slinton 		"	OD2	AR,AL\n",
7569705Slinton 
7579705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7589705Slinton 	SAREG|AWD,	TDOUBLE,
7599705Slinton 	SAREG|AWD,	TDOUBLE,
7609705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7619705Slinton 		"	OD3	AR,AL,A1\n",
7629705Slinton 
7639705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7649705Slinton 	SAREG|AWD,	TFLOAT,
7659705Slinton 	SAREG|AWD,	TDOUBLE,
7669705Slinton 		NAREG|NASL,	RESC1|RESCC,
7679705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n",
7689705Slinton 
7699705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7709705Slinton 	SAREG|AWD,	TDOUBLE,
7719705Slinton 	SAREG|AWD,	TFLOAT,
7729705Slinton 		NAREG|NASR,	RESC1|RESCC,
7739705Slinton 		"	cvtfd	AR,A1\n	OD3	A1,AL,A1\n",
7749705Slinton 
7759705Slinton #ifdef FORT
7769705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7779705Slinton 	STAREG,	TFLOAT,
7789705Slinton     SAREG|AWD,  TFLOAT,
7799705Slinton 		0,	RLEFT|RESCC,
7809705Slinton 		"	OF2	TAR,AL\n",
7819705Slinton 
7829705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7839705Slinton 	SAREG|AWD,	TFLOAT,
7849705Slinton 	SAREG|AWD,	TFLOAT,
7859705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7869705Slinton 		"	OF3	AR,AL,TA1\n",
7879705Slinton 
7889705Slinton #else
7899705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7909705Slinton 	SAREG|AWD,	TFLOAT,
7919705Slinton 	SAREG|AWD,	TFLOAT,
7929705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7939705Slinton 		"	OF3	AR,AL,A1\n	cvtfd	A1,A1\n",
7949705Slinton #endif
7959705Slinton 
7969705Slinton 	/* Default actions for hard trees ... */
7979705Slinton 
7989705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
7999705Slinton 
8009705Slinton UNARY MUL, DF( UNARY MUL ),
8019705Slinton 
8029705Slinton INCR, DF(INCR),
8039705Slinton 
8049705Slinton DECR, DF(INCR),
8059705Slinton 
8069705Slinton ASSIGN, DF(ASSIGN),
8079705Slinton 
8089705Slinton STASG, DF(STASG),
8099705Slinton 
8109705Slinton FLD, DF(FLD),
8119705Slinton 
8129705Slinton OPLEAF, DF(NAME),
8139705Slinton 
8149705Slinton OPLOG,	FORCC,
8159705Slinton 	SANY,	TANY,
8169705Slinton 	SANY,	TANY,
8179705Slinton 		REWRITE,	BITYPE,
8189705Slinton 		"",
8199705Slinton 
8209705Slinton OPLOG,	DF(NOT),
8219705Slinton 
8229705Slinton COMOP, DF(COMOP),
8239705Slinton 
8249705Slinton INIT, DF(INIT),
8259705Slinton 
8269705Slinton OPUNARY, DF(UNARY MINUS),
8279705Slinton 
8289705Slinton 
8299705Slinton ASG OPANY, DF(ASG PLUS),
8309705Slinton 
8319705Slinton OPANY, DF(BITYPE),
8329705Slinton 
8339705Slinton FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	"help; I'm in trouble\n" };
834