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