xref: /csrg-svn/old/pcc/ccom.vax/table.c (revision 24417)
117740Sralph #ifndef lint
2*24417Smckusick static char *sccsid ="@(#)table.c	1.11 (Berkeley) 08/23/85";
317740Sralph #endif lint
417740Sralph 
518558Sralph # 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 
6619934Smckusick /* take care of redundant conversions introduced by reclaim() */
6719934Smckusick SCONV,	INTAREG,
6819934Smckusick 	STAREG,	TWORD,
6919934Smckusick 	SANY,	TWORD,
7019934Smckusick 		0,	RLEFT,
7119934Smckusick 		"",
7219934Smckusick 
739705Slinton SCONV,	INTAREG|FORCC,
7416182Sralph 	SAREG|AWD,	TANY,
759705Slinton 	SANY,	TANY,
769705Slinton 		NAREG|NASL,	RESC1|RESCC,
7716182Sralph 		"	ZA\n",
789705Slinton 
799705Slinton 
809705Slinton INIT,	FOREFF,
819705Slinton 	SCON,	TANY,
829705Slinton 	SANY,	TWORD,
839705Slinton 		0,	RNOP,
849705Slinton 		"	.long	CL\n",
859705Slinton 
869705Slinton INIT,	FOREFF,
879705Slinton 	SCON,	TANY,
889705Slinton 	SANY,	TSHORT|TUSHORT,
899705Slinton 		0,	RNOP,
909705Slinton 		"	.word	CL\n",
919705Slinton 
929705Slinton INIT,	FOREFF,
939705Slinton 	SCON,	TANY,
949705Slinton 	SANY,	TCHAR|TUCHAR,
959705Slinton 		0,	RNOP,
969705Slinton 		"	.byte	CL\n",
979705Slinton 
989705Slinton 	/* for the use of fortran only */
999705Slinton 
1009705Slinton GOTO,	FOREFF,
1019705Slinton 	SCON,	TANY,
1029705Slinton 	SANY,	TANY,
1039705Slinton 		0,	RNOP,
1049705Slinton 		"	jbr	CL\n",
1059705Slinton 
1069705Slinton GOTO,	FOREFF,
10717740Sralph 	SNAME|SOREG,	TANY,
1089705Slinton 	SANY,	TANY,
1099705Slinton 		0,	RNOP,
1109705Slinton 		"	jmp	*AL\n",
1119705Slinton 
1129705Slinton GOTO,	FOREFF,
1139705Slinton 	SAREG,	TANY,
1149705Slinton 	SANY,	TANY,
1159705Slinton 		0,	RNOP,
1169705Slinton 		"	jmp	(AL)\n",
1179705Slinton 
1189705Slinton STARG,	FORARG,
1199705Slinton 	SCON|SOREG,	TANY,
1209705Slinton 	SANY,	TANY,
1219705Slinton 		0,	RNULL,
1229705Slinton 		"	subl2	ZT,sp\nZS",
1239705Slinton 
1249705Slinton STASG,	FOREFF,
1259705Slinton 	SNAME|SOREG,	TANY,
1269705Slinton 	SCON|SAREG,	TANY,
1279705Slinton 		0,	RNOP,
1289705Slinton 		"ZS",
1299705Slinton 
1309705Slinton STASG,	INAREG,
1319705Slinton 	SNAME|SOREG,	TANY,
1329705Slinton 	SCON,	TANY,
1339705Slinton 		NAREG,	RESC1,
1349705Slinton 		"ZS	movl	AR,A1\n",
1359705Slinton 
1369705Slinton STASG,	INAREG,
1379705Slinton 	SNAME|SOREG,	TANY,
1389705Slinton 	SAREG,	TANY,
1399705Slinton 		0,	RRIGHT,
1409705Slinton 		"	pushl	AR\nZS	movl	(sp)+,AR\n",
1419705Slinton 
1429705Slinton FLD,	INAREG|INTAREG,
1439705Slinton 	SANY,	TANY,
1449705Slinton 	SFLD,	ANYSIGNED,
1459705Slinton 		NAREG|NASR,	RESC1,
1469705Slinton 		"	extv	$H,$S,AR,A1\n",
1479705Slinton 
1489705Slinton FLD,	INAREG|INTAREG,
1499705Slinton 	SANY,	TANY,
1509705Slinton 	SFLD,	ANYUSIGNED,
1519705Slinton 		NAREG|NASR,	RESC1,
1529705Slinton 		"	extzv	$H,$S,AR,A1\n",
1539705Slinton 
1549705Slinton FLD,	FORARG,
1559705Slinton 	SANY,	TANY,
1569705Slinton 	SFLD,	ANYSIGNED,
1579705Slinton 		0,	RNULL,
1589705Slinton 		"	extv	$H,$S,AR,-(sp)\n",
1599705Slinton 
1609705Slinton FLD,	FORARG,
1619705Slinton 	SANY,	TANY,
1629705Slinton 	SFLD,	ANYUSIGNED,
1639705Slinton 		0,	RNULL,
1649705Slinton 		"	extzv	$H,$S,AR,-(sp)\n",
1659705Slinton 
1669705Slinton OPLOG,	FORCC,
1679705Slinton 	SAREG|AWD,	TWORD,
1689705Slinton 	SAREG|AWD,	TWORD,
1699705Slinton 		0,	RESCC,
1709705Slinton 		"	cmpl	AL,AR\nZP",
1719705Slinton 
1729705Slinton OPLOG,	FORCC,
17319934Smckusick 	SAREG|AWD,	TSHORT,
17419934Smckusick 	SAREG|AWD,	TSHORT,
1759705Slinton 		0,	RESCC,
1769705Slinton 		"	cmpw	AL,AR\nZP",
1779705Slinton 
1789705Slinton OPLOG,	FORCC,
17919934Smckusick 	SAREG|AWD,	TUSHORT,
18019934Smckusick 	SAREG|AWD,	TUSHORT,
1819705Slinton 		0,	RESCC,
18219934Smckusick 		"	cmpw	AL,AR\nZP",
18319934Smckusick 
18419934Smckusick OPLOG,	FORCC,
18519934Smckusick 	SAREG|AWD,	TCHAR,
18619934Smckusick 	SAREG|AWD,	TCHAR,
18719934Smckusick 		0,	RESCC,
1889705Slinton 		"	cmpb	AL,AR\nZP",
1899705Slinton 
1909705Slinton OPLOG,	FORCC,
19119934Smckusick 	SAREG|AWD,	TUCHAR,
19219934Smckusick 	SAREG|AWD,	TUCHAR,
19319934Smckusick 		0,	RESCC,
19419934Smckusick 		"	cmpb	AL,AR\nZP",
19519934Smckusick 
19619934Smckusick OPLOG,	FORCC,
1979705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
1989705Slinton 	SSCON,	TANY,
1999705Slinton 		0,	RESCC,
2009705Slinton 		"	cmpw	AL,AR\nZP",
2019705Slinton 
2029705Slinton OPLOG,	FORCC,
2039705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
2049705Slinton 	SCCON,	TANY,
2059705Slinton 		0,	RESCC,
2069705Slinton 		"	cmpb	AL,AR\nZP",
2079705Slinton 
2089705Slinton OPLOG,	FORCC,
2099705Slinton 	SAREG|AWD,	TDOUBLE,
2109705Slinton 	SAREG|AWD,	TDOUBLE,
2119705Slinton 		0,	RESCC,
2129705Slinton 		"	cmpd	AL,AR\nZP",
2139705Slinton 
2149705Slinton OPLOG,	FORCC,
2159705Slinton 	SAREG|AWD,	TDOUBLE,
2169705Slinton 	SAREG|AWD,	TFLOAT,
21717205Sralph 		NAREG|NASR,	RESCC,
2189705Slinton 		"	cvtfd	AR,A1\n	cmpd	AL,A1\nZP",
2199705Slinton 
2209705Slinton OPLOG,	FORCC,
2219705Slinton 	SAREG|AWD,	TFLOAT,
2229705Slinton 	SAREG|AWD,	TDOUBLE,
22317205Sralph 		NAREG|NASL,	RESCC,
2249705Slinton 		"	cvtfd	AL,A1\n	cmpd	A1,AR\nZP",
2259705Slinton 
2269705Slinton OPLOG,	FORCC,
2279705Slinton 	SAREG|AWD,	TFLOAT,
2289705Slinton 	SAREG|AWD,	TFLOAT,
2299705Slinton 		0,	RESCC,
2309705Slinton 		"	cmpf	AL,AR\nZP",
2319705Slinton 
2329705Slinton CCODES,	INAREG|INTAREG,
2339705Slinton 	SANY,	TANY,
2349705Slinton 	SANY,	TANY,
2359705Slinton 		NAREG,	RESC1,
2369705Slinton 		"	movl	$1,A1\nZN",
2379705Slinton 
2389705Slinton UNARY CALL,	INTAREG,
2399705Slinton 	SCON,	TANY,
24016182Sralph 	SANY,	TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
24116182Sralph 		NAREG|NASL,	RESC1,
24216182Sralph 		"	calls	ZC,CL\n",
24316182Sralph 
24416182Sralph 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,
37316182Sralph 	SAREG|AWD,	TDOUBLE,
37416182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
37516182Sralph 		NAREG|NASR,	RLEFT|RESCC,
37616182Sralph 		"	movzZRl	AR,A1\n	cvtld	A1,AL\n",
37716182Sralph 
37816182Sralph ASSIGN,	INAREG|FOREFF|FORCC,
37916182Sralph 	SAREG|AWD,	TFLOAT,
38016182Sralph 	SAREG|AWD,	TUCHAR|TUSHORT,
38116182Sralph 		NAREG|NASR,	RLEFT|RESCC,
38216182Sralph 		"	movzZRl	AR,A1\n	cvtlf	A1,AL\n",
38316182Sralph 
38416182Sralph 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 
42717740Sralph #if defined(FORT) || defined(SPRECC)
42817740Sralph 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 
48917740Sralph #if defined(FORT) || defined(SPRECC)
4909705Slinton UNARY MINUS,	INTAREG|FORCC,
491*24417Smckusick 	SAREG|AWD,	TFLOAT,
49216182Sralph 	SANY,	TANY,
49316182Sralph 		NAREG|NASL,	RESC1|RESCC,
49416182Sralph 		"	mnegZL	TAL,A1\n",
49516182Sralph 
496*24417Smckusick #endif
49716182Sralph 
49816182Sralph 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",
5039705Slinton 
5049705Slinton COMPL,	INTAREG|FORCC,
50523479Smckusick 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5069705Slinton 	SANY,	TANY,
5079705Slinton 		NAREG|NASL,	RESC1|RESCC,
5089705Slinton 		"	mcomZL	AL,A1\n",
5099705Slinton 
5109705Slinton COMPL,	INTAREG|FORCC,
5119705Slinton 	SAREG|AWD,	ANYSIGNED|ANYUSIGNED,
5129705Slinton 	SANY,	TANY,
5139705Slinton 		NAREG|NASL,	RESC1|RESCC,
5149705Slinton 		"	cvtZLl	AL,A1\n	mcoml	A1,A1\n",
5159705Slinton 
5169705Slinton AND,	FORCC,
5179705Slinton 	SAREG|AWD,	TWORD,
5189705Slinton 	SCON,	TWORD,
5199705Slinton 		0,	RESCC,
5209705Slinton 		"	bitl	ZZ,AL\n",
5219705Slinton 
5229705Slinton AND,	FORCC,
5239705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
5249705Slinton 	SSCON,	TWORD,
5259705Slinton 		0,	RESCC,
5269705Slinton 		"	bitw	ZZ,AL\n",
5279705Slinton 
5289705Slinton AND,	FORCC,
5299705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
5309705Slinton 	SCCON,	TWORD,
5319705Slinton 		0,	RESCC,
5329705Slinton 		"	bitb	ZZ,AL\n",
5339705Slinton 
5349705Slinton ASG AND,	INAREG|FOREFF|FORCC,
5359705Slinton 	SAREG,	TWORD,
5369705Slinton 	SCON,	TWORD,
5379705Slinton 		0,	RLEFT|RESCC,
5389705Slinton 		"	bicl2	AR,AL\n",
5399705Slinton 
5409705Slinton ASG OPMUL,	INAREG|FOREFF|FORCC,
5419705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5429705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5439705Slinton 		0,	RLEFT|RESCC,
5449705Slinton 		"	OL2	AR,AL\n",
5459705Slinton 
5469705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5479705Slinton 	STAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5489705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5499705Slinton 		0,	RLEFT|RESCC,
5509705Slinton 		"	OL2	AR,AL\n",
5519705Slinton 
5529705Slinton OPMUL,	INAREG|INTAREG|FORCC,
5539705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5549705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5559705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
5569705Slinton 		"	OL3	AR,AL,A1\n",
5579705Slinton 
5589705Slinton ASG MOD,	INAREG|INTAREG|FOREFF|FORCC,
5599705Slinton 	SAREG,	TINT|TUNSIGNED|TLONG|TULONG,
5609705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5619705Slinton 		NAREG,	RLEFT|RESCC,
5629705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl2	A1,AL\n",
5639705Slinton 
5649705Slinton MOD,	INAREG|INTAREG,
5659705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5669705Slinton 	SAREG|AWD,	TINT|TUNSIGNED|TLONG|TULONG,
5679705Slinton 		NAREG,	RESC1,
5689705Slinton 		"	divl3	AR,AL,A1\n	mull2	AR,A1\n	subl3	A1,AL,A1\n",
5699705Slinton 
5709705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5719705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5729705Slinton 	SONE,	TINT|TLONG,
5739705Slinton 		0,	RLEFT|RESCC,
5749705Slinton 		"	incZL	AL\n",
5759705Slinton 
5769705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5779705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
5789705Slinton 	SONE,	TINT|TLONG,
5799705Slinton 		0,	RLEFT|RESCC,
5809705Slinton 		"	incZL	AL\n",
5819705Slinton 
5829705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5839705Slinton 	SAREG,	TSHORT|TCHAR,
5849705Slinton 	SONE,	TINT|TLONG,
5859705Slinton 		0,	RLEFT|RESCC,
5869705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
5879705Slinton 
5889705Slinton ASG PLUS,	INAREG|FOREFF|FORCC,
5899705Slinton 	SAREG,	TUSHORT|TUCHAR,
5909705Slinton 	SONE,	TINT|TLONG,
5919705Slinton 		0,	RLEFT|RESCC,
5929705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
5939705Slinton 
5949705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
5959705Slinton 	SAREG,	TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
5969705Slinton 	SONE,	TINT|TLONG,
5979705Slinton 		0,	RLEFT|RESCC,
5989705Slinton 		"	decZL	AL\n",
5999705Slinton 
6009705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6019705Slinton 	AWD,	ANYSIGNED|ANYUSIGNED,
6029705Slinton 	SONE,	TINT|TLONG,
6039705Slinton 		0,	RLEFT|RESCC,
6049705Slinton 		"	decZL	AL\n",
6059705Slinton 
6069705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6079705Slinton 	SAREG,	TSHORT|TCHAR,
6089705Slinton 	SONE,	TINT|TLONG,
6099705Slinton 		0,	RLEFT|RESCC,
6109705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6119705Slinton 
6129705Slinton ASG MINUS,	INAREG|FOREFF|FORCC,
6139705Slinton 	SAREG,	TUSHORT|TUCHAR,
6149705Slinton 	SONE,	TINT|TLONG,
6159705Slinton 		0,	RLEFT|RESCC,
6169705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6179705Slinton 
6189705Slinton PLUS,	INAREG|INTAREG|FORCC,
6199705Slinton 	STAREG,	TWORD,
6209705Slinton 	SONE,	TWORD,
6219705Slinton 		0,	RLEFT|RESCC,
6229705Slinton 		"	incZL	AL\n",
6239705Slinton 
6249705Slinton PLUS,	INAREG|INTAREG|FORCC,
6259705Slinton 	STAREG,	TSHORT|TCHAR,
6269705Slinton 	SONE,	TWORD,
6279705Slinton 		0,	RLEFT|RESCC,
6289705Slinton 		"	incZL	AL\n	cvtZLl	AL,AL\n",
6299705Slinton 
6309705Slinton PLUS,	INAREG|INTAREG|FORCC,
6319705Slinton 	STAREG,	TUSHORT|TUCHAR,
6329705Slinton 	SONE,	TWORD,
6339705Slinton 		0,	RLEFT|RESCC,
6349705Slinton 		"	incZL	AL\n	movzZLl	AL,AL\n",
6359705Slinton 
6369705Slinton MINUS,	INAREG|INTAREG|FORCC,
6379705Slinton 	STAREG,	TWORD,
6389705Slinton 	SONE,	TWORD,
6399705Slinton 		0,	RLEFT|RESCC,
6409705Slinton 		"	decZL	AL\n",
6419705Slinton 
6429705Slinton MINUS,	INAREG|INTAREG|FORCC,
6439705Slinton 	STAREG,	TSHORT|TCHAR,
6449705Slinton 	SONE,	TWORD,
6459705Slinton 		0,	RLEFT|RESCC,
6469705Slinton 		"	decZL	AL\n	cvtZLl	AL,AL\n",
6479705Slinton 
6489705Slinton MINUS,	INAREG|INTAREG|FORCC,
6499705Slinton 	STAREG,	TUSHORT|TUCHAR,
6509705Slinton 	SONE,	TWORD,
6519705Slinton 		0,	RLEFT|RESCC,
6529705Slinton 		"	decZL	AL\n	movzZLl	AL,AL\n",
6539705Slinton 
6549705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6559705Slinton 	SAREG|AWD,	TWORD,
6569705Slinton 	SAREG|AWD,	TWORD,
6579705Slinton 		0,	RLEFT|RESCC,
6589705Slinton 		"	OL2	AR,AL\n",
6599705Slinton 
6609705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6619705Slinton 	SAREG,	TWORD,
6629705Slinton 	SAREG,	TSHORT|TUSHORT|TCHAR|TUCHAR,
6639705Slinton 		0,	RLEFT|RESCC,
6649705Slinton 		"	OL2	AR,AL\n",
6659705Slinton 
6669705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6679705Slinton 	AWD,	TSHORT|TUSHORT,
6689705Slinton 	SAREG|AWD,	TSHORT|TUSHORT,
6699705Slinton 		0,	RLEFT|RESCC,
6709705Slinton 		"	OW2	AR,AL\n",
6719705Slinton 
6729705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6739705Slinton 	AWD,	TSHORT|TUSHORT,
6749705Slinton 	SSCON,	TWORD,
6759705Slinton 		0,	RLEFT|RESCC,
6769705Slinton 		"	OW2	AR,AL\n",
6779705Slinton 
6789705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6799705Slinton 	AWD,	TCHAR|TUCHAR,
6809705Slinton 	SAREG|AWD,	TCHAR|TUCHAR,
6819705Slinton 		0,	RLEFT|RESCC,
6829705Slinton 		"	OB2	AR,AL\n",
6839705Slinton 
6849705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6859705Slinton 	AWD,	TCHAR|TUCHAR,
6869705Slinton 	SCCON,	TWORD,
6879705Slinton 		0,	RLEFT|RESCC,
6889705Slinton 		"	OB2	AR,AL\n",
6899705Slinton 
6909705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6919705Slinton 	SAREG,	TSHORT,
6929705Slinton 	SAREG|AWD,	ANYFIXED,
6939705Slinton 		0,	RLEFT|RESCC,
6949705Slinton 		"	OW2	AR,AL\n	cvtZLl	AL,AL\n",
6959705Slinton 
6969705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
6979705Slinton 	SAREG,	TUSHORT,
6989705Slinton 	SAREG|AWD,	ANYFIXED,
6999705Slinton 		0,	RLEFT|RESCC,
7009705Slinton 		"	OW2	AR,AL\n	movzZLl	AL,AL\n",
7019705Slinton 
7029705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
7039705Slinton 	SAREG,	TCHAR,
7049705Slinton 	SAREG|AWD,	ANYFIXED,
7059705Slinton 		0,	RLEFT|RESCC,
7069705Slinton 		"	OB2	AR,AL\n	cvtZLl	AL,AL\n",
7079705Slinton 
7089705Slinton ASG OPSIMP,	INAREG|FOREFF|FORCC,
7099705Slinton 	SAREG,	TUCHAR,
7109705Slinton 	SAREG|AWD,	ANYFIXED,
7119705Slinton 		0,	RLEFT|RESCC,
7129705Slinton 		"	OB2	AR,AL\n	movzZLl	AL,AL\n",
7139705Slinton 
7149705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7159705Slinton 	STAREG,	ANYFIXED,
7169705Slinton 	SAREG|AWD,	TWORD,
7179705Slinton 		0,	RLEFT|RESCC,
7189705Slinton 		"	OL2	AR,AL\n",
7199705Slinton 
7209705Slinton OPSIMP,	INAREG|INTAREG|FORCC,
7219705Slinton 	SAREG|AWD,	TWORD,
7229705Slinton 	SAREG|AWD,	TWORD,
7239705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7249705Slinton 		"	OL3	AR,AL,A1\n",
7259705Slinton 
7269705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7279705Slinton 	SAREG|AWD,	TDOUBLE,
7289705Slinton 	SAREG|AWD,	TDOUBLE,
7299705Slinton 		0,	RLEFT|RESCC,
7309705Slinton 		"	OD2	AR,AL\n",
7319705Slinton 
7329705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7339705Slinton 	SAREG|AWD,	TFLOAT,
7349705Slinton 	SAREG|AWD,	TFLOAT,
7359705Slinton 		0,	RLEFT|RESCC,
73617740Sralph #if defined(FORT) || defined(SPRECC)
73716937Sralph 		"	OF2	AR,TAL\n",
73816937Sralph #else
7399705Slinton 		"	OF2	AR,AL\n",
74016937Sralph #endif
7419705Slinton 
7429705Slinton ASG OPFLOAT,	INAREG|FOREFF|FORCC,
7439705Slinton 	SAREG|AWD,	TDOUBLE,
7449705Slinton 	SAREG|AWD,	TFLOAT,
7459705Slinton 		NAREG|NASR,	RLEFT|RESCC,
7469705Slinton 		"	cvtfd	AR,A1\n	OD2	A1,AL\n",
7479705Slinton 
7489705Slinton ASG OPFLOAT,	INAREG|INTAREG|FOREFF|FORCC,
7499705Slinton 	SAREG|AWD,	TFLOAT,
7509705Slinton 	SAREG|AWD,	TDOUBLE,
7519705Slinton 		NAREG,	RLEFT|RESC1|RESCC,
7529705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n	cvtdf	A1,AL\n",
7539705Slinton 
7549705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7559705Slinton 	STAREG,	TDOUBLE,
7569705Slinton 	SAREG|AWD,	TDOUBLE,
7579705Slinton 		0,	RLEFT|RESCC,
7589705Slinton 		"	OD2	AR,AL\n",
7599705Slinton 
7609705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7619705Slinton 	SAREG|AWD,	TDOUBLE,
7629705Slinton 	SAREG|AWD,	TDOUBLE,
7639705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7649705Slinton 		"	OD3	AR,AL,A1\n",
7659705Slinton 
7669705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7679705Slinton 	SAREG|AWD,	TFLOAT,
7689705Slinton 	SAREG|AWD,	TDOUBLE,
7699705Slinton 		NAREG|NASL,	RESC1|RESCC,
7709705Slinton 		"	cvtfd	AL,A1\n	OD2	AR,A1\n",
7719705Slinton 
7729705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7739705Slinton 	SAREG|AWD,	TDOUBLE,
7749705Slinton 	SAREG|AWD,	TFLOAT,
7759705Slinton 		NAREG|NASR,	RESC1|RESCC,
7769705Slinton 		"	cvtfd	AR,A1\n	OD3	A1,AL,A1\n",
7779705Slinton 
77817740Sralph #if defined(FORT) || defined(SPRECC)
7799705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
78016937Sralph 	STAREG,		TFLOAT,
78116937Sralph 	SAREG|AWD,	TFLOAT,
7829705Slinton 		0,	RLEFT|RESCC,
78316937Sralph 		"	OF2	AR,TAL\n",
7849705Slinton 
7859705Slinton OPFLOAT,	INAREG|INTAREG|FORCC,
7869705Slinton 	SAREG|AWD,	TFLOAT,
7879705Slinton 	SAREG|AWD,	TFLOAT,
7889705Slinton 		NAREG|NASL|NASR,	RESC1|RESCC,
7899705Slinton 		"	OF3	AR,AL,TA1\n",
7909705Slinton #endif
7919705Slinton 
7929705Slinton 	/* Default actions for hard trees ... */
7939705Slinton 
7949705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
7959705Slinton 
7969705Slinton UNARY MUL, DF( UNARY MUL ),
7979705Slinton 
7989705Slinton INCR, DF(INCR),
7999705Slinton 
8009705Slinton DECR, DF(INCR),
8019705Slinton 
8029705Slinton ASSIGN, DF(ASSIGN),
8039705Slinton 
8049705Slinton STASG, DF(STASG),
8059705Slinton 
8069705Slinton FLD, DF(FLD),
8079705Slinton 
8089705Slinton OPLEAF, DF(NAME),
8099705Slinton 
8109705Slinton OPLOG,	FORCC,
8119705Slinton 	SANY,	TANY,
8129705Slinton 	SANY,	TANY,
8139705Slinton 		REWRITE,	BITYPE,
8149705Slinton 		"",
8159705Slinton 
8169705Slinton OPLOG,	DF(NOT),
8179705Slinton 
8189705Slinton COMOP, DF(COMOP),
8199705Slinton 
8209705Slinton INIT, DF(INIT),
8219705Slinton 
8229705Slinton OPUNARY, DF(UNARY MINUS),
8239705Slinton 
8249705Slinton 
8259705Slinton ASG OPANY, DF(ASG PLUS),
8269705Slinton 
8279705Slinton OPANY, DF(BITYPE),
8289705Slinton 
8299705Slinton FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	FREE,	"help; I'm in trouble\n" };
830