xref: /csrg-svn/old/pcc/ccom.vax/table.c (revision 16937)
1*16937Sralph static char *sccsid ="@(#)table.c	1.4 (Berkeley) 08/13/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 
3716182Sralph #ifdef FORT
389705Slinton SCONV,	INTAREG|FORCC,
3916182Sralph 	SAREG|AWD,	TDOUBLE,
4016182Sralph 	SANY,	TFLOAT,
4116182Sralph 		NAREG|NASL,	RESC1|RESCC,
4216182Sralph 		"	cvtdf	AL,A1\n",
439705Slinton 
449705Slinton SCONV,	INTAREG|FORCC,
45*16937Sralph 	SAREG|AWD,	ANYSIGNED|TUNSIGNED|TULONG,
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,
6416182Sralph 	SAREG|AWD,	TANY,
659705Slinton 	SANY,	TANY,
669705Slinton 		NAREG|NASL,	RESC1|RESCC,
6716182Sralph 		"	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 		0,	RNULL,
1129705Slinton 		"	subl2	ZT,sp\nZS",
1139705Slinton 
1149705Slinton STASG,	FOREFF,
1159705Slinton 	SNAME|SOREG,	TANY,
1169705Slinton 	SCON|SAREG,	TANY,
1179705Slinton 		0,	RNOP,
1189705Slinton 		"ZS",
1199705Slinton 
1209705Slinton STASG,	INAREG,
1219705Slinton 	SNAME|SOREG,	TANY,
1229705Slinton 	SCON,	TANY,
1239705Slinton 		NAREG,	RESC1,
1249705Slinton 		"ZS	movl	AR,A1\n",
1259705Slinton 
1269705Slinton STASG,	INAREG,
1279705Slinton 	SNAME|SOREG,	TANY,
1289705Slinton 	SAREG,	TANY,
1299705Slinton 		0,	RRIGHT,
1309705Slinton 		"	pushl	AR\nZS	movl	(sp)+,AR\n",
1319705Slinton 
1329705Slinton FLD,	INAREG|INTAREG,
1339705Slinton 	SANY,	TANY,
1349705Slinton 	SFLD,	ANYSIGNED,
1359705Slinton 		NAREG|NASR,	RESC1,
1369705Slinton 		"	extv	$H,$S,AR,A1\n",
1379705Slinton 
1389705Slinton FLD,	INAREG|INTAREG,
1399705Slinton 	SANY,	TANY,
1409705Slinton 	SFLD,	ANYUSIGNED,
1419705Slinton 		NAREG|NASR,	RESC1,
1429705Slinton 		"	extzv	$H,$S,AR,A1\n",
1439705Slinton 
1449705Slinton FLD,	FORARG,
1459705Slinton 	SANY,	TANY,
1469705Slinton 	SFLD,	ANYSIGNED,
1479705Slinton 		0,	RNULL,
1489705Slinton 		"	extv	$H,$S,AR,-(sp)\n",
1499705Slinton 
1509705Slinton FLD,	FORARG,
1519705Slinton 	SANY,	TANY,
1529705Slinton 	SFLD,	ANYUSIGNED,
1539705Slinton 		0,	RNULL,
1549705Slinton 		"	extzv	$H,$S,AR,-(sp)\n",
1559705Slinton 
1569705Slinton OPLOG,	FORCC,
1579705Slinton 	SAREG|AWD,	TWORD,
1589705Slinton 	SAREG|AWD,	TWORD,
1599705Slinton 		0,	RESCC,
1609705Slinton 		"	cmpl	AL,AR\nZP",
1619705Slinton 
1629705Slinton OPLOG,	FORCC,
1639705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1649705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1659705Slinton 		0,	RESCC,
1669705Slinton 		"	cmpw	AL,AR\nZP",
1679705Slinton 
1689705Slinton OPLOG,	FORCC,
1699705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
1709705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
1719705Slinton 		0,	RESCC,
1729705Slinton 		"	cmpb	AL,AR\nZP",
1739705Slinton 
1749705Slinton OPLOG,	FORCC,
1759705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1769705Slinton 	SSCON,	TANY,
1779705Slinton 		0,	RESCC,
1789705Slinton 		"	cmpw	AL,AR\nZP",
1799705Slinton 
1809705Slinton OPLOG,	FORCC,
1819705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
1829705Slinton 	SCCON,	TANY,
1839705Slinton 		0,	RESCC,
1849705Slinton 		"	cmpb	AL,AR\nZP",
1859705Slinton 
1869705Slinton OPLOG,	FORCC,
1879705Slinton 	SAREG|AWD,	TDOUBLE,
1889705Slinton 	SAREG|AWD,	TDOUBLE,
1899705Slinton 		0,	RESCC,
1909705Slinton 		"	cmpd	AL,AR\nZP",
1919705Slinton 
1929705Slinton OPLOG,	FORCC,
1939705Slinton 	SAREG|AWD,	TDOUBLE,
1949705Slinton 	SAREG|AWD,	TFLOAT,
19516182Sralph 		NAREG,	RESCC,
1969705Slinton 		"	cvtfd	AR,A1\n	cmpd	AL,A1\nZP",
1979705Slinton 
1989705Slinton OPLOG,	FORCC,
1999705Slinton 	SAREG|AWD,	TFLOAT,
2009705Slinton 	SAREG|AWD,	TDOUBLE,
20116182Sralph 		NAREG,	RESCC,
2029705Slinton 		"	cvtfd	AL,A1\n	cmpd	A1,AR\nZP",
2039705Slinton 
2049705Slinton OPLOG,	FORCC,
2059705Slinton 	SAREG|AWD,	TFLOAT,
2069705Slinton 	SAREG|AWD,	TFLOAT,
2079705Slinton 		0,	RESCC,
2089705Slinton 		"	cmpf	AL,AR\nZP",
2099705Slinton 
2109705Slinton CCODES,	INAREG|INTAREG,
2119705Slinton 	SANY,	TANY,
2129705Slinton 	SANY,	TANY,
2139705Slinton 		NAREG,	RESC1,
2149705Slinton 		"	movl	$1,A1\nZN",
2159705Slinton 
21616182Sralph #ifdef FORT
2179705Slinton UNARY CALL,	INTAREG,
2189705Slinton 	SCON,	TANY,
21916182Sralph 	SANY,	TFLOAT,
22016182Sralph 		NAREG|NASL,	RESC1,
22116182Sralph 		"	calls	ZC,CL\n",
22216182Sralph 
22316182Sralph UNARY CALL,	INTAREG,
22416182Sralph 	SCON,	TANY,
22516182Sralph 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TDOUBLE,
2269705Slinton 		NAREG|NASL,	RESC1, /* should be register 0 */
2279705Slinton 		"	calls	ZC,CL\n",
2289705Slinton 
22916182Sralph #else
23016182Sralph 
2319705Slinton UNARY CALL,	INTAREG,
23216182Sralph 	SCON,	TANY,
23316182Sralph 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
23416182Sralph 		NAREG|NASL,	RESC1,
23516182Sralph 		"	calls	ZC,CL\n",
23616182Sralph #endif
23716182Sralph 
23816182Sralph UNARY CALL,	INTAREG,
2399705Slinton 	SAREG,	TANY,
2409705Slinton 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
2419705Slinton 		NAREG|NASL,	RESC1,	/* should be 0 */
2429705Slinton 		"	calls	ZC,(AL)\n",
2439705Slinton 
2449705Slinton UNARY CALL,	INAREG|INTAREG,
2459705Slinton 	SNAME,	TANY,
2469705Slinton 	SANY,	TANY,
2479705Slinton 		NAREG|NASL,	RESC1,	/* really reg 0 */
2489705Slinton 		"	calls	ZC,*AL\n",
2499705Slinton 
2509705Slinton UNARY CALL,	INAREG|INTAREG,
2519705Slinton 	SSOREG,	TANY,
2529705Slinton 	SANY,	TANY,
2539705Slinton 		NAREG|NASL,	RESC1,	/* really reg 0 */
2549705Slinton 		"	calls	ZC,*AL\n",
2559705Slinton 
2569705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2579705Slinton 	SAREG,	TWORD,
2589705Slinton 	SCON,	TINT,
2599705Slinton 		0,	RLEFT|RESCC,
2609705Slinton 		"	extzv	AR,ZU,AL,AL\n",
2619705Slinton 
2629705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2639705Slinton 	SAREG,	TWORD,
2649705Slinton 	SAREG,	ANYFIXED,
2659705Slinton 		NAREG,	RLEFT|RESCC,
2669705Slinton 		"	subl3	AR,$32,A1\n	extzv	AR,A1,AL,AL\n",
2679705Slinton 
2689705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2699705Slinton 	SAREG,	TWORD,
2709705Slinton 	SAREG|AWD,	TWORD,
2719705Slinton 		NAREG,	RLEFT|RESCC,
2729705Slinton 		"	subl3	AR,$32,A1\n	extzv	AR,A1,AL,AL\n",
2739705Slinton 
2749705Slinton RS,	INAREG|INTAREG|FORCC,
2759705Slinton 	SAREG,	TWORD,
2769705Slinton 	SCON,	TINT,
2779705Slinton 		NAREG|NASL,	RESC1|RESCC,
2789705Slinton 		"	extzv	AR,ZU,AL,A1\n",
2799705Slinton 
2809705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2819705Slinton 	SAREG|AWD,	TWORD,
2829705Slinton 	SAREG|NIAWD,	ANYSIGNED|ANYUSIGNED,
2839705Slinton 		0,	RLEFT|RESCC,
2849705Slinton 		"	ashl	AR,AL,AL\n",
2859705Slinton 
2869705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2879705Slinton 	SAREG|AWD,	TWORD,
2889705Slinton 	SSOREG,	ANYSIGNED|ANYUSIGNED,
2899705Slinton 		0,	RLEFT|RESCC,
2909705Slinton 		"	ashl	AR,AL,AL\n",
2919705Slinton 
2929705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2939705Slinton 	SAREG|AWD,	TWORD,
2949705Slinton 	SOREG,	ANYSIGNED|ANYUSIGNED,
2959705Slinton 		NAREG,	RLEFT|RESCC,
2969705Slinton 		"	ZB	AR,A1\n	ashl	A1,AL,AL\n",
2979705Slinton 
2989705Slinton LS,	INAREG|INTAREG|FORCC,
2999705Slinton 	SAREG|AWD,	TWORD,
3009705Slinton 	SAREG|NIAWD,	ANYSIGNED|ANYUSIGNED,
3019705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
3029705Slinton 		"	ashl	AR,AL,A1\n",
3039705Slinton 
3049705Slinton LS,	INAREG|INTAREG|FORCC,
3059705Slinton 	SAREG|AWD,	TWORD,
3069705Slinton 	SSOREG,	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 	SOREG,	ANYSIGNED|ANYUSIGNED,
3139705Slinton 		NAREG|NASR,	RESC1|RESCC,
3149705Slinton 		"	ZB	AR,A1\n	ashl	A1,AL,A1\n",
3159705Slinton 
3169705Slinton INCR,	FOREFF,
3179705Slinton 	AWD,	TANY,
3189705Slinton 	SCON,	TANY,
3199705Slinton 		0,	RLEFT,
3209705Slinton 		"	ZE\n",
3219705Slinton 
3229705Slinton DECR,	FOREFF,
3239705Slinton 	AWD,	TANY,
3249705Slinton 	SCON,	TANY,
3259705Slinton 		0,	RLEFT,
3269705Slinton 		"	ZE\n",
3279705Slinton 
3289705Slinton INCR,	FOREFF,
3299705Slinton 	SAREG,	TWORD,
3309705Slinton 	SCON,	TANY,
3319705Slinton 		0,	RLEFT,
3329705Slinton 		"	ZE\n",
3339705Slinton 
3349705Slinton DECR,	FOREFF,
3359705Slinton 	SAREG,	TWORD,
3369705Slinton 	SCON,	TANY,
3379705Slinton 		0,	RLEFT,
3389705Slinton 		"	ZE\n",
3399705Slinton 
3409705Slinton /* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */
3419705Slinton 
3429705Slinton INCR,	INAREG|INTAREG,
3439705Slinton 	AWD,	TANY,
3449705Slinton 	SCON,	TANY,
3459705Slinton 		NAREG,	RESC1,
3469705Slinton 		"	ZD\n",
3479705Slinton 
3489705Slinton DECR,	INAREG|INTAREG,
3499705Slinton 	AWD,	TANY,
3509705Slinton 	SCON,	TANY,
3519705Slinton 		NAREG,	RESC1,
3529705Slinton 		"	ZD\n",
3539705Slinton 
3549705Slinton INCR,	INAREG|INTAREG,
3559705Slinton 	SAREG,	TWORD,
3569705Slinton 	SCON,	TANY,
3579705Slinton 		NAREG,	RESC1,
3589705Slinton 		"	ZD\n",
3599705Slinton 
3609705Slinton DECR,	INAREG|INTAREG,
3619705Slinton 	SAREG,	TWORD,
3629705Slinton 	SCON,	TANY,
3639705Slinton 		NAREG,	RESC1,
3649705Slinton 		"	ZD\n",
3659705Slinton 
3669705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
36716182Sralph 	SAREG|AWD,	TDOUBLE,
36816182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
36916182Sralph 		NAREG|NASR,	RLEFT|RESCC,
37016182Sralph 		"	movzZRl	AR,A1\n	cvtld	A1,AL\n",
37116182Sralph 
37216182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
37316182Sralph 	SAREG|AWD,	TFLOAT,
37416182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
37516182Sralph 		NAREG|NASR,	RLEFT|RESCC,
37616182Sralph 		"	movzZRl	AR,A1\n	cvtlf	A1,AL\n",
37716182Sralph 
37816182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
3799705Slinton 	SAREG|AWD,	TANY,
3809705Slinton 	SAREG|AWD,	TANY,
3819705Slinton 		0,	RLEFT|RRIGHT|RESCC,
3829705Slinton 		"	ZA\n",
3839705Slinton 
3849705Slinton ASSIGN,	INAREG|FOREFF,
3859705Slinton 	SFLD,	TANY,
3869705Slinton 	SAREG|AWD,	TWORD,
3879705Slinton 		0,	RRIGHT,
3889705Slinton 		"	insv	AR,$H,$S,AL\n",
3899705Slinton 
3909705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
3919705Slinton 	SAREG|AWD,	TWORD,
3929705Slinton 	SFLD,	ANYSIGNED,
3939705Slinton 		0,	RLEFT|RESCC,
3949705Slinton 		"	extv	$H,$S,AR,AL\n",
3959705Slinton 
3969705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
3979705Slinton 	SAREG|AWD,	TWORD,
3989705Slinton 	SFLD,	ANYUSIGNED,
3999705Slinton 		0,	RLEFT|RESCC,
4009705Slinton 		"	extzv	$H,$S,AR,AL\n",
4019705Slinton 
4029705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
4039705Slinton UNARY MUL,	FOREFF,
4049705Slinton 	SCC,	TANY,
4059705Slinton 	SCC,	TANY,
4069705Slinton 		0,	RNULL,
4079705Slinton 		"	HELP HELP HELP\n",
4089705Slinton 
4099705Slinton REG,	INTEMP,
4109705Slinton 	SANY,	TANY,
4119705Slinton 	SAREG,	TDOUBLE,
4129705Slinton 		2*NTEMP,	RESC1,
4139705Slinton 		"	movd	AR,A1\n",
4149705Slinton 
4159705Slinton REG,	INTEMP,
4169705Slinton 	SANY,	TANY,
4179705Slinton 	SAREG,	TANY,
4189705Slinton 		NTEMP,	RESC1,
4199705Slinton 		"	movZF	AR,A1\n",
4209705Slinton 
4219705Slinton #ifdef FORT
4229705Slinton  REG,	FORARG,
4239705Slinton 	SANY,	TANY,
4249705Slinton 	SAREG,	TFLOAT,
4259705Slinton 		0,	RNULL,
4269705Slinton 		"	cvtfd	AR,-(sp)\n",
4279705Slinton 
4289705Slinton REG,	FORARG,
4299705Slinton 	SANY,	TANY,
4309705Slinton 	SAREG,	TDOUBLE,
4319705Slinton 		0,	RNULL,
4329705Slinton 		"	movZR	AR,-(sp)\n",
4339705Slinton #endif
4349705Slinton 
4359705Slinton OPLEAF,	FOREFF,
4369705Slinton 	SANY,	TANY,
4379705Slinton 	SAREG|AWD,	TANY,
4389705Slinton 		0,	RLEFT,
4399705Slinton 		"",
4409705Slinton 
4419705Slinton OPLTYPE,	INAREG|INTAREG,
4429705Slinton 	SANY,	TANY,
4439705Slinton 	SANY,	TANY,
4449705Slinton 		NAREG|NASR,	RESC1,
4459705Slinton 		"	ZA\n",
4469705Slinton 
4479705Slinton OPLTYPE,	FORCC,
4489705Slinton 	SANY,	TANY,
4499705Slinton 	SANY,	TANY,
4509705Slinton 		0,	RESCC,
4519705Slinton 		"	tstZR	AR\n",
4529705Slinton 
4539705Slinton OPLTYPE,	FORARG,
4549705Slinton 	SANY,	TANY,
4559705Slinton 	SANY,	TWORD,
4569705Slinton 		0,	RNULL,
4579705Slinton 		"	pushl	AR\n",
4589705Slinton 
4599705Slinton OPLTYPE,	FORARG,
4609705Slinton 	SANY,	TANY,
4619705Slinton 	SANY,	TCHAR|TSHORT,
4629705Slinton 		0,	RNULL,
4639705Slinton 		"	cvtZRl	AR,-(sp)\n",
4649705Slinton 
4659705Slinton OPLTYPE,	FORARG,
4669705Slinton 	SANY,	TANY,
4679705Slinton 	SANY,	TUCHAR|TUSHORT,
4689705Slinton 		0,	RNULL,
4699705Slinton 		"	movzZRl	AR,-(sp)\n",
4709705Slinton 
4719705Slinton OPLTYPE,	FORARG,
4729705Slinton 	SANY,	TANY,
4739705Slinton 	SANY,	TDOUBLE,
4749705Slinton 		0,	RNULL,
4759705Slinton 		"	movd	AR,-(sp)\n",
4769705Slinton 
4779705Slinton OPLTYPE,	FORARG,
4789705Slinton 	SANY,	TANY,
4799705Slinton 	SANY,	TFLOAT,
4809705Slinton 		0,	RNULL,
4819705Slinton 		"	cvtfd	AR,-(sp)\n",
4829705Slinton 
48316182Sralph #ifdef FORT
4849705Slinton UNARY MINUS,	INTAREG|FORCC,
48516182Sralph 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG|TFLOAT|TDOUBLE,
48616182Sralph 	SANY,	TANY,
48716182Sralph 		NAREG|NASL,	RESC1|RESCC,
48816182Sralph 		"	mnegZL	TAL,A1\n",
48916182Sralph 
49016182Sralph #else
49116182Sralph 
49216182Sralph UNARY MINUS,	INTAREG|FORCC,
4939705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE,
4949705Slinton 	SANY,	TANY,
4959705Slinton 		NAREG|NASL,	RESC1|RESCC,
4969705Slinton 		"	mnegZL	AL,A1\n",
49716182Sralph #endif
4989705Slinton 
4999705Slinton COMPL,	INTAREG|FORCC,
5009705Slinton 	SAREG|AWD,	TINT|TUNSIGNED,
5019705Slinton 	SANY,	TANY,
5029705Slinton 		NAREG|NASL,	RESC1|RESCC,
5039705Slinton 		"	mcomZL	AL,A1\n",
5049705Slinton 
5059705Slinton COMPL,	INTAREG|FORCC,
5069705Slinton 	SAREG|AWD,	ANYSIGNED|ANYUSIGNED,
5079705Slinton 	SANY,	TANY,
5089705Slinton 		NAREG|NASL,	RESC1|RESCC,
5099705Slinton 		"	cvtZLl	AL,A1\n	mcoml	A1,A1\n",
5109705Slinton 
5119705Slinton AND,	FORCC,
5129705Slinton 	SAREG|AWD,	TWORD,
5139705Slinton 	SCON,	TWORD,
5149705Slinton 		0,	RESCC,
5159705Slinton 		"	bitl	ZZ,AL\n",
5169705Slinton 
5179705Slinton AND,	FORCC,
5189705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
5199705Slinton 	SSCON,	TWORD,
5209705Slinton 		0,	RESCC,
5219705Slinton 		"	bitw	ZZ,AL\n",
5229705Slinton 
5239705Slinton AND,	FORCC,
5249705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
5259705Slinton 	SCCON,	TWORD,
5269705Slinton 		0,	RESCC,
5279705Slinton 		"	bitb	ZZ,AL\n",
5289705Slinton 
5299705Slinton ASG AND,	INAREG|FOREFF|FORCC,
5309705Slinton 	SAREG,	TWORD,
5319705Slinton 	SCON,	TWORD,
5329705Slinton 		0,	RLEFT|RESCC,
5339705Slinton 		"	bicl2	AR,AL\n",
5349705Slinton 
5359705Slinton ASG OPMUL,	INAREG|FOREFF|FORCC,
5369705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5379705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5389705Slinton 		0,	RLEFT|RESCC,
5399705Slinton 		"	OL2	AR,AL\n",
5409705Slinton 
5419705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5429705Slinton 	STAREG,	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 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5499705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5509705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
5519705Slinton 		"	OL3	AR,AL,A1\n",
5529705Slinton 
5539705Slinton ASG MOD,	INAREG|INTAREG|FOREFF|FORCC,
5549705Slinton 	SAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5559705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5569705Slinton 		NAREG,	RLEFT|RESCC,
5579705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl2	A1,AL\n",
5589705Slinton 
5599705Slinton MOD,	INAREG|INTAREG,
5609705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5619705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5629705Slinton 		NAREG,	RESC1,
5639705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl3	A1,AL,A1\n",
5649705Slinton 
5659705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5669705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5679705Slinton 	SONE,	TINT|TLONG,
5689705Slinton 		0,	RLEFT|RESCC,
5699705Slinton 		"	incZL	AL\n",
5709705Slinton 
5719705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5729705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
5739705Slinton 	SONE,	TINT|TLONG,
5749705Slinton 		0,	RLEFT|RESCC,
5759705Slinton 		"	incZL	AL\n",
5769705Slinton 
5779705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5789705Slinton 	SAREG,	TSHORT|TCHAR,
5799705Slinton 	SONE,	TINT|TLONG,
5809705Slinton 		0,	RLEFT|RESCC,
5819705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
5829705Slinton 
5839705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5849705Slinton 	SAREG,	TUSHORT|TUCHAR,
5859705Slinton 	SONE,	TINT|TLONG,
5869705Slinton 		0,	RLEFT|RESCC,
5879705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
5889705Slinton 
5899705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5909705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5919705Slinton 	SONE,	TINT|TLONG,
5929705Slinton 		0,	RLEFT|RESCC,
5939705Slinton 		"	decZL	AL\n",
5949705Slinton 
5959705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5969705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
5979705Slinton 	SONE,	TINT|TLONG,
5989705Slinton 		0,	RLEFT|RESCC,
5999705Slinton 		"	decZL	AL\n",
6009705Slinton 
6019705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6029705Slinton 	SAREG,	TSHORT|TCHAR,
6039705Slinton 	SONE,	TINT|TLONG,
6049705Slinton 		0,	RLEFT|RESCC,
6059705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6069705Slinton 
6079705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6089705Slinton 	SAREG,	TUSHORT|TUCHAR,
6099705Slinton 	SONE,	TINT|TLONG,
6109705Slinton 		0,	RLEFT|RESCC,
6119705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6129705Slinton 
6139705Slinton PLUS,	INAREG|INTAREG|FORCC,
6149705Slinton 	STAREG,	TWORD,
6159705Slinton 	SONE,	TWORD,
6169705Slinton 		0,	RLEFT|RESCC,
6179705Slinton 		"	incZL	AL\n",
6189705Slinton 
6199705Slinton PLUS,	INAREG|INTAREG|FORCC,
6209705Slinton 	STAREG,	TSHORT|TCHAR,
6219705Slinton 	SONE,	TWORD,
6229705Slinton 		0,	RLEFT|RESCC,
6239705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
6249705Slinton 
6259705Slinton PLUS,	INAREG|INTAREG|FORCC,
6269705Slinton 	STAREG,	TUSHORT|TUCHAR,
6279705Slinton 	SONE,	TWORD,
6289705Slinton 		0,	RLEFT|RESCC,
6299705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
6309705Slinton 
6319705Slinton MINUS,	INAREG|INTAREG|FORCC,
6329705Slinton 	STAREG,	TWORD,
6339705Slinton 	SONE,	TWORD,
6349705Slinton 		0,	RLEFT|RESCC,
6359705Slinton 		"	decZL	AL\n",
6369705Slinton 
6379705Slinton MINUS,	INAREG|INTAREG|FORCC,
6389705Slinton 	STAREG,	TSHORT|TCHAR,
6399705Slinton 	SONE,	TWORD,
6409705Slinton 		0,	RLEFT|RESCC,
6419705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6429705Slinton 
6439705Slinton MINUS,	INAREG|INTAREG|FORCC,
6449705Slinton 	STAREG,	TUSHORT|TUCHAR,
6459705Slinton 	SONE,	TWORD,
6469705Slinton 		0,	RLEFT|RESCC,
6479705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6489705Slinton 
6499705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6509705Slinton 	SAREG|AWD,	TWORD,
6519705Slinton 	SAREG|AWD,	TWORD,
6529705Slinton 		0,	RLEFT|RESCC,
6539705Slinton 		"	OL2	AR,AL\n",
6549705Slinton 
6559705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6569705Slinton 	SAREG,	TWORD,
6579705Slinton 	SAREG,	TSHORT|TUSHORT|TCHAR|TUCHAR,
6589705Slinton 		0,	RLEFT|RESCC,
6599705Slinton 		"	OL2	AR,AL\n",
6609705Slinton 
6619705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6629705Slinton 	AWD,	TSHORT|TUSHORT,
6639705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
6649705Slinton 		0,	RLEFT|RESCC,
6659705Slinton 		"	OW2	AR,AL\n",
6669705Slinton 
6679705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6689705Slinton 	AWD,	TSHORT|TUSHORT,
6699705Slinton 	SSCON,	TWORD,
6709705Slinton 		0,	RLEFT|RESCC,
6719705Slinton 		"	OW2	AR,AL\n",
6729705Slinton 
6739705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6749705Slinton 	AWD,	TCHAR|TUCHAR,
6759705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
6769705Slinton 		0,	RLEFT|RESCC,
6779705Slinton 		"	OB2	AR,AL\n",
6789705Slinton 
6799705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6809705Slinton 	AWD,	TCHAR|TUCHAR,
6819705Slinton 	SCCON,	TWORD,
6829705Slinton 		0,	RLEFT|RESCC,
6839705Slinton 		"	OB2	AR,AL\n",
6849705Slinton 
6859705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6869705Slinton 	SAREG,	TSHORT,
6879705Slinton 	SAREG|AWD,	ANYFIXED,
6889705Slinton 		0,	RLEFT|RESCC,
6899705Slinton 		"	OW2	AR,AL\n	cvtZLl	AL,AL\n",
6909705Slinton 
6919705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6929705Slinton 	SAREG,	TUSHORT,
6939705Slinton 	SAREG|AWD,	ANYFIXED,
6949705Slinton 		0,	RLEFT|RESCC,
6959705Slinton 		"	OW2	AR,AL\n	movzZLl	AL,AL\n",
6969705Slinton 
6979705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6989705Slinton 	SAREG,	TCHAR,
6999705Slinton 	SAREG|AWD,	ANYFIXED,
7009705Slinton 		0,	RLEFT|RESCC,
7019705Slinton 		"	OB2	AR,AL\n	cvtZLl	AL,AL\n",
7029705Slinton 
7039705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
7049705Slinton 	SAREG,	TUCHAR,
7059705Slinton 	SAREG|AWD,	ANYFIXED,
7069705Slinton 		0,	RLEFT|RESCC,
7079705Slinton 		"	OB2	AR,AL\n	movzZLl	AL,AL\n",
7089705Slinton 
7099705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7109705Slinton 	STAREG,	ANYFIXED,
7119705Slinton 	SAREG|AWD,	TWORD,
7129705Slinton 		0,	RLEFT|RESCC,
7139705Slinton 		"	OL2	AR,AL\n",
7149705Slinton 
7159705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7169705Slinton 	SAREG|AWD,	TWORD,
7179705Slinton 	SAREG|AWD,	TWORD,
7189705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7199705Slinton 		"	OL3	AR,AL,A1\n",
7209705Slinton 
7219705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7229705Slinton 	SAREG|AWD,	TDOUBLE,
7239705Slinton 	SAREG|AWD,	TDOUBLE,
7249705Slinton 		0,	RLEFT|RESCC,
7259705Slinton 		"	OD2	AR,AL\n",
7269705Slinton 
7279705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7289705Slinton 	SAREG|AWD,	TFLOAT,
7299705Slinton 	SAREG|AWD,	TFLOAT,
7309705Slinton 		0,	RLEFT|RESCC,
731*16937Sralph #ifdef FORT
732*16937Sralph 		"	OF2	AR,TAL\n",
733*16937Sralph #else
7349705Slinton 		"	OF2	AR,AL\n",
735*16937Sralph #endif
7369705Slinton 
7379705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7389705Slinton 	SAREG|AWD,	TDOUBLE,
7399705Slinton 	SAREG|AWD,	TFLOAT,
7409705Slinton 		NAREG|NASR,	RLEFT|RESCC,
7419705Slinton 		"	cvtfd	AR,A1\n	OD2	A1,AL\n",
7429705Slinton 
7439705Slinton ASG OPFLOAT,	INAREG|INTAREG|FOREFF|FORCC,
7449705Slinton 	SAREG|AWD,	TFLOAT,
7459705Slinton 	SAREG|AWD,	TDOUBLE,
7469705Slinton 		NAREG,	RLEFT|RESC1|RESCC,
7479705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n	cvtdf	A1,AL\n",
7489705Slinton 
7499705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7509705Slinton 	STAREG,	TDOUBLE,
7519705Slinton 	SAREG|AWD,	TDOUBLE,
7529705Slinton 		0,	RLEFT|RESCC,
7539705Slinton 		"	OD2	AR,AL\n",
7549705Slinton 
7559705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7569705Slinton 	SAREG|AWD,	TDOUBLE,
7579705Slinton 	SAREG|AWD,	TDOUBLE,
7589705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7599705Slinton 		"	OD3	AR,AL,A1\n",
7609705Slinton 
7619705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7629705Slinton 	SAREG|AWD,	TFLOAT,
7639705Slinton 	SAREG|AWD,	TDOUBLE,
7649705Slinton 		NAREG|NASL,	RESC1|RESCC,
7659705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n",
7669705Slinton 
7679705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7689705Slinton 	SAREG|AWD,	TDOUBLE,
7699705Slinton 	SAREG|AWD,	TFLOAT,
7709705Slinton 		NAREG|NASR,	RESC1|RESCC,
7719705Slinton 		"	cvtfd	AR,A1\n	OD3	A1,AL,A1\n",
7729705Slinton 
7739705Slinton #ifdef FORT
7749705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
775*16937Sralph 	STAREG,		TFLOAT,
776*16937Sralph 	SAREG|AWD,	TFLOAT,
7779705Slinton 		0,	RLEFT|RESCC,
778*16937Sralph 		"	OF2	AR,TAL\n",
7799705Slinton 
7809705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7819705Slinton 	SAREG|AWD,	TFLOAT,
7829705Slinton 	SAREG|AWD,	TFLOAT,
7839705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7849705Slinton 		"	OF3	AR,AL,TA1\n",
7859705Slinton #endif
7869705Slinton 
7879705Slinton 	/* Default actions for hard trees ... */
7889705Slinton 
7899705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
7909705Slinton 
7919705Slinton UNARY MUL, DF( UNARY MUL ),
7929705Slinton 
7939705Slinton INCR, DF(INCR),
7949705Slinton 
7959705Slinton DECR, DF(INCR),
7969705Slinton 
7979705Slinton ASSIGN, DF(ASSIGN),
7989705Slinton 
7999705Slinton STASG, DF(STASG),
8009705Slinton 
8019705Slinton FLD, DF(FLD),
8029705Slinton 
8039705Slinton OPLEAF, DF(NAME),
8049705Slinton 
8059705Slinton OPLOG,	FORCC,
8069705Slinton 	SANY,	TANY,
8079705Slinton 	SANY,	TANY,
8089705Slinton 		REWRITE,	BITYPE,
8099705Slinton 		"",
8109705Slinton 
8119705Slinton OPLOG,	DF(NOT),
8129705Slinton 
8139705Slinton COMOP, DF(COMOP),
8149705Slinton 
8159705Slinton INIT, DF(INIT),
8169705Slinton 
8179705Slinton OPUNARY, DF(UNARY MINUS),
8189705Slinton 
8199705Slinton 
8209705Slinton ASG OPANY, DF(ASG PLUS),
8219705Slinton 
8229705Slinton OPANY, DF(BITYPE),
8239705Slinton 
8249705Slinton FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	"help; I'm in trouble\n" };
825