xref: /csrg-svn/old/pcc/ccom.vax/table.c (revision 18558)
117740Sralph #ifndef lint
2*18558Sralph static char *sccsid ="@(#)table.c	1.8 (Berkeley) 04/02/85";
317740Sralph #endif lint
417740Sralph 
5*18558Sralph # include "pass2.h"
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 
4017740Sralph #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,
10017740Sralph 	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 
2199705Slinton UNARY CALL,	INTAREG,
2209705Slinton 	SCON,	TANY,
22116182Sralph 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
22216182Sralph 		NAREG|NASL,	RESC1,
22316182Sralph 		"	calls	ZC,CL\n",
22416182Sralph 
22516182Sralph UNARY CALL,	INTAREG,
2269705Slinton 	SAREG,	TANY,
2279705Slinton 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
2289705Slinton 		NAREG|NASL,	RESC1,	/* should be 0 */
2299705Slinton 		"	calls	ZC,(AL)\n",
2309705Slinton 
2319705Slinton UNARY CALL,	INAREG|INTAREG,
2329705Slinton 	SNAME,	TANY,
2339705Slinton 	SANY,	TANY,
2349705Slinton 		NAREG|NASL,	RESC1,	/* really reg 0 */
2359705Slinton 		"	calls	ZC,*AL\n",
2369705Slinton 
2379705Slinton UNARY CALL,	INAREG|INTAREG,
2389705Slinton 	SSOREG,	TANY,
2399705Slinton 	SANY,	TANY,
2409705Slinton 		NAREG|NASL,	RESC1,	/* really reg 0 */
2419705Slinton 		"	calls	ZC,*AL\n",
2429705Slinton 
2439705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2449705Slinton 	SAREG,	TWORD,
2459705Slinton 	SCON,	TINT,
2469705Slinton 		0,	RLEFT|RESCC,
2479705Slinton 		"	extzv	AR,ZU,AL,AL\n",
2489705Slinton 
2499705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2509705Slinton 	SAREG,	TWORD,
2519705Slinton 	SAREG,	ANYFIXED,
2529705Slinton 		NAREG,	RLEFT|RESCC,
2539705Slinton 		"	subl3	AR,$32,A1\n	extzv	AR,A1,AL,AL\n",
2549705Slinton 
2559705Slinton ASG RS,	INAREG|FOREFF|FORCC,
2569705Slinton 	SAREG,	TWORD,
2579705Slinton 	SAREG|AWD,	TWORD,
2589705Slinton 		NAREG,	RLEFT|RESCC,
2599705Slinton 		"	subl3	AR,$32,A1\n	extzv	AR,A1,AL,AL\n",
2609705Slinton 
2619705Slinton RS,	INAREG|INTAREG|FORCC,
2629705Slinton 	SAREG,	TWORD,
2639705Slinton 	SCON,	TINT,
2649705Slinton 		NAREG|NASL,	RESC1|RESCC,
2659705Slinton 		"	extzv	AR,ZU,AL,A1\n",
2669705Slinton 
2679705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2689705Slinton 	SAREG|AWD,	TWORD,
2699705Slinton 	SAREG|NIAWD,	ANYSIGNED|ANYUSIGNED,
2709705Slinton 		0,	RLEFT|RESCC,
2719705Slinton 		"	ashl	AR,AL,AL\n",
2729705Slinton 
2739705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2749705Slinton 	SAREG|AWD,	TWORD,
2759705Slinton 	SSOREG,	ANYSIGNED|ANYUSIGNED,
2769705Slinton 		0,	RLEFT|RESCC,
2779705Slinton 		"	ashl	AR,AL,AL\n",
2789705Slinton 
2799705Slinton ASG LS,	INAREG|FOREFF|FORCC,
2809705Slinton 	SAREG|AWD,	TWORD,
2819705Slinton 	SOREG,	ANYSIGNED|ANYUSIGNED,
2829705Slinton 		NAREG,	RLEFT|RESCC,
2839705Slinton 		"	ZB	AR,A1\n	ashl	A1,AL,AL\n",
2849705Slinton 
2859705Slinton LS,	INAREG|INTAREG|FORCC,
2869705Slinton 	SAREG|AWD,	TWORD,
2879705Slinton 	SAREG|NIAWD,	ANYSIGNED|ANYUSIGNED,
2889705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
2899705Slinton 		"	ashl	AR,AL,A1\n",
2909705Slinton 
2919705Slinton LS,	INAREG|INTAREG|FORCC,
2929705Slinton 	SAREG|AWD,	TWORD,
2939705Slinton 	SSOREG,	ANYSIGNED|ANYUSIGNED,
2949705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
2959705Slinton 		"	ashl	AR,AL,A1\n",
2969705Slinton 
2979705Slinton LS,	INAREG|INTAREG|FORCC,
2989705Slinton 	SAREG|AWD,	TWORD,
2999705Slinton 	SOREG,	ANYSIGNED|ANYUSIGNED,
3009705Slinton 		NAREG|NASR,	RESC1|RESCC,
3019705Slinton 		"	ZB	AR,A1\n	ashl	A1,AL,A1\n",
3029705Slinton 
3039705Slinton INCR,	FOREFF,
3049705Slinton 	AWD,	TANY,
3059705Slinton 	SCON,	TANY,
3069705Slinton 		0,	RLEFT,
3079705Slinton 		"	ZE\n",
3089705Slinton 
3099705Slinton DECR,	FOREFF,
3109705Slinton 	AWD,	TANY,
3119705Slinton 	SCON,	TANY,
3129705Slinton 		0,	RLEFT,
3139705Slinton 		"	ZE\n",
3149705Slinton 
3159705Slinton INCR,	FOREFF,
3169705Slinton 	SAREG,	TWORD,
3179705Slinton 	SCON,	TANY,
3189705Slinton 		0,	RLEFT,
3199705Slinton 		"	ZE\n",
3209705Slinton 
3219705Slinton DECR,	FOREFF,
3229705Slinton 	SAREG,	TWORD,
3239705Slinton 	SCON,	TANY,
3249705Slinton 		0,	RLEFT,
3259705Slinton 		"	ZE\n",
3269705Slinton 
3279705Slinton /* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */
3289705Slinton 
3299705Slinton INCR,	INAREG|INTAREG,
3309705Slinton 	AWD,	TANY,
3319705Slinton 	SCON,	TANY,
3329705Slinton 		NAREG,	RESC1,
3339705Slinton 		"	ZD\n",
3349705Slinton 
3359705Slinton DECR,	INAREG|INTAREG,
3369705Slinton 	AWD,	TANY,
3379705Slinton 	SCON,	TANY,
3389705Slinton 		NAREG,	RESC1,
3399705Slinton 		"	ZD\n",
3409705Slinton 
3419705Slinton INCR,	INAREG|INTAREG,
3429705Slinton 	SAREG,	TWORD,
3439705Slinton 	SCON,	TANY,
3449705Slinton 		NAREG,	RESC1,
3459705Slinton 		"	ZD\n",
3469705Slinton 
3479705Slinton DECR,	INAREG|INTAREG,
3489705Slinton 	SAREG,	TWORD,
3499705Slinton 	SCON,	TANY,
3509705Slinton 		NAREG,	RESC1,
3519705Slinton 		"	ZD\n",
3529705Slinton 
3539705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
35416182Sralph 	SAREG|AWD,	TDOUBLE,
35516182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
35616182Sralph 		NAREG|NASR,	RLEFT|RESCC,
35716182Sralph 		"	movzZRl	AR,A1\n	cvtld	A1,AL\n",
35816182Sralph 
35916182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
36016182Sralph 	SAREG|AWD,	TFLOAT,
36116182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
36216182Sralph 		NAREG|NASR,	RLEFT|RESCC,
36316182Sralph 		"	movzZRl	AR,A1\n	cvtlf	A1,AL\n",
36416182Sralph 
36516182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
3669705Slinton 	SAREG|AWD,	TANY,
3679705Slinton 	SAREG|AWD,	TANY,
3689705Slinton 		0,	RLEFT|RRIGHT|RESCC,
3699705Slinton 		"	ZA\n",
3709705Slinton 
3719705Slinton ASSIGN,	INAREG|FOREFF,
3729705Slinton 	SFLD,	TANY,
3739705Slinton 	SAREG|AWD,	TWORD,
3749705Slinton 		0,	RRIGHT,
3759705Slinton 		"	insv	AR,$H,$S,AL\n",
3769705Slinton 
3779705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
3789705Slinton 	SAREG|AWD,	TWORD,
3799705Slinton 	SFLD,	ANYSIGNED,
3809705Slinton 		0,	RLEFT|RESCC,
3819705Slinton 		"	extv	$H,$S,AR,AL\n",
3829705Slinton 
3839705Slinton ASSIGN,	INAREG|FOREFF|FORCC,
3849705Slinton 	SAREG|AWD,	TWORD,
3859705Slinton 	SFLD,	ANYUSIGNED,
3869705Slinton 		0,	RLEFT|RESCC,
3879705Slinton 		"	extzv	$H,$S,AR,AL\n",
3889705Slinton 
3899705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
3909705Slinton UNARY MUL,	FOREFF,
3919705Slinton 	SCC,	TANY,
3929705Slinton 	SCC,	TANY,
3939705Slinton 		0,	RNULL,
3949705Slinton 		"	HELP HELP HELP\n",
3959705Slinton 
3969705Slinton REG,	INTEMP,
3979705Slinton 	SANY,	TANY,
3989705Slinton 	SAREG,	TDOUBLE,
3999705Slinton 		2*NTEMP,	RESC1,
4009705Slinton 		"	movd	AR,A1\n",
4019705Slinton 
4029705Slinton REG,	INTEMP,
4039705Slinton 	SANY,	TANY,
4049705Slinton 	SAREG,	TANY,
4059705Slinton 		NTEMP,	RESC1,
4069705Slinton 		"	movZF	AR,A1\n",
4079705Slinton 
40817740Sralph #if defined(FORT) || defined(SPRECC)
40917740Sralph REG,	FORARG,
4109705Slinton 	SANY,	TANY,
4119705Slinton 	SAREG,	TFLOAT,
4129705Slinton 		0,	RNULL,
4139705Slinton 		"	cvtfd	AR,-(sp)\n",
4149705Slinton 
4159705Slinton REG,	FORARG,
4169705Slinton 	SANY,	TANY,
4179705Slinton 	SAREG,	TDOUBLE,
4189705Slinton 		0,	RNULL,
4199705Slinton 		"	movZR	AR,-(sp)\n",
4209705Slinton #endif
4219705Slinton 
4229705Slinton OPLEAF,	FOREFF,
4239705Slinton 	SANY,	TANY,
4249705Slinton 	SAREG|AWD,	TANY,
4259705Slinton 		0,	RLEFT,
4269705Slinton 		"",
4279705Slinton 
4289705Slinton OPLTYPE,	INAREG|INTAREG,
4299705Slinton 	SANY,	TANY,
4309705Slinton 	SANY,	TANY,
4319705Slinton 		NAREG|NASR,	RESC1,
4329705Slinton 		"	ZA\n",
4339705Slinton 
4349705Slinton OPLTYPE,	FORCC,
4359705Slinton 	SANY,	TANY,
4369705Slinton 	SANY,	TANY,
4379705Slinton 		0,	RESCC,
4389705Slinton 		"	tstZR	AR\n",
4399705Slinton 
4409705Slinton OPLTYPE,	FORARG,
4419705Slinton 	SANY,	TANY,
4429705Slinton 	SANY,	TWORD,
4439705Slinton 		0,	RNULL,
4449705Slinton 		"	pushl	AR\n",
4459705Slinton 
4469705Slinton OPLTYPE,	FORARG,
4479705Slinton 	SANY,	TANY,
4489705Slinton 	SANY,	TCHAR|TSHORT,
4499705Slinton 		0,	RNULL,
4509705Slinton 		"	cvtZRl	AR,-(sp)\n",
4519705Slinton 
4529705Slinton OPLTYPE,	FORARG,
4539705Slinton 	SANY,	TANY,
4549705Slinton 	SANY,	TUCHAR|TUSHORT,
4559705Slinton 		0,	RNULL,
4569705Slinton 		"	movzZRl	AR,-(sp)\n",
4579705Slinton 
4589705Slinton OPLTYPE,	FORARG,
4599705Slinton 	SANY,	TANY,
4609705Slinton 	SANY,	TDOUBLE,
4619705Slinton 		0,	RNULL,
4629705Slinton 		"	movd	AR,-(sp)\n",
4639705Slinton 
4649705Slinton OPLTYPE,	FORARG,
4659705Slinton 	SANY,	TANY,
4669705Slinton 	SANY,	TFLOAT,
4679705Slinton 		0,	RNULL,
4689705Slinton 		"	cvtfd	AR,-(sp)\n",
4699705Slinton 
47017740Sralph #if defined(FORT) || defined(SPRECC)
4719705Slinton UNARY MINUS,	INTAREG|FORCC,
47216182Sralph 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG|TFLOAT|TDOUBLE,
47316182Sralph 	SANY,	TANY,
47416182Sralph 		NAREG|NASL,	RESC1|RESCC,
47516182Sralph 		"	mnegZL	TAL,A1\n",
47616182Sralph 
47716182Sralph #else
47816182Sralph 
47916182Sralph UNARY MINUS,	INTAREG|FORCC,
4809705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE,
4819705Slinton 	SANY,	TANY,
4829705Slinton 		NAREG|NASL,	RESC1|RESCC,
4839705Slinton 		"	mnegZL	AL,A1\n",
48416182Sralph #endif
4859705Slinton 
4869705Slinton COMPL,	INTAREG|FORCC,
4879705Slinton 	SAREG|AWD,	TINT|TUNSIGNED,
4889705Slinton 	SANY,	TANY,
4899705Slinton 		NAREG|NASL,	RESC1|RESCC,
4909705Slinton 		"	mcomZL	AL,A1\n",
4919705Slinton 
4929705Slinton COMPL,	INTAREG|FORCC,
4939705Slinton 	SAREG|AWD,	ANYSIGNED|ANYUSIGNED,
4949705Slinton 	SANY,	TANY,
4959705Slinton 		NAREG|NASL,	RESC1|RESCC,
4969705Slinton 		"	cvtZLl	AL,A1\n	mcoml	A1,A1\n",
4979705Slinton 
4989705Slinton AND,	FORCC,
4999705Slinton 	SAREG|AWD,	TWORD,
5009705Slinton 	SCON,	TWORD,
5019705Slinton 		0,	RESCC,
5029705Slinton 		"	bitl	ZZ,AL\n",
5039705Slinton 
5049705Slinton AND,	FORCC,
5059705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
5069705Slinton 	SSCON,	TWORD,
5079705Slinton 		0,	RESCC,
5089705Slinton 		"	bitw	ZZ,AL\n",
5099705Slinton 
5109705Slinton AND,	FORCC,
5119705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
5129705Slinton 	SCCON,	TWORD,
5139705Slinton 		0,	RESCC,
5149705Slinton 		"	bitb	ZZ,AL\n",
5159705Slinton 
5169705Slinton ASG AND,	INAREG|FOREFF|FORCC,
5179705Slinton 	SAREG,	TWORD,
5189705Slinton 	SCON,	TWORD,
5199705Slinton 		0,	RLEFT|RESCC,
5209705Slinton 		"	bicl2	AR,AL\n",
5219705Slinton 
5229705Slinton ASG OPMUL,	INAREG|FOREFF|FORCC,
5239705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5249705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5259705Slinton 		0,	RLEFT|RESCC,
5269705Slinton 		"	OL2	AR,AL\n",
5279705Slinton 
5289705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5299705Slinton 	STAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5309705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5319705Slinton 		0,	RLEFT|RESCC,
5329705Slinton 		"	OL2	AR,AL\n",
5339705Slinton 
5349705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5359705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5369705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5379705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
5389705Slinton 		"	OL3	AR,AL,A1\n",
5399705Slinton 
5409705Slinton ASG MOD,	INAREG|INTAREG|FOREFF|FORCC,
5419705Slinton 	SAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5429705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5439705Slinton 		NAREG,	RLEFT|RESCC,
5449705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl2	A1,AL\n",
5459705Slinton 
5469705Slinton MOD,	INAREG|INTAREG,
5479705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5489705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5499705Slinton 		NAREG,	RESC1,
5509705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl3	A1,AL,A1\n",
5519705Slinton 
5529705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5539705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5549705Slinton 	SONE,	TINT|TLONG,
5559705Slinton 		0,	RLEFT|RESCC,
5569705Slinton 		"	incZL	AL\n",
5579705Slinton 
5589705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5599705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
5609705Slinton 	SONE,	TINT|TLONG,
5619705Slinton 		0,	RLEFT|RESCC,
5629705Slinton 		"	incZL	AL\n",
5639705Slinton 
5649705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5659705Slinton 	SAREG,	TSHORT|TCHAR,
5669705Slinton 	SONE,	TINT|TLONG,
5679705Slinton 		0,	RLEFT|RESCC,
5689705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
5699705Slinton 
5709705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5719705Slinton 	SAREG,	TUSHORT|TUCHAR,
5729705Slinton 	SONE,	TINT|TLONG,
5739705Slinton 		0,	RLEFT|RESCC,
5749705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
5759705Slinton 
5769705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5779705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5789705Slinton 	SONE,	TINT|TLONG,
5799705Slinton 		0,	RLEFT|RESCC,
5809705Slinton 		"	decZL	AL\n",
5819705Slinton 
5829705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5839705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
5849705Slinton 	SONE,	TINT|TLONG,
5859705Slinton 		0,	RLEFT|RESCC,
5869705Slinton 		"	decZL	AL\n",
5879705Slinton 
5889705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5899705Slinton 	SAREG,	TSHORT|TCHAR,
5909705Slinton 	SONE,	TINT|TLONG,
5919705Slinton 		0,	RLEFT|RESCC,
5929705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
5939705Slinton 
5949705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5959705Slinton 	SAREG,	TUSHORT|TUCHAR,
5969705Slinton 	SONE,	TINT|TLONG,
5979705Slinton 		0,	RLEFT|RESCC,
5989705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
5999705Slinton 
6009705Slinton PLUS,	INAREG|INTAREG|FORCC,
6019705Slinton 	STAREG,	TWORD,
6029705Slinton 	SONE,	TWORD,
6039705Slinton 		0,	RLEFT|RESCC,
6049705Slinton 		"	incZL	AL\n",
6059705Slinton 
6069705Slinton PLUS,	INAREG|INTAREG|FORCC,
6079705Slinton 	STAREG,	TSHORT|TCHAR,
6089705Slinton 	SONE,	TWORD,
6099705Slinton 		0,	RLEFT|RESCC,
6109705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
6119705Slinton 
6129705Slinton PLUS,	INAREG|INTAREG|FORCC,
6139705Slinton 	STAREG,	TUSHORT|TUCHAR,
6149705Slinton 	SONE,	TWORD,
6159705Slinton 		0,	RLEFT|RESCC,
6169705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
6179705Slinton 
6189705Slinton MINUS,	INAREG|INTAREG|FORCC,
6199705Slinton 	STAREG,	TWORD,
6209705Slinton 	SONE,	TWORD,
6219705Slinton 		0,	RLEFT|RESCC,
6229705Slinton 		"	decZL	AL\n",
6239705Slinton 
6249705Slinton MINUS,	INAREG|INTAREG|FORCC,
6259705Slinton 	STAREG,	TSHORT|TCHAR,
6269705Slinton 	SONE,	TWORD,
6279705Slinton 		0,	RLEFT|RESCC,
6289705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6299705Slinton 
6309705Slinton MINUS,	INAREG|INTAREG|FORCC,
6319705Slinton 	STAREG,	TUSHORT|TUCHAR,
6329705Slinton 	SONE,	TWORD,
6339705Slinton 		0,	RLEFT|RESCC,
6349705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6359705Slinton 
6369705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6379705Slinton 	SAREG|AWD,	TWORD,
6389705Slinton 	SAREG|AWD,	TWORD,
6399705Slinton 		0,	RLEFT|RESCC,
6409705Slinton 		"	OL2	AR,AL\n",
6419705Slinton 
6429705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6439705Slinton 	SAREG,	TWORD,
6449705Slinton 	SAREG,	TSHORT|TUSHORT|TCHAR|TUCHAR,
6459705Slinton 		0,	RLEFT|RESCC,
6469705Slinton 		"	OL2	AR,AL\n",
6479705Slinton 
6489705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6499705Slinton 	AWD,	TSHORT|TUSHORT,
6509705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
6519705Slinton 		0,	RLEFT|RESCC,
6529705Slinton 		"	OW2	AR,AL\n",
6539705Slinton 
6549705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6559705Slinton 	AWD,	TSHORT|TUSHORT,
6569705Slinton 	SSCON,	TWORD,
6579705Slinton 		0,	RLEFT|RESCC,
6589705Slinton 		"	OW2	AR,AL\n",
6599705Slinton 
6609705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6619705Slinton 	AWD,	TCHAR|TUCHAR,
6629705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
6639705Slinton 		0,	RLEFT|RESCC,
6649705Slinton 		"	OB2	AR,AL\n",
6659705Slinton 
6669705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6679705Slinton 	AWD,	TCHAR|TUCHAR,
6689705Slinton 	SCCON,	TWORD,
6699705Slinton 		0,	RLEFT|RESCC,
6709705Slinton 		"	OB2	AR,AL\n",
6719705Slinton 
6729705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6739705Slinton 	SAREG,	TSHORT,
6749705Slinton 	SAREG|AWD,	ANYFIXED,
6759705Slinton 		0,	RLEFT|RESCC,
6769705Slinton 		"	OW2	AR,AL\n	cvtZLl	AL,AL\n",
6779705Slinton 
6789705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6799705Slinton 	SAREG,	TUSHORT,
6809705Slinton 	SAREG|AWD,	ANYFIXED,
6819705Slinton 		0,	RLEFT|RESCC,
6829705Slinton 		"	OW2	AR,AL\n	movzZLl	AL,AL\n",
6839705Slinton 
6849705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6859705Slinton 	SAREG,	TCHAR,
6869705Slinton 	SAREG|AWD,	ANYFIXED,
6879705Slinton 		0,	RLEFT|RESCC,
6889705Slinton 		"	OB2	AR,AL\n	cvtZLl	AL,AL\n",
6899705Slinton 
6909705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6919705Slinton 	SAREG,	TUCHAR,
6929705Slinton 	SAREG|AWD,	ANYFIXED,
6939705Slinton 		0,	RLEFT|RESCC,
6949705Slinton 		"	OB2	AR,AL\n	movzZLl	AL,AL\n",
6959705Slinton 
6969705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
6979705Slinton 	STAREG,	ANYFIXED,
6989705Slinton 	SAREG|AWD,	TWORD,
6999705Slinton 		0,	RLEFT|RESCC,
7009705Slinton 		"	OL2	AR,AL\n",
7019705Slinton 
7029705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7039705Slinton 	SAREG|AWD,	TWORD,
7049705Slinton 	SAREG|AWD,	TWORD,
7059705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7069705Slinton 		"	OL3	AR,AL,A1\n",
7079705Slinton 
7089705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7099705Slinton 	SAREG|AWD,	TDOUBLE,
7109705Slinton 	SAREG|AWD,	TDOUBLE,
7119705Slinton 		0,	RLEFT|RESCC,
7129705Slinton 		"	OD2	AR,AL\n",
7139705Slinton 
7149705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7159705Slinton 	SAREG|AWD,	TFLOAT,
7169705Slinton 	SAREG|AWD,	TFLOAT,
7179705Slinton 		0,	RLEFT|RESCC,
71817740Sralph #if defined(FORT) || defined(SPRECC)
71916937Sralph 		"	OF2	AR,TAL\n",
72016937Sralph #else
7219705Slinton 		"	OF2	AR,AL\n",
72216937Sralph #endif
7239705Slinton 
7249705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7259705Slinton 	SAREG|AWD,	TDOUBLE,
7269705Slinton 	SAREG|AWD,	TFLOAT,
7279705Slinton 		NAREG|NASR,	RLEFT|RESCC,
7289705Slinton 		"	cvtfd	AR,A1\n	OD2	A1,AL\n",
7299705Slinton 
7309705Slinton ASG OPFLOAT,	INAREG|INTAREG|FOREFF|FORCC,
7319705Slinton 	SAREG|AWD,	TFLOAT,
7329705Slinton 	SAREG|AWD,	TDOUBLE,
7339705Slinton 		NAREG,	RLEFT|RESC1|RESCC,
7349705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n	cvtdf	A1,AL\n",
7359705Slinton 
7369705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7379705Slinton 	STAREG,	TDOUBLE,
7389705Slinton 	SAREG|AWD,	TDOUBLE,
7399705Slinton 		0,	RLEFT|RESCC,
7409705Slinton 		"	OD2	AR,AL\n",
7419705Slinton 
7429705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7439705Slinton 	SAREG|AWD,	TDOUBLE,
7449705Slinton 	SAREG|AWD,	TDOUBLE,
7459705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7469705Slinton 		"	OD3	AR,AL,A1\n",
7479705Slinton 
7489705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7499705Slinton 	SAREG|AWD,	TFLOAT,
7509705Slinton 	SAREG|AWD,	TDOUBLE,
7519705Slinton 		NAREG|NASL,	RESC1|RESCC,
7529705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n",
7539705Slinton 
7549705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7559705Slinton 	SAREG|AWD,	TDOUBLE,
7569705Slinton 	SAREG|AWD,	TFLOAT,
7579705Slinton 		NAREG|NASR,	RESC1|RESCC,
7589705Slinton 		"	cvtfd	AR,A1\n	OD3	A1,AL,A1\n",
7599705Slinton 
76017740Sralph #if defined(FORT) || defined(SPRECC)
7619705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
76216937Sralph 	STAREG,		TFLOAT,
76316937Sralph 	SAREG|AWD,	TFLOAT,
7649705Slinton 		0,	RLEFT|RESCC,
76516937Sralph 		"	OF2	AR,TAL\n",
7669705Slinton 
7679705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7689705Slinton 	SAREG|AWD,	TFLOAT,
7699705Slinton 	SAREG|AWD,	TFLOAT,
7709705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7719705Slinton 		"	OF3	AR,AL,TA1\n",
7729705Slinton #endif
7739705Slinton 
7749705Slinton 	/* Default actions for hard trees ... */
7759705Slinton 
7769705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
7779705Slinton 
7789705Slinton UNARY MUL, DF( UNARY MUL ),
7799705Slinton 
7809705Slinton INCR, DF(INCR),
7819705Slinton 
7829705Slinton DECR, DF(INCR),
7839705Slinton 
7849705Slinton ASSIGN, DF(ASSIGN),
7859705Slinton 
7869705Slinton STASG, DF(STASG),
7879705Slinton 
7889705Slinton FLD, DF(FLD),
7899705Slinton 
7909705Slinton OPLEAF, DF(NAME),
7919705Slinton 
7929705Slinton OPLOG,	FORCC,
7939705Slinton 	SANY,	TANY,
7949705Slinton 	SANY,	TANY,
7959705Slinton 		REWRITE,	BITYPE,
7969705Slinton 		"",
7979705Slinton 
7989705Slinton OPLOG,	DF(NOT),
7999705Slinton 
8009705Slinton COMOP, DF(COMOP),
8019705Slinton 
8029705Slinton INIT, DF(INIT),
8039705Slinton 
8049705Slinton OPUNARY, DF(UNARY MINUS),
8059705Slinton 
8069705Slinton 
8079705Slinton ASG OPANY, DF(ASG PLUS),
8089705Slinton 
8099705Slinton OPANY, DF(BITYPE),
8109705Slinton 
8119705Slinton FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	"help; I'm in trouble\n" };
812