117740Sralph #ifndef lint 2*32971Sdonn static char *sccsid ="@(#)table.c 1.27 (Berkeley) 12/11/87"; 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 /* the following entry is to fix a problem with 209705Slinton the manner that the first pass handles the 219705Slinton type of a shift expression */ 229705Slinton PCONV, INAREG|INTAREG, 239705Slinton SAREG|AWD, TINT|TUNSIGNED, 249705Slinton SANY, TPOINT, 259705Slinton NAREG|NASL, RLEFT, 269705Slinton "", 279705Slinton 2817740Sralph #if defined(FORT) || defined(SPRECC) 299705Slinton SCONV, INTAREG|FORCC, 3016182Sralph SAREG|AWD, TDOUBLE, 3116182Sralph SANY, TFLOAT, 3216182Sralph NAREG|NASL, RESC1|RESCC, 3316182Sralph " cvtdf AL,A1\n", 349705Slinton 359705Slinton SCONV, INTAREG|FORCC, 3625753Sdonn SAREG|AWD, ANYSIGNED, 379705Slinton SANY, TFLOAT, 389705Slinton NAREG|NASL, RESC1|RESCC, 399705Slinton " cvtZLf AL,TA1\n", 40*32971Sdonn #else 41*32971Sdonn SCONV, INTAREG|FORCC, /* rub some bits off that mantissa... */ 42*32971Sdonn SAREG|AWD, TWORD|TDOUBLE, 439705Slinton SANY, TFLOAT, 449705Slinton NAREG|NASL, RESC1|RESCC, 45*32971Sdonn " cvtZLf AL,A1\n clrl U1\n", 469705Slinton #endif 479705Slinton 4819934Smckusick /* take care of redundant conversions introduced by reclaim() */ 4919934Smckusick SCONV, INTAREG, 5019934Smckusick STAREG, TWORD, 5119934Smckusick SANY, TWORD, 5219934Smckusick 0, RLEFT, 5319934Smckusick "", 5419934Smckusick 55*32971Sdonn SCONV, INTAREG, 56*32971Sdonn STAREG, TDOUBLE, 57*32971Sdonn SANY, TDOUBLE, 58*32971Sdonn 0, RLEFT, 59*32971Sdonn "", 60*32971Sdonn 619705Slinton SCONV, INTAREG|FORCC, 6216182Sralph SAREG|AWD, TANY, 639705Slinton SANY, TANY, 649705Slinton NAREG|NASL, RESC1|RESCC, 6516182Sralph " ZA\n", 669705Slinton 6732970Sdonn SCONV, FORARG, 68*32971Sdonn SAREG|AWD, TWORD|TDOUBLE, 69*32971Sdonn SANY, TFLOAT, 70*32971Sdonn NAREG|NASL, RNULL, 71*32971Sdonn " cvtZLf AL,A1\n cvtfd A1,-(sp)\n", 729705Slinton 7332970Sdonn SCONV, FORARG, 7432970Sdonn SAREG|AWD, TANY, 7532970Sdonn SANY, TANY, 7632970Sdonn 0, RNULL, 7732970Sdonn " ZV\n", 7832970Sdonn 799705Slinton INIT, FOREFF, 809705Slinton SCON, TANY, 819705Slinton SANY, TWORD, 829705Slinton 0, RNOP, 839705Slinton " .long CL\n", 849705Slinton 859705Slinton INIT, FOREFF, 869705Slinton SCON, TANY, 879705Slinton SANY, TSHORT|TUSHORT, 889705Slinton 0, RNOP, 899705Slinton " .word CL\n", 909705Slinton 919705Slinton INIT, FOREFF, 929705Slinton SCON, TANY, 939705Slinton SANY, TCHAR|TUCHAR, 949705Slinton 0, RNOP, 959705Slinton " .byte CL\n", 969705Slinton 97*32971Sdonn #ifdef FORT 989705Slinton /* for the use of fortran only */ 999705Slinton 1009705Slinton GOTO, FOREFF, 1019705Slinton SCON, TANY, 1029705Slinton SANY, TANY, 1039705Slinton 0, RNOP, 1049705Slinton " jbr CL\n", 105*32971Sdonn #endif 1069705Slinton 1079705Slinton GOTO, FOREFF, 10817740Sralph SNAME|SOREG, TANY, 1099705Slinton SANY, TANY, 1109705Slinton 0, RNOP, 1119705Slinton " jmp *AL\n", 1129705Slinton 1139705Slinton GOTO, FOREFF, 1149705Slinton SAREG, TANY, 1159705Slinton SANY, TANY, 1169705Slinton 0, RNOP, 1179705Slinton " jmp (AL)\n", 1189705Slinton 1199705Slinton STARG, FORARG, 1209705Slinton SCON|SOREG, TANY, 1219705Slinton SANY, TANY, 1229705Slinton 0, RNULL, 1239705Slinton " subl2 ZT,sp\nZS", 1249705Slinton 1259705Slinton STASG, FOREFF, 1269705Slinton SNAME|SOREG, TANY, 1279705Slinton SCON|SAREG, TANY, 1289705Slinton 0, RNOP, 1299705Slinton "ZS", 1309705Slinton 1319705Slinton STASG, INAREG, 1329705Slinton SNAME|SOREG, TANY, 1339705Slinton SCON, TANY, 1349705Slinton NAREG, RESC1, 1359705Slinton "ZS movl AR,A1\n", 1369705Slinton 1379705Slinton STASG, INAREG, 1389705Slinton SNAME|SOREG, TANY, 1399705Slinton SAREG, TANY, 1409705Slinton 0, RRIGHT, 1419705Slinton " pushl AR\nZS movl (sp)+,AR\n", 1429705Slinton 1439705Slinton FLD, INAREG|INTAREG, 1449705Slinton SANY, TANY, 1459705Slinton SFLD, ANYSIGNED, 1469705Slinton NAREG|NASR, RESC1, 1479705Slinton " extv $H,$S,AR,A1\n", 1489705Slinton 1499705Slinton FLD, INAREG|INTAREG, 1509705Slinton SANY, TANY, 1519705Slinton SFLD, ANYUSIGNED, 1529705Slinton NAREG|NASR, RESC1, 1539705Slinton " extzv $H,$S,AR,A1\n", 1549705Slinton 1559705Slinton FLD, FORARG, 1569705Slinton SANY, TANY, 1579705Slinton SFLD, ANYSIGNED, 1589705Slinton 0, RNULL, 1599705Slinton " extv $H,$S,AR,-(sp)\n", 1609705Slinton 1619705Slinton FLD, FORARG, 1629705Slinton SANY, TANY, 1639705Slinton SFLD, ANYUSIGNED, 1649705Slinton 0, RNULL, 1659705Slinton " extzv $H,$S,AR,-(sp)\n", 1669705Slinton 1679705Slinton OPLOG, FORCC, 1689705Slinton SAREG|AWD, TWORD, 1699705Slinton SAREG|AWD, TWORD, 1709705Slinton 0, RESCC, 1719705Slinton " cmpl AL,AR\nZP", 1729705Slinton 1739705Slinton OPLOG, FORCC, 17419934Smckusick SAREG|AWD, TSHORT, 17519934Smckusick SAREG|AWD, TSHORT, 1769705Slinton 0, RESCC, 1779705Slinton " cmpw AL,AR\nZP", 1789705Slinton 1799705Slinton OPLOG, FORCC, 18019934Smckusick SAREG|AWD, TUSHORT, 18119934Smckusick SAREG|AWD, TUSHORT, 1829705Slinton 0, RESCC, 18319934Smckusick " cmpw AL,AR\nZP", 18419934Smckusick 18519934Smckusick OPLOG, FORCC, 18619934Smckusick SAREG|AWD, TCHAR, 18719934Smckusick SAREG|AWD, TCHAR, 18819934Smckusick 0, RESCC, 1899705Slinton " cmpb AL,AR\nZP", 1909705Slinton 1919705Slinton OPLOG, FORCC, 19219934Smckusick SAREG|AWD, TUCHAR, 19319934Smckusick SAREG|AWD, TUCHAR, 19419934Smckusick 0, RESCC, 19519934Smckusick " cmpb AL,AR\nZP", 19619934Smckusick 197*32971Sdonn /* optim2() handles degenerate comparisons with constants */ 19819934Smckusick OPLOG, FORCC, 199*32971Sdonn SAREG|AWD, TCHAR|TUCHAR|TSHORT|TUSHORT, 200*32971Sdonn SCON, ANYFIXED, 2019705Slinton 0, RESCC, 202*32971Sdonn " cmpZL AL,AR\nZP", 2039705Slinton 2049705Slinton OPLOG, FORCC, 2059705Slinton SAREG|AWD, TDOUBLE, 2069705Slinton SAREG|AWD, TDOUBLE, 2079705Slinton 0, RESCC, 2089705Slinton " cmpd AL,AR\nZP", 2099705Slinton 2109705Slinton OPLOG, FORCC, 2119705Slinton SAREG|AWD, TFLOAT, 2129705Slinton SAREG|AWD, TFLOAT, 2139705Slinton 0, RESCC, 2149705Slinton " cmpf AL,AR\nZP", 2159705Slinton 2169705Slinton CCODES, INAREG|INTAREG, 2179705Slinton SANY, TANY, 2189705Slinton SANY, TANY, 2199705Slinton NAREG, RESC1, 2209705Slinton " movl $1,A1\nZN", 2219705Slinton 2229705Slinton UNARY CALL, INTAREG, 2239705Slinton SCON, TANY, 22416182Sralph SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 22516182Sralph NAREG|NASL, RESC1, 22616182Sralph " calls ZC,CL\n", 22716182Sralph 22816182Sralph UNARY CALL, INTAREG, 2299705Slinton SAREG, TANY, 2309705Slinton SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 2319705Slinton NAREG|NASL, RESC1, /* should be 0 */ 2329705Slinton " calls ZC,(AL)\n", 2339705Slinton 2349705Slinton UNARY CALL, INAREG|INTAREG, 2359705Slinton SNAME, TANY, 2369705Slinton SANY, TANY, 2379705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2389705Slinton " calls ZC,*AL\n", 2399705Slinton 2409705Slinton UNARY CALL, INAREG|INTAREG, 2419705Slinton SSOREG, TANY, 2429705Slinton SANY, TANY, 2439705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2449705Slinton " calls ZC,*AL\n", 2459705Slinton 2469705Slinton ASG RS, INAREG|FOREFF|FORCC, 2479705Slinton SAREG, TWORD, 24832964Sdonn SCON, TINT|TUNSIGNED, 2499705Slinton 0, RLEFT|RESCC, 2509705Slinton " extzv AR,ZU,AL,AL\n", 2519705Slinton 2529705Slinton ASG RS, INAREG|FOREFF|FORCC, 2539705Slinton SAREG, TWORD, 2549705Slinton SAREG, ANYFIXED, 2559705Slinton NAREG, RLEFT|RESCC, 2569705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2579705Slinton 2589705Slinton ASG RS, INAREG|FOREFF|FORCC, 2599705Slinton SAREG, TWORD, 2609705Slinton SAREG|AWD, TWORD, 2619705Slinton NAREG, RLEFT|RESCC, 2629705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2639705Slinton 2649705Slinton RS, INAREG|INTAREG|FORCC, 2659705Slinton SAREG, TWORD, 26632964Sdonn SCON, TINT|TUNSIGNED, 2679705Slinton NAREG|NASL, RESC1|RESCC, 2689705Slinton " extzv AR,ZU,AL,A1\n", 2699705Slinton 2709705Slinton ASG LS, INAREG|FOREFF|FORCC, 2719705Slinton SAREG|AWD, TWORD, 2729705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 2739705Slinton 0, RLEFT|RESCC, 2749705Slinton " ashl AR,AL,AL\n", 2759705Slinton 2769705Slinton ASG LS, INAREG|FOREFF|FORCC, 2779705Slinton SAREG|AWD, TWORD, 2789705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 2799705Slinton 0, RLEFT|RESCC, 2809705Slinton " ashl AR,AL,AL\n", 2819705Slinton 2829705Slinton ASG LS, INAREG|FOREFF|FORCC, 2839705Slinton SAREG|AWD, TWORD, 2849705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 2859705Slinton NAREG, RLEFT|RESCC, 2869705Slinton " ZB AR,A1\n ashl A1,AL,AL\n", 2879705Slinton 2889705Slinton LS, INAREG|INTAREG|FORCC, 2899705Slinton SAREG|AWD, TWORD, 2909705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 2919705Slinton NAREG|NASL|NASR, RESC1|RESCC, 2929705Slinton " ashl AR,AL,A1\n", 2939705Slinton 2949705Slinton LS, INAREG|INTAREG|FORCC, 2959705Slinton SAREG|AWD, TWORD, 2969705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 2979705Slinton NAREG|NASL|NASR, RESC1|RESCC, 2989705Slinton " ashl AR,AL,A1\n", 2999705Slinton 3009705Slinton LS, INAREG|INTAREG|FORCC, 3019705Slinton SAREG|AWD, TWORD, 3029705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 3039705Slinton NAREG|NASR, RESC1|RESCC, 3049705Slinton " ZB AR,A1\n ashl A1,AL,A1\n", 3059705Slinton 3069705Slinton INCR, FOREFF, 307*32971Sdonn SAREG|AWD, TANY, 30832969Sdonn SCON|SNAME, TANY, 3099705Slinton 0, RLEFT, 3109705Slinton " ZE\n", 3119705Slinton 3129705Slinton DECR, FOREFF, 313*32971Sdonn SAREG|AWD, TANY, 31432969Sdonn SCON|SNAME, TANY, 3159705Slinton 0, RLEFT, 3169705Slinton " ZE\n", 3179705Slinton 3189705Slinton INCR, INAREG|INTAREG, 319*32971Sdonn SAREG|AWD, TANY, 32032969Sdonn SCON|SNAME, TANY, 3219705Slinton NAREG, RESC1, 3229705Slinton " ZD\n", 3239705Slinton 3249705Slinton DECR, INAREG|INTAREG, 325*32971Sdonn SAREG|AWD, TANY, 32632969Sdonn SCON|SNAME, TANY, 3279705Slinton NAREG, RESC1, 3289705Slinton " ZD\n", 3299705Slinton 3309705Slinton ASSIGN, INAREG|FOREFF|FORCC, 3319705Slinton SAREG|AWD, TANY, 3329705Slinton SAREG|AWD, TANY, 33325582Sbloom 0, RLEFT|RESCC, 3349705Slinton " ZA\n", 3359705Slinton 33632958Sdonn ASSIGN, FOREFF, 3379705Slinton SFLD, TANY, 3389705Slinton SAREG|AWD, TWORD, 33932958Sdonn 0, RNOP, 3409705Slinton " insv AR,$H,$S,AL\n", 3419705Slinton 34232958Sdonn ASSIGN, INAREG, 34332960Sdonn SFLD, ANYSIGNED, 34432958Sdonn SAREG|AWD, TWORD, 34532958Sdonn NAREG, RESC1, 34632958Sdonn " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", 34732958Sdonn 34832960Sdonn ASSIGN, INAREG, 34932960Sdonn SFLD, ANYUSIGNED, 35032960Sdonn SAREG|AWD, TWORD, 35132960Sdonn NAREG, RESC1, 35232960Sdonn " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n", 35332960Sdonn 3549705Slinton ASSIGN, INAREG|FOREFF|FORCC, 3559705Slinton SAREG|AWD, TWORD, 3569705Slinton SFLD, ANYSIGNED, 3579705Slinton 0, RLEFT|RESCC, 3589705Slinton " extv $H,$S,AR,AL\n", 3599705Slinton 3609705Slinton ASSIGN, INAREG|FOREFF|FORCC, 3619705Slinton SAREG|AWD, TWORD, 3629705Slinton SFLD, ANYUSIGNED, 3639705Slinton 0, RLEFT|RESCC, 3649705Slinton " extzv $H,$S,AR,AL\n", 3659705Slinton 3669705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 3679705Slinton UNARY MUL, FOREFF, 3689705Slinton SCC, TANY, 3699705Slinton SCC, TANY, 3709705Slinton 0, RNULL, 3719705Slinton " HELP HELP HELP\n", 3729705Slinton 37332959Sdonn OREG, INTEMP, 37432959Sdonn SANY, TANY, 37532959Sdonn SOREG, TDOUBLE, 37632959Sdonn 2*NTEMP, RESC1, 377*32971Sdonn " movq AR,A1\n", 37832959Sdonn 37932959Sdonn OREG, INTEMP, 38032959Sdonn SANY, TANY, 38132959Sdonn SOREG, TANY, 38232959Sdonn NTEMP, RESC1, 38332959Sdonn " movZF AR,A1\n", 38432959Sdonn 3859705Slinton REG, INTEMP, 3869705Slinton SANY, TANY, 3879705Slinton SAREG, TDOUBLE, 3889705Slinton 2*NTEMP, RESC1, 389*32971Sdonn " movq AR,A1\n", 3909705Slinton 3919705Slinton REG, INTEMP, 3929705Slinton SANY, TANY, 3939705Slinton SAREG, TANY, 3949705Slinton NTEMP, RESC1, 3959705Slinton " movZF AR,A1\n", 3969705Slinton 39717740Sralph #if defined(FORT) || defined(SPRECC) 39817740Sralph REG, FORARG, 3999705Slinton SANY, TANY, 4009705Slinton SAREG, TFLOAT, 4019705Slinton 0, RNULL, 4029705Slinton " cvtfd AR,-(sp)\n", 4039705Slinton 4049705Slinton REG, FORARG, 4059705Slinton SANY, TANY, 4069705Slinton SAREG, TDOUBLE, 4079705Slinton 0, RNULL, 408*32971Sdonn " movq AR,-(sp)\n", 4099705Slinton #endif 4109705Slinton 4119705Slinton OPLEAF, FOREFF, 4129705Slinton SANY, TANY, 4139705Slinton SAREG|AWD, TANY, 4149705Slinton 0, RLEFT, 4159705Slinton "", 4169705Slinton 4179705Slinton OPLTYPE, INAREG|INTAREG, 4189705Slinton SANY, TANY, 4199705Slinton SANY, TANY, 4209705Slinton NAREG|NASR, RESC1, 4219705Slinton " ZA\n", 4229705Slinton 4239705Slinton OPLTYPE, FORCC, 4249705Slinton SANY, TANY, 4259705Slinton SANY, TANY, 4269705Slinton 0, RESCC, 4279705Slinton " tstZR AR\n", 4289705Slinton 4299705Slinton OPLTYPE, FORARG, 4309705Slinton SANY, TANY, 4319705Slinton SANY, TANY, 4329705Slinton 0, RNULL, 43332970Sdonn " ZV\n", 4349705Slinton 43517740Sralph #if defined(FORT) || defined(SPRECC) 4369705Slinton UNARY MINUS, INTAREG|FORCC, 43724417Smckusick SAREG|AWD, TFLOAT, 43816182Sralph SANY, TANY, 43916182Sralph NAREG|NASL, RESC1|RESCC, 44016182Sralph " mnegZL TAL,A1\n", 44116182Sralph 44224417Smckusick #endif 44316182Sralph 44416182Sralph UNARY MINUS, INTAREG|FORCC, 445*32971Sdonn SAREG|AWD, TWORD|TDOUBLE, 4469705Slinton SANY, TANY, 4479705Slinton NAREG|NASL, RESC1|RESCC, 4489705Slinton " mnegZL AL,A1\n", 4499705Slinton 4509705Slinton COMPL, INTAREG|FORCC, 451*32971Sdonn SAREG|AWD, TWORD, 4529705Slinton SANY, TANY, 4539705Slinton NAREG|NASL, RESC1|RESCC, 4549705Slinton " mcomZL AL,A1\n", 4559705Slinton 4569705Slinton AND, FORCC, 457*32971Sdonn SAREG|AWD, TCHAR|TSHORT, 458*32971Sdonn SCON, ANYFIXED, 459*32971Sdonn NAREG|NASL, RESCC, 460*32971Sdonn " ZZ\n", 4619705Slinton 4629705Slinton AND, FORCC, 463*32971Sdonn SAREG|AWD, TWORD|ANYUSIGNED, 464*32971Sdonn SCON, ANYFIXED, 4659705Slinton 0, RESCC, 466*32971Sdonn " ZZ\n", 4679705Slinton 4689705Slinton ASG AND, INAREG|FOREFF|FORCC, 4699705Slinton SAREG, TWORD, 4709705Slinton SCON, TWORD, 4719705Slinton 0, RLEFT|RESCC, 4729705Slinton " bicl2 AR,AL\n", 4739705Slinton 474*32971Sdonn /* General cases for DIV and ASG DIV are handled below with OPMUL */ 475*32971Sdonn /* Some special cases are handled in optim2() */ 476*32971Sdonn 47732962Sdonn DIV, INAREG|FOREFF|FORCC, 47832962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 47932967Sdonn SCON, ANYUSIGNED, 48032962Sdonn NAREG|NEVEN, RESC1|RESCC, 48132963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,U1\n", 48232962Sdonn 48332962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 484*32971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 48532967Sdonn SMCON, ANYUSIGNED, 48632962Sdonn 0, RLEFT|RESCC, 48732962Sdonn " ZJ\n", 48832962Sdonn 48932962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 490*32971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 49132967Sdonn SCON, ANYUSIGNED, 49232962Sdonn NAREG|NEVEN, RLEFT|RESCC, 49332963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,AL,U1\n", 49432962Sdonn 49532962Sdonn MOD, INAREG|INTAREG, 49632962Sdonn SAREG|AWD, TINT|TLONG, 49732962Sdonn SAREG|AWD, TINT|TLONG, 49832962Sdonn NAREG, RESC1, 49932962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 50032962Sdonn 50132962Sdonn MOD, INAREG|FOREFF, 50232962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 50332967Sdonn SMCON, ANYUSIGNED, 50432962Sdonn NAREG|NASL, RLEFT|RESC1, 50532962Sdonn " ZJ\n", 50632962Sdonn 50732962Sdonn MOD, INAREG|FOREFF, 50832962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 50932967Sdonn SCON, ANYUSIGNED, 510*32971Sdonn NAREG|NEVEN, RESC1, 51132963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,U1,A1\n", 51232962Sdonn 51332967Sdonn /* should only see UNSIGNED lhs here if converted from UCHAR/USHORT lhs */ 51432967Sdonn ASG MOD, INAREG|FOREFF|FORCC, 51532967Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 51632962Sdonn SAREG|AWD, TINT|TLONG, 51732962Sdonn NAREG, RLEFT|RESCC, 51832962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", 51932962Sdonn 52032962Sdonn ASG MOD, INAREG|FOREFF, 521*32971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 52232967Sdonn SMCON, ANYUSIGNED, 523*32971Sdonn 0, RLEFT, 52432962Sdonn " ZJ\n", 52532962Sdonn 52632962Sdonn ASG MOD, INAREG|FOREFF, 527*32971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 52832967Sdonn SCON, ANYUSIGNED, 529*32971Sdonn NAREG|NEVEN, RLEFT, 53032963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n", 53132962Sdonn 5329705Slinton ASG OPMUL, INAREG|FOREFF|FORCC, 5339705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5349705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5359705Slinton 0, RLEFT|RESCC, 5369705Slinton " OL2 AR,AL\n", 5379705Slinton 5389705Slinton OPMUL, INAREG|INTAREG|FORCC, 5399705Slinton STAREG, 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 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5469705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5479705Slinton NAREG|NASL|NASR, RESC1|RESCC, 5489705Slinton " OL3 AR,AL,A1\n", 5499705Slinton 5509705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 551*32971Sdonn SAREG|AWD, ANYFIXED, 552*32971Sdonn SONE, TANY, 5539705Slinton 0, RLEFT|RESCC, 5549705Slinton " incZL AL\n", 5559705Slinton 5569705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 557*32971Sdonn SAREG|AWD, ANYFIXED, 558*32971Sdonn SONE, TANY, 5599705Slinton 0, RLEFT|RESCC, 5609705Slinton " decZL AL\n", 5619705Slinton 5629705Slinton PLUS, INAREG|INTAREG|FORCC, 5639705Slinton STAREG, TWORD, 5649705Slinton SONE, TWORD, 5659705Slinton 0, RLEFT|RESCC, 5669705Slinton " incZL AL\n", 5679705Slinton 5689705Slinton MINUS, INAREG|INTAREG|FORCC, 5699705Slinton STAREG, TWORD, 5709705Slinton SONE, TWORD, 5719705Slinton 0, RLEFT|RESCC, 5729705Slinton " decZL AL\n", 5739705Slinton 5749705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 5759705Slinton SAREG|AWD, TWORD, 5769705Slinton SAREG|AWD, TWORD, 5779705Slinton 0, RLEFT|RESCC, 5789705Slinton " OL2 AR,AL\n", 5799705Slinton 5809705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 5819705Slinton AWD, TSHORT|TUSHORT, 582*32971Sdonn SAREG|SNAME|STARNM, TSHORT|TUSHORT|TINT|TUNSIGNED|TLONG|TULONG, 5839705Slinton 0, RLEFT|RESCC, 5849705Slinton " OW2 AR,AL\n", 5859705Slinton 5869705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 5879705Slinton AWD, TSHORT|TUSHORT, 588*32971Sdonn SSOREG, TSHORT|TUSHORT|TINT|TUNSIGNED|TLONG|TULONG, 5899705Slinton 0, RLEFT|RESCC, 5909705Slinton " OW2 AR,AL\n", 5919705Slinton 5929705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 59332961Sdonn AWD, TSHORT|TUSHORT, 59432961Sdonn SSCON, ANYFIXED, 59532961Sdonn 0, RLEFT|RESCC, 59632961Sdonn " OW2 AR,AL\n", 59732961Sdonn 59832961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 59932961Sdonn AWD, TSHORT|TUSHORT, 60032961Sdonn AWD, TSHORT|TUSHORT, 60132961Sdonn 0, RLEFT|RESCC, 60232961Sdonn " OW2 AR,AL\n", 60332961Sdonn 60432961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 6059705Slinton AWD, TCHAR|TUCHAR, 60632961Sdonn SSOREG, ANYFIXED, 6079705Slinton 0, RLEFT|RESCC, 6089705Slinton " OB2 AR,AL\n", 6099705Slinton 6109705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6119705Slinton AWD, TCHAR|TUCHAR, 61232961Sdonn SAREG|SNAME|STARNM, ANYFIXED, 6139705Slinton 0, RLEFT|RESCC, 6149705Slinton " OB2 AR,AL\n", 6159705Slinton 6169705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 61732961Sdonn AWD, TCHAR|TUCHAR, 61832961Sdonn SCCON, ANYFIXED, 61932961Sdonn 0, RLEFT|RESCC, 62032961Sdonn " OB2 AR,AL\n", 62132961Sdonn 62232961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 62332961Sdonn AWD, TCHAR|TUCHAR, 62432961Sdonn AWD, TCHAR|TUCHAR, 62532961Sdonn 0, RLEFT|RESCC, 62632961Sdonn " OB2 AR,AL\n", 62732961Sdonn 6289705Slinton OPSIMP, INAREG|INTAREG|FORCC, 6299705Slinton STAREG, ANYFIXED, 6309705Slinton SAREG|AWD, TWORD, 6319705Slinton 0, RLEFT|RESCC, 6329705Slinton " OL2 AR,AL\n", 6339705Slinton 6349705Slinton OPSIMP, INAREG|INTAREG|FORCC, 6359705Slinton SAREG|AWD, TWORD, 6369705Slinton SAREG|AWD, TWORD, 6379705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6389705Slinton " OL3 AR,AL,A1\n", 6399705Slinton 6409705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 6419705Slinton SAREG|AWD, TDOUBLE, 6429705Slinton SAREG|AWD, TDOUBLE, 6439705Slinton 0, RLEFT|RESCC, 6449705Slinton " OD2 AR,AL\n", 6459705Slinton 6469705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 6479705Slinton SAREG|AWD, TFLOAT, 6489705Slinton SAREG|AWD, TFLOAT, 6499705Slinton 0, RLEFT|RESCC, 65017740Sralph #if defined(FORT) || defined(SPRECC) 65116937Sralph " OF2 AR,TAL\n", 65216937Sralph #else 6539705Slinton " OF2 AR,AL\n", 65416937Sralph #endif 6559705Slinton 6569705Slinton ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, 6579705Slinton SAREG|AWD, TFLOAT, 6589705Slinton SAREG|AWD, TDOUBLE, 6599705Slinton NAREG, RLEFT|RESC1|RESCC, 6609705Slinton " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", 6619705Slinton 66225753Sdonn ASG OPFLOAT, INAREG|FOREFF|FORCC, 66325753Sdonn SAREG|AWD, ANYFIXED, 66425753Sdonn #ifndef SPRECC 66525753Sdonn SAREG|AWD, TDOUBLE, /* force FLOAT to register */ 66625753Sdonn #else 66725753Sdonn SAREG|AWD, TFLOAT|TDOUBLE, 66825753Sdonn #endif 66925753Sdonn NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ 67025753Sdonn " ZG\n", 67125753Sdonn 6729705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 6739705Slinton STAREG, TDOUBLE, 6749705Slinton SAREG|AWD, TDOUBLE, 6759705Slinton 0, RLEFT|RESCC, 6769705Slinton " OD2 AR,AL\n", 6779705Slinton 6789705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 6799705Slinton SAREG|AWD, TDOUBLE, 6809705Slinton SAREG|AWD, TDOUBLE, 6819705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6829705Slinton " OD3 AR,AL,A1\n", 6839705Slinton 68417740Sralph #if defined(FORT) || defined(SPRECC) 6859705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 68616937Sralph STAREG, TFLOAT, 68716937Sralph SAREG|AWD, TFLOAT, 6889705Slinton 0, RLEFT|RESCC, 68916937Sralph " OF2 AR,TAL\n", 6909705Slinton 6919705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 6929705Slinton SAREG|AWD, TFLOAT, 6939705Slinton SAREG|AWD, TFLOAT, 6949705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6959705Slinton " OF3 AR,AL,TA1\n", 6969705Slinton #endif 6979705Slinton 6989705Slinton /* Default actions for hard trees ... */ 6999705Slinton 7009705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" 7019705Slinton 7029705Slinton UNARY MUL, DF( UNARY MUL ), 7039705Slinton 7049705Slinton INCR, DF(INCR), 7059705Slinton 7069705Slinton DECR, DF(INCR), 7079705Slinton 7089705Slinton ASSIGN, DF(ASSIGN), 7099705Slinton 7109705Slinton STASG, DF(STASG), 7119705Slinton 7129705Slinton FLD, DF(FLD), 7139705Slinton 7149705Slinton OPLEAF, DF(NAME), 7159705Slinton 7169705Slinton OPLOG, FORCC, 7179705Slinton SANY, TANY, 7189705Slinton SANY, TANY, 7199705Slinton REWRITE, BITYPE, 7209705Slinton "", 7219705Slinton 7229705Slinton OPLOG, DF(NOT), 7239705Slinton 7249705Slinton COMOP, DF(COMOP), 7259705Slinton 7269705Slinton INIT, DF(INIT), 7279705Slinton 7289705Slinton OPUNARY, DF(UNARY MINUS), 7299705Slinton 7309705Slinton ASG OPANY, DF(ASG PLUS), 7319705Slinton 7329705Slinton OPANY, DF(BITYPE), 7339705Slinton 7349705Slinton FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }; 735