117740Sralph #ifndef lint 2*34249Sdonn static char *sccsid ="@(#)table.c 1.33 (Berkeley) 05/11/88"; 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", 409705Slinton #endif 419705Slinton 4219934Smckusick /* take care of redundant conversions introduced by reclaim() */ 4319934Smckusick SCONV, INTAREG, 4419934Smckusick STAREG, TWORD, 4519934Smckusick SANY, TWORD, 4619934Smckusick 0, RLEFT, 4719934Smckusick "", 4819934Smckusick 4932971Sdonn SCONV, INTAREG, 5032971Sdonn STAREG, TDOUBLE, 5132971Sdonn SANY, TDOUBLE, 5232971Sdonn 0, RLEFT, 5332971Sdonn "", 5432971Sdonn 559705Slinton SCONV, INTAREG|FORCC, 5616182Sralph SAREG|AWD, TANY, 579705Slinton SANY, TANY, 589705Slinton NAREG|NASL, RESC1|RESCC, 5916182Sralph " ZA\n", 609705Slinton 6132970Sdonn SCONV, FORARG, 6232970Sdonn SAREG|AWD, TANY, 6332970Sdonn SANY, TANY, 6432973Sdonn NAREG|NASL, RNULL, 6532970Sdonn " ZV\n", 6632970Sdonn 679705Slinton INIT, FOREFF, 689705Slinton SCON, TANY, 699705Slinton SANY, TWORD, 709705Slinton 0, RNOP, 719705Slinton " .long CL\n", 729705Slinton 739705Slinton INIT, FOREFF, 749705Slinton SCON, TANY, 759705Slinton SANY, TSHORT|TUSHORT, 769705Slinton 0, RNOP, 779705Slinton " .word CL\n", 789705Slinton 799705Slinton INIT, FOREFF, 809705Slinton SCON, TANY, 819705Slinton SANY, TCHAR|TUCHAR, 829705Slinton 0, RNOP, 839705Slinton " .byte CL\n", 849705Slinton 8532971Sdonn #ifdef FORT 869705Slinton /* for the use of fortran only */ 879705Slinton 889705Slinton GOTO, FOREFF, 899705Slinton SCON, TANY, 909705Slinton SANY, TANY, 919705Slinton 0, RNOP, 929705Slinton " jbr CL\n", 9332971Sdonn #endif 949705Slinton 959705Slinton GOTO, FOREFF, 9617740Sralph SNAME|SOREG, TANY, 979705Slinton SANY, TANY, 989705Slinton 0, RNOP, 999705Slinton " jmp *AL\n", 1009705Slinton 1019705Slinton GOTO, FOREFF, 1029705Slinton SAREG, TANY, 1039705Slinton SANY, TANY, 1049705Slinton 0, RNOP, 1059705Slinton " jmp (AL)\n", 1069705Slinton 1079705Slinton STARG, FORARG, 1089705Slinton SCON|SOREG, TANY, 1099705Slinton SANY, TANY, 1109705Slinton 0, RNULL, 1119705Slinton " subl2 ZT,sp\nZS", 1129705Slinton 1139705Slinton STASG, FOREFF, 1149705Slinton SNAME|SOREG, TANY, 1159705Slinton SCON|SAREG, TANY, 1169705Slinton 0, RNOP, 1179705Slinton "ZS", 1189705Slinton 1199705Slinton STASG, INAREG, 1209705Slinton SNAME|SOREG, TANY, 1219705Slinton SCON, TANY, 1229705Slinton NAREG, RESC1, 1239705Slinton "ZS movl AR,A1\n", 1249705Slinton 1259705Slinton STASG, INAREG, 1269705Slinton SNAME|SOREG, TANY, 1279705Slinton SAREG, TANY, 1289705Slinton 0, RRIGHT, 1299705Slinton " pushl AR\nZS movl (sp)+,AR\n", 1309705Slinton 1319705Slinton FLD, INAREG|INTAREG, 1329705Slinton SANY, TANY, 1339705Slinton SFLD, ANYSIGNED, 1349705Slinton NAREG|NASR, RESC1, 1359705Slinton " extv $H,$S,AR,A1\n", 1369705Slinton 1379705Slinton FLD, INAREG|INTAREG, 1389705Slinton SANY, TANY, 1399705Slinton SFLD, ANYUSIGNED, 1409705Slinton NAREG|NASR, RESC1, 1419705Slinton " extzv $H,$S,AR,A1\n", 1429705Slinton 1439705Slinton FLD, FORARG, 1449705Slinton SANY, TANY, 1459705Slinton SFLD, ANYSIGNED, 1469705Slinton 0, RNULL, 1479705Slinton " extv $H,$S,AR,-(sp)\n", 1489705Slinton 1499705Slinton FLD, FORARG, 1509705Slinton SANY, TANY, 1519705Slinton SFLD, ANYUSIGNED, 1529705Slinton 0, RNULL, 1539705Slinton " extzv $H,$S,AR,-(sp)\n", 1549705Slinton 1559705Slinton OPLOG, FORCC, 1569705Slinton SAREG|AWD, TWORD, 1579705Slinton SAREG|AWD, TWORD, 1589705Slinton 0, RESCC, 1599705Slinton " cmpl AL,AR\nZP", 1609705Slinton 1619705Slinton OPLOG, FORCC, 16219934Smckusick SAREG|AWD, TSHORT, 16319934Smckusick SAREG|AWD, TSHORT, 1649705Slinton 0, RESCC, 1659705Slinton " cmpw AL,AR\nZP", 1669705Slinton 1679705Slinton OPLOG, FORCC, 16819934Smckusick SAREG|AWD, TUSHORT, 16919934Smckusick SAREG|AWD, TUSHORT, 1709705Slinton 0, RESCC, 17119934Smckusick " cmpw AL,AR\nZP", 17219934Smckusick 17319934Smckusick OPLOG, FORCC, 17419934Smckusick SAREG|AWD, TCHAR, 17519934Smckusick SAREG|AWD, TCHAR, 17619934Smckusick 0, RESCC, 1779705Slinton " cmpb AL,AR\nZP", 1789705Slinton 1799705Slinton OPLOG, FORCC, 18019934Smckusick SAREG|AWD, TUCHAR, 18119934Smckusick SAREG|AWD, TUCHAR, 18219934Smckusick 0, RESCC, 18319934Smckusick " cmpb AL,AR\nZP", 18419934Smckusick 18532971Sdonn /* optim2() handles degenerate comparisons with constants */ 18619934Smckusick OPLOG, FORCC, 18732971Sdonn SAREG|AWD, TCHAR|TUCHAR|TSHORT|TUSHORT, 18832971Sdonn SCON, ANYFIXED, 1899705Slinton 0, RESCC, 19032971Sdonn " cmpZL AL,AR\nZP", 1919705Slinton 1929705Slinton OPLOG, FORCC, 1939705Slinton SAREG|AWD, TDOUBLE, 1949705Slinton SAREG|AWD, TDOUBLE, 1959705Slinton 0, RESCC, 1969705Slinton " cmpd AL,AR\nZP", 1979705Slinton 1989705Slinton OPLOG, FORCC, 1999705Slinton SAREG|AWD, TFLOAT, 2009705Slinton SAREG|AWD, TFLOAT, 2019705Slinton 0, RESCC, 2029705Slinton " cmpf AL,AR\nZP", 2039705Slinton 20432975Sdonn #ifdef FORT 20532975Sdonn /* this really ought to be taken care of farther upstream... XXX */ 20632975Sdonn OPLOG, FORCC, 20732975Sdonn SAREG|AWD, TFLOAT, 20832975Sdonn SAREG|AWD, TDOUBLE, 20932975Sdonn NAREG|NASL, RESCC, 21032975Sdonn " cvtfd AL,A1\n cmpd A1,AR\nZP", 21132975Sdonn 21232975Sdonn OPLOG, FORCC, 21332975Sdonn SAREG|AWD, TDOUBLE, 21432975Sdonn SAREG|AWD, TFLOAT, 21532975Sdonn NAREG|NASR, RESCC, 21632975Sdonn " cvtfd AR,A1\n cmpd AL,A1\nZP", 21732975Sdonn #endif 21832975Sdonn 2199705Slinton CCODES, INAREG|INTAREG, 2209705Slinton SANY, TANY, 2219705Slinton SANY, TANY, 2229705Slinton NAREG, RESC1, 2239705Slinton " movl $1,A1\nZN", 2249705Slinton 2259705Slinton UNARY CALL, INTAREG, 2269705Slinton SCON, TANY, 22716182Sralph SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 22816182Sralph NAREG|NASL, RESC1, 22916182Sralph " calls ZC,CL\n", 23016182Sralph 23116182Sralph UNARY CALL, INTAREG, 2329705Slinton SAREG, TANY, 2339705Slinton SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 2349705Slinton NAREG|NASL, RESC1, /* should be 0 */ 2359705Slinton " calls ZC,(AL)\n", 2369705Slinton 2379705Slinton UNARY CALL, INAREG|INTAREG, 2389705Slinton SNAME, TANY, 2399705Slinton SANY, TANY, 2409705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2419705Slinton " calls ZC,*AL\n", 2429705Slinton 2439705Slinton UNARY CALL, INAREG|INTAREG, 2449705Slinton SSOREG, TANY, 2459705Slinton SANY, TANY, 2469705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2479705Slinton " calls ZC,*AL\n", 2489705Slinton 2499705Slinton ASG RS, INAREG|FOREFF|FORCC, 2509705Slinton SAREG, TWORD, 25132964Sdonn SCON, TINT|TUNSIGNED, 2529705Slinton 0, RLEFT|RESCC, 2539705Slinton " extzv AR,ZU,AL,AL\n", 2549705Slinton 2559705Slinton ASG RS, INAREG|FOREFF|FORCC, 2569705Slinton SAREG, TWORD, 2579705Slinton SAREG, ANYFIXED, 2589705Slinton NAREG, RLEFT|RESCC, 2599705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2609705Slinton 2619705Slinton ASG RS, INAREG|FOREFF|FORCC, 2629705Slinton SAREG, TWORD, 2639705Slinton SAREG|AWD, TWORD, 2649705Slinton NAREG, RLEFT|RESCC, 2659705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2669705Slinton 2679705Slinton RS, INAREG|INTAREG|FORCC, 2689705Slinton SAREG, TWORD, 26932964Sdonn SCON, TINT|TUNSIGNED, 2709705Slinton NAREG|NASL, RESC1|RESCC, 2719705Slinton " extzv AR,ZU,AL,A1\n", 2729705Slinton 2739705Slinton ASG LS, INAREG|FOREFF|FORCC, 2749705Slinton SAREG|AWD, TWORD, 2759705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 2769705Slinton 0, RLEFT|RESCC, 2779705Slinton " ashl AR,AL,AL\n", 2789705Slinton 2799705Slinton ASG LS, INAREG|FOREFF|FORCC, 2809705Slinton SAREG|AWD, TWORD, 2819705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 2829705Slinton 0, RLEFT|RESCC, 2839705Slinton " ashl AR,AL,AL\n", 2849705Slinton 2859705Slinton ASG LS, INAREG|FOREFF|FORCC, 2869705Slinton SAREG|AWD, TWORD, 2879705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 2889705Slinton NAREG, RLEFT|RESCC, 2899705Slinton " ZB AR,A1\n ashl A1,AL,AL\n", 2909705Slinton 2919705Slinton LS, INAREG|INTAREG|FORCC, 2929705Slinton SAREG|AWD, TWORD, 2939705Slinton SAREG|NIAWD, 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 SSOREG, ANYSIGNED|ANYUSIGNED, 3009705Slinton NAREG|NASL|NASR, RESC1|RESCC, 3019705Slinton " ashl AR,AL,A1\n", 3029705Slinton 3039705Slinton LS, INAREG|INTAREG|FORCC, 3049705Slinton SAREG|AWD, TWORD, 3059705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 3069705Slinton NAREG|NASR, RESC1|RESCC, 3079705Slinton " ZB AR,A1\n ashl A1,AL,A1\n", 3089705Slinton 3099705Slinton INCR, FOREFF, 31032971Sdonn SAREG|AWD, TANY, 31132969Sdonn SCON|SNAME, TANY, 3129705Slinton 0, RLEFT, 3139705Slinton " ZE\n", 3149705Slinton 3159705Slinton DECR, FOREFF, 31632971Sdonn SAREG|AWD, TANY, 31732969Sdonn SCON|SNAME, TANY, 3189705Slinton 0, RLEFT, 3199705Slinton " ZE\n", 3209705Slinton 3219705Slinton INCR, INAREG|INTAREG, 32232971Sdonn SAREG|AWD, TANY, 32332969Sdonn SCON|SNAME, TANY, 3249705Slinton NAREG, RESC1, 3259705Slinton " ZD\n", 3269705Slinton 3279705Slinton DECR, INAREG|INTAREG, 32832971Sdonn SAREG|AWD, TANY, 32932969Sdonn SCON|SNAME, TANY, 3309705Slinton NAREG, RESC1, 3319705Slinton " ZD\n", 3329705Slinton 3339705Slinton ASSIGN, INAREG|FOREFF|FORCC, 33432973Sdonn SAREG|AWD, TFLOAT|TDOUBLE, 33532973Sdonn SAREG|AWD, TUCHAR|TUSHORT, 33633765Sdonn NAREG|NASR, RLEFT|RESCC, 33732973Sdonn " ZA\n", 33832973Sdonn 33932973Sdonn ASSIGN, INAREG|FOREFF|FORCC, 3409705Slinton SAREG|AWD, TANY, 3419705Slinton SAREG|AWD, TANY, 34225582Sbloom 0, RLEFT|RESCC, 3439705Slinton " ZA\n", 3449705Slinton 34532958Sdonn ASSIGN, FOREFF, 3469705Slinton SFLD, TANY, 3479705Slinton SAREG|AWD, TWORD, 34832958Sdonn 0, RNOP, 3499705Slinton " insv AR,$H,$S,AL\n", 3509705Slinton 35132958Sdonn ASSIGN, INAREG, 35232960Sdonn SFLD, ANYSIGNED, 35332958Sdonn SAREG|AWD, TWORD, 35432958Sdonn NAREG, RESC1, 35532958Sdonn " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", 35632958Sdonn 35732960Sdonn ASSIGN, INAREG, 35832960Sdonn SFLD, ANYUSIGNED, 35932960Sdonn SAREG|AWD, TWORD, 36032960Sdonn NAREG, RESC1, 36132960Sdonn " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n", 36232960Sdonn 3639705Slinton ASSIGN, INAREG|FOREFF|FORCC, 3649705Slinton SAREG|AWD, TWORD, 3659705Slinton SFLD, ANYSIGNED, 3669705Slinton 0, RLEFT|RESCC, 3679705Slinton " extv $H,$S,AR,AL\n", 3689705Slinton 3699705Slinton ASSIGN, INAREG|FOREFF|FORCC, 3709705Slinton SAREG|AWD, TWORD, 3719705Slinton SFLD, ANYUSIGNED, 3729705Slinton 0, RLEFT|RESCC, 3739705Slinton " extzv $H,$S,AR,AL\n", 3749705Slinton 3759705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 3769705Slinton UNARY MUL, FOREFF, 3779705Slinton SCC, TANY, 3789705Slinton SCC, TANY, 3799705Slinton 0, RNULL, 3809705Slinton " HELP HELP HELP\n", 3819705Slinton 38232959Sdonn OREG, INTEMP, 38332959Sdonn SANY, TANY, 38432959Sdonn SOREG, TDOUBLE, 38532959Sdonn 2*NTEMP, RESC1, 38632971Sdonn " movq AR,A1\n", 38732959Sdonn 38832959Sdonn OREG, INTEMP, 38932959Sdonn SANY, TANY, 39032959Sdonn SOREG, TANY, 39132959Sdonn NTEMP, RESC1, 392*34249Sdonn " movZR AR,A1\n", 39332959Sdonn 3949705Slinton REG, INTEMP, 3959705Slinton SANY, TANY, 3969705Slinton SAREG, TDOUBLE, 3979705Slinton 2*NTEMP, RESC1, 39832971Sdonn " movq AR,A1\n", 3999705Slinton 4009705Slinton REG, INTEMP, 4019705Slinton SANY, TANY, 4029705Slinton SAREG, TANY, 4039705Slinton NTEMP, RESC1, 4049705Slinton " movZF AR,A1\n", 4059705Slinton 40617740Sralph #if defined(FORT) || defined(SPRECC) 40717740Sralph REG, FORARG, 4089705Slinton SANY, TANY, 4099705Slinton SAREG, TFLOAT, 4109705Slinton 0, RNULL, 4119705Slinton " cvtfd AR,-(sp)\n", 4129705Slinton 4139705Slinton REG, FORARG, 4149705Slinton SANY, TANY, 4159705Slinton SAREG, TDOUBLE, 4169705Slinton 0, RNULL, 41732971Sdonn " movq AR,-(sp)\n", 4189705Slinton #endif 4199705Slinton 4209705Slinton OPLEAF, FOREFF, 4219705Slinton SANY, TANY, 4229705Slinton SAREG|AWD, TANY, 4239705Slinton 0, RLEFT, 4249705Slinton "", 4259705Slinton 4269705Slinton OPLTYPE, INAREG|INTAREG, 4279705Slinton SANY, TANY, 4289705Slinton SANY, TANY, 4299705Slinton NAREG|NASR, RESC1, 4309705Slinton " ZA\n", 4319705Slinton 4329705Slinton OPLTYPE, FORCC, 4339705Slinton SANY, TANY, 4349705Slinton SANY, TANY, 4359705Slinton 0, RESCC, 4369705Slinton " tstZR AR\n", 4379705Slinton 4389705Slinton OPLTYPE, FORARG, 4399705Slinton SANY, TANY, 4409705Slinton SANY, TANY, 4419705Slinton 0, RNULL, 44232970Sdonn " ZV\n", 4439705Slinton 44417740Sralph #if defined(FORT) || defined(SPRECC) 4459705Slinton UNARY MINUS, INTAREG|FORCC, 44624417Smckusick SAREG|AWD, TFLOAT, 44716182Sralph SANY, TANY, 44816182Sralph NAREG|NASL, RESC1|RESCC, 44916182Sralph " mnegZL TAL,A1\n", 45016182Sralph 45124417Smckusick #endif 45216182Sralph 45316182Sralph UNARY MINUS, INTAREG|FORCC, 45432971Sdonn SAREG|AWD, TWORD|TDOUBLE, 4559705Slinton SANY, TANY, 4569705Slinton NAREG|NASL, RESC1|RESCC, 4579705Slinton " mnegZL AL,A1\n", 4589705Slinton 4599705Slinton COMPL, INTAREG|FORCC, 46032971Sdonn SAREG|AWD, TWORD, 4619705Slinton SANY, TANY, 4629705Slinton NAREG|NASL, RESC1|RESCC, 4639705Slinton " mcomZL AL,A1\n", 4649705Slinton 4659705Slinton AND, FORCC, 46632971Sdonn SAREG|AWD, TCHAR|TSHORT, 46732971Sdonn SCON, ANYFIXED, 46832971Sdonn NAREG|NASL, RESCC, 46932971Sdonn " ZZ\n", 4709705Slinton 4719705Slinton AND, FORCC, 47232971Sdonn SAREG|AWD, TWORD|ANYUSIGNED, 47332971Sdonn SCON, ANYFIXED, 4749705Slinton 0, RESCC, 47532971Sdonn " ZZ\n", 4769705Slinton 4779705Slinton ASG AND, INAREG|FOREFF|FORCC, 4789705Slinton SAREG, TWORD, 4799705Slinton SCON, TWORD, 4809705Slinton 0, RLEFT|RESCC, 4819705Slinton " bicl2 AR,AL\n", 4829705Slinton 48332971Sdonn /* General cases for DIV and ASG DIV are handled below with OPMUL */ 48432971Sdonn /* Some special cases are handled in optim2() */ 48532971Sdonn 48632962Sdonn DIV, INAREG|FOREFF|FORCC, 48732962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 48832967Sdonn SCON, ANYUSIGNED, 48932962Sdonn NAREG|NEVEN, RESC1|RESCC, 49032963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,U1\n", 49132962Sdonn 49232962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 49332971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 49432967Sdonn SMCON, ANYUSIGNED, 49532962Sdonn 0, RLEFT|RESCC, 49632962Sdonn " ZJ\n", 49732962Sdonn 49832962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 49932971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 50032967Sdonn SCON, ANYUSIGNED, 50132962Sdonn NAREG|NEVEN, RLEFT|RESCC, 50232963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,AL,U1\n", 50332962Sdonn 50432962Sdonn MOD, INAREG|INTAREG, 50532962Sdonn SAREG|AWD, TINT|TLONG, 50632962Sdonn SAREG|AWD, TINT|TLONG, 50732962Sdonn NAREG, RESC1, 50832962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 50932962Sdonn 51032962Sdonn MOD, INAREG|FOREFF, 51132962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 51232967Sdonn SMCON, ANYUSIGNED, 51332962Sdonn NAREG|NASL, RLEFT|RESC1, 51432962Sdonn " ZJ\n", 51532962Sdonn 51632962Sdonn MOD, INAREG|FOREFF, 51732962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 51832967Sdonn SCON, ANYUSIGNED, 51932971Sdonn NAREG|NEVEN, RESC1, 52032963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,U1,A1\n", 52132962Sdonn 52232967Sdonn /* should only see UNSIGNED lhs here if converted from UCHAR/USHORT lhs */ 52332967Sdonn ASG MOD, INAREG|FOREFF|FORCC, 52432967Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 52532962Sdonn SAREG|AWD, TINT|TLONG, 52632962Sdonn NAREG, RLEFT|RESCC, 52732962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", 52832962Sdonn 52932962Sdonn ASG MOD, INAREG|FOREFF, 53032971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 53132967Sdonn SMCON, ANYUSIGNED, 53232971Sdonn 0, RLEFT, 53332962Sdonn " ZJ\n", 53432962Sdonn 53532962Sdonn ASG MOD, INAREG|FOREFF, 53632971Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 53732967Sdonn SCON, ANYUSIGNED, 53832971Sdonn NAREG|NEVEN, RLEFT, 53932963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n", 54032962Sdonn 5419705Slinton ASG OPMUL, INAREG|FOREFF|FORCC, 5429705Slinton SAREG|AWD, 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 STAREG, TINT|TUNSIGNED|TLONG|TULONG, 5499705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5509705Slinton 0, RLEFT|RESCC, 5519705Slinton " OL2 AR,AL\n", 5529705Slinton 5539705Slinton OPMUL, INAREG|INTAREG|FORCC, 5549705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5559705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5569705Slinton NAREG|NASL|NASR, RESC1|RESCC, 5579705Slinton " OL3 AR,AL,A1\n", 5589705Slinton 5599705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 56032971Sdonn SAREG|AWD, ANYFIXED, 56132971Sdonn SONE, TANY, 5629705Slinton 0, RLEFT|RESCC, 5639705Slinton " incZL AL\n", 5649705Slinton 5659705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 56632971Sdonn SAREG|AWD, ANYFIXED, 56732971Sdonn SONE, TANY, 5689705Slinton 0, RLEFT|RESCC, 5699705Slinton " decZL AL\n", 5709705Slinton 5719705Slinton PLUS, INAREG|INTAREG|FORCC, 5729705Slinton STAREG, TWORD, 5739705Slinton SONE, TWORD, 5749705Slinton 0, RLEFT|RESCC, 5759705Slinton " incZL AL\n", 5769705Slinton 5779705Slinton MINUS, INAREG|INTAREG|FORCC, 5789705Slinton STAREG, TWORD, 5799705Slinton SONE, TWORD, 5809705Slinton 0, RLEFT|RESCC, 5819705Slinton " decZL AL\n", 5829705Slinton 5839705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 5849705Slinton SAREG|AWD, TWORD, 5859705Slinton SAREG|AWD, TWORD, 5869705Slinton 0, RLEFT|RESCC, 5879705Slinton " OL2 AR,AL\n", 5889705Slinton 5899705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 5909705Slinton AWD, TSHORT|TUSHORT, 59132971Sdonn SAREG|SNAME|STARNM, TSHORT|TUSHORT|TINT|TUNSIGNED|TLONG|TULONG, 5929705Slinton 0, RLEFT|RESCC, 5939705Slinton " OW2 AR,AL\n", 5949705Slinton 5959705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 5969705Slinton AWD, TSHORT|TUSHORT, 59732971Sdonn SSOREG, TSHORT|TUSHORT|TINT|TUNSIGNED|TLONG|TULONG, 5989705Slinton 0, RLEFT|RESCC, 5999705Slinton " OW2 AR,AL\n", 6009705Slinton 6019705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 60232961Sdonn AWD, TSHORT|TUSHORT, 60332961Sdonn SSCON, ANYFIXED, 60432961Sdonn 0, RLEFT|RESCC, 60532961Sdonn " OW2 AR,AL\n", 60632961Sdonn 60732961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 60832961Sdonn AWD, TSHORT|TUSHORT, 60932961Sdonn AWD, TSHORT|TUSHORT, 61032961Sdonn 0, RLEFT|RESCC, 61132961Sdonn " OW2 AR,AL\n", 61232961Sdonn 61332961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 6149705Slinton AWD, TCHAR|TUCHAR, 61532961Sdonn SSOREG, ANYFIXED, 6169705Slinton 0, RLEFT|RESCC, 6179705Slinton " OB2 AR,AL\n", 6189705Slinton 6199705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6209705Slinton AWD, TCHAR|TUCHAR, 62132961Sdonn SAREG|SNAME|STARNM, ANYFIXED, 6229705Slinton 0, RLEFT|RESCC, 6239705Slinton " OB2 AR,AL\n", 6249705Slinton 6259705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 62632961Sdonn AWD, TCHAR|TUCHAR, 62732961Sdonn SCCON, ANYFIXED, 62832961Sdonn 0, RLEFT|RESCC, 62932961Sdonn " OB2 AR,AL\n", 63032961Sdonn 63132961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 63232961Sdonn AWD, TCHAR|TUCHAR, 63332961Sdonn AWD, TCHAR|TUCHAR, 63432961Sdonn 0, RLEFT|RESCC, 63532961Sdonn " OB2 AR,AL\n", 63632961Sdonn 6379705Slinton OPSIMP, INAREG|INTAREG|FORCC, 6389705Slinton STAREG, ANYFIXED, 6399705Slinton SAREG|AWD, TWORD, 6409705Slinton 0, RLEFT|RESCC, 6419705Slinton " OL2 AR,AL\n", 6429705Slinton 6439705Slinton OPSIMP, INAREG|INTAREG|FORCC, 6449705Slinton SAREG|AWD, TWORD, 6459705Slinton SAREG|AWD, TWORD, 6469705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6479705Slinton " OL3 AR,AL,A1\n", 6489705Slinton 6499705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 6509705Slinton SAREG|AWD, TDOUBLE, 6519705Slinton SAREG|AWD, TDOUBLE, 6529705Slinton 0, RLEFT|RESCC, 6539705Slinton " OD2 AR,AL\n", 6549705Slinton 6559705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 6569705Slinton SAREG|AWD, TFLOAT, 6579705Slinton SAREG|AWD, TFLOAT, 6589705Slinton 0, RLEFT|RESCC, 65917740Sralph #if defined(FORT) || defined(SPRECC) 66016937Sralph " OF2 AR,TAL\n", 66116937Sralph #else 6629705Slinton " OF2 AR,AL\n", 66316937Sralph #endif 6649705Slinton 6659705Slinton ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, 6669705Slinton SAREG|AWD, TFLOAT, 6679705Slinton SAREG|AWD, TDOUBLE, 6689705Slinton NAREG, RLEFT|RESC1|RESCC, 6699705Slinton " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", 6709705Slinton 67125753Sdonn ASG OPFLOAT, INAREG|FOREFF|FORCC, 67225753Sdonn SAREG|AWD, ANYFIXED, 67325753Sdonn #ifndef SPRECC 67425753Sdonn SAREG|AWD, TDOUBLE, /* force FLOAT to register */ 67525753Sdonn #else 67625753Sdonn SAREG|AWD, TFLOAT|TDOUBLE, 67725753Sdonn #endif 67825753Sdonn NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ 67925753Sdonn " ZG\n", 68025753Sdonn 6819705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 6829705Slinton STAREG, TDOUBLE, 6839705Slinton SAREG|AWD, TDOUBLE, 6849705Slinton 0, RLEFT|RESCC, 6859705Slinton " OD2 AR,AL\n", 6869705Slinton 6879705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 6889705Slinton SAREG|AWD, TDOUBLE, 6899705Slinton SAREG|AWD, TDOUBLE, 6909705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6919705Slinton " OD3 AR,AL,A1\n", 6929705Slinton 69317740Sralph #if defined(FORT) || defined(SPRECC) 6949705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 69516937Sralph STAREG, TFLOAT, 69616937Sralph SAREG|AWD, TFLOAT, 6979705Slinton 0, RLEFT|RESCC, 69816937Sralph " OF2 AR,TAL\n", 6999705Slinton 7009705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 7019705Slinton SAREG|AWD, TFLOAT, 7029705Slinton SAREG|AWD, TFLOAT, 7039705Slinton NAREG|NASL|NASR, RESC1|RESCC, 7049705Slinton " OF3 AR,AL,TA1\n", 7059705Slinton #endif 7069705Slinton 70732974Sdonn #ifdef FORT 70832974Sdonn /* perform some implicit conversions XXX SHOULD FIX f77 FRONT END */ 70932974Sdonn OPFLOAT, INAREG|INTAREG|FORCC, 71032974Sdonn SAREG|AWD, TFLOAT, 71132974Sdonn SAREG|AWD, TDOUBLE, 71232974Sdonn NAREG|NASL, RESC1|RESCC, 71332974Sdonn " cvtfd AL,A1\n OD2 AR,A1\n", 71432974Sdonn 71532974Sdonn OPFLOAT, INAREG|INTAREG|FORCC, 71632974Sdonn SAREG|AWD, TDOUBLE, 71732974Sdonn SAREG|AWD, TFLOAT, 71832974Sdonn NAREG|NASR, RESC1|RESCC, 71932974Sdonn " cvtfd AR,A1\n OD3 A1,AL,A1\n", 72032974Sdonn #endif 72132974Sdonn 7229705Slinton /* Default actions for hard trees ... */ 7239705Slinton 7249705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" 7259705Slinton 7269705Slinton UNARY MUL, DF( UNARY MUL ), 7279705Slinton 7289705Slinton INCR, DF(INCR), 7299705Slinton 7309705Slinton DECR, DF(INCR), 7319705Slinton 7329705Slinton ASSIGN, DF(ASSIGN), 7339705Slinton 7349705Slinton STASG, DF(STASG), 7359705Slinton 7369705Slinton FLD, DF(FLD), 7379705Slinton 7389705Slinton OPLEAF, DF(NAME), 7399705Slinton 7409705Slinton OPLOG, FORCC, 7419705Slinton SANY, TANY, 7429705Slinton SANY, TANY, 7439705Slinton REWRITE, BITYPE, 7449705Slinton "", 7459705Slinton 7469705Slinton OPLOG, DF(NOT), 7479705Slinton 7489705Slinton COMOP, DF(COMOP), 7499705Slinton 7509705Slinton INIT, DF(INIT), 7519705Slinton 7529705Slinton OPUNARY, DF(UNARY MINUS), 7539705Slinton 7549705Slinton ASG OPANY, DF(ASG PLUS), 7559705Slinton 7569705Slinton OPANY, DF(BITYPE), 7579705Slinton 7589705Slinton FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }; 759