117740Sralph #ifndef lint 2*32962Sdonn static char *sccsid ="@(#)table.c 1.18 (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 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, 4825753Sdonn SAREG|AWD, ANYSIGNED, 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, 38725582Sbloom 0, RLEFT|RESCC, 3889705Slinton " ZA\n", 3899705Slinton 39032958Sdonn ASSIGN, FOREFF, 3919705Slinton SFLD, TANY, 3929705Slinton SAREG|AWD, TWORD, 39332958Sdonn 0, RNOP, 3949705Slinton " insv AR,$H,$S,AL\n", 3959705Slinton 39632958Sdonn ASSIGN, INAREG, 39732960Sdonn SFLD, ANYSIGNED, 39832958Sdonn SAREG|AWD, TWORD, 39932958Sdonn NAREG, RESC1, 40032958Sdonn " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", 40132958Sdonn 40232960Sdonn ASSIGN, INAREG, 40332960Sdonn SFLD, ANYUSIGNED, 40432960Sdonn SAREG|AWD, TWORD, 40532960Sdonn NAREG, RESC1, 40632960Sdonn " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n", 40732960Sdonn 4089705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4099705Slinton SAREG|AWD, TWORD, 4109705Slinton SFLD, ANYSIGNED, 4119705Slinton 0, RLEFT|RESCC, 4129705Slinton " extv $H,$S,AR,AL\n", 4139705Slinton 4149705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4159705Slinton SAREG|AWD, TWORD, 4169705Slinton SFLD, ANYUSIGNED, 4179705Slinton 0, RLEFT|RESCC, 4189705Slinton " extzv $H,$S,AR,AL\n", 4199705Slinton 4209705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 4219705Slinton UNARY MUL, FOREFF, 4229705Slinton SCC, TANY, 4239705Slinton SCC, TANY, 4249705Slinton 0, RNULL, 4259705Slinton " HELP HELP HELP\n", 4269705Slinton 42732959Sdonn OREG, INTEMP, 42832959Sdonn SANY, TANY, 42932959Sdonn SOREG, TDOUBLE, 43032959Sdonn 2*NTEMP, RESC1, 43132959Sdonn " movd AR,A1\n", 43232959Sdonn 43332959Sdonn OREG, INTEMP, 43432959Sdonn SANY, TANY, 43532959Sdonn SOREG, TANY, 43632959Sdonn NTEMP, RESC1, 43732959Sdonn " movZF AR,A1\n", 43832959Sdonn 4399705Slinton REG, INTEMP, 4409705Slinton SANY, TANY, 4419705Slinton SAREG, TDOUBLE, 4429705Slinton 2*NTEMP, RESC1, 4439705Slinton " movd AR,A1\n", 4449705Slinton 4459705Slinton REG, INTEMP, 4469705Slinton SANY, TANY, 4479705Slinton SAREG, TANY, 4489705Slinton NTEMP, RESC1, 4499705Slinton " movZF AR,A1\n", 4509705Slinton 45117740Sralph #if defined(FORT) || defined(SPRECC) 45217740Sralph REG, FORARG, 4539705Slinton SANY, TANY, 4549705Slinton SAREG, TFLOAT, 4559705Slinton 0, RNULL, 4569705Slinton " cvtfd AR,-(sp)\n", 4579705Slinton 4589705Slinton REG, FORARG, 4599705Slinton SANY, TANY, 4609705Slinton SAREG, TDOUBLE, 4619705Slinton 0, RNULL, 4629705Slinton " movZR AR,-(sp)\n", 4639705Slinton #endif 4649705Slinton 4659705Slinton OPLEAF, FOREFF, 4669705Slinton SANY, TANY, 4679705Slinton SAREG|AWD, TANY, 4689705Slinton 0, RLEFT, 4699705Slinton "", 4709705Slinton 4719705Slinton OPLTYPE, INAREG|INTAREG, 4729705Slinton SANY, TANY, 4739705Slinton SANY, TANY, 4749705Slinton NAREG|NASR, RESC1, 4759705Slinton " ZA\n", 4769705Slinton 4779705Slinton OPLTYPE, FORCC, 4789705Slinton SANY, TANY, 4799705Slinton SANY, TANY, 4809705Slinton 0, RESCC, 4819705Slinton " tstZR AR\n", 4829705Slinton 4839705Slinton OPLTYPE, FORARG, 4849705Slinton SANY, TANY, 4859705Slinton SANY, TWORD, 4869705Slinton 0, RNULL, 4879705Slinton " pushl AR\n", 4889705Slinton 4899705Slinton OPLTYPE, FORARG, 4909705Slinton SANY, TANY, 4919705Slinton SANY, TCHAR|TSHORT, 4929705Slinton 0, RNULL, 4939705Slinton " cvtZRl AR,-(sp)\n", 4949705Slinton 4959705Slinton OPLTYPE, FORARG, 4969705Slinton SANY, TANY, 4979705Slinton SANY, TUCHAR|TUSHORT, 4989705Slinton 0, RNULL, 4999705Slinton " movzZRl AR,-(sp)\n", 5009705Slinton 5019705Slinton OPLTYPE, FORARG, 5029705Slinton SANY, TANY, 5039705Slinton SANY, TDOUBLE, 5049705Slinton 0, RNULL, 5059705Slinton " movd AR,-(sp)\n", 5069705Slinton 5079705Slinton OPLTYPE, FORARG, 5089705Slinton SANY, TANY, 5099705Slinton SANY, TFLOAT, 5109705Slinton 0, RNULL, 5119705Slinton " cvtfd AR,-(sp)\n", 5129705Slinton 51317740Sralph #if defined(FORT) || defined(SPRECC) 5149705Slinton UNARY MINUS, INTAREG|FORCC, 51524417Smckusick SAREG|AWD, TFLOAT, 51616182Sralph SANY, TANY, 51716182Sralph NAREG|NASL, RESC1|RESCC, 51816182Sralph " mnegZL TAL,A1\n", 51916182Sralph 52024417Smckusick #endif 52116182Sralph 52216182Sralph UNARY MINUS, INTAREG|FORCC, 5239705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE, 5249705Slinton SANY, TANY, 5259705Slinton NAREG|NASL, RESC1|RESCC, 5269705Slinton " mnegZL AL,A1\n", 5279705Slinton 5289705Slinton COMPL, INTAREG|FORCC, 52923479Smckusick SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5309705Slinton SANY, TANY, 5319705Slinton NAREG|NASL, RESC1|RESCC, 5329705Slinton " mcomZL AL,A1\n", 5339705Slinton 5349705Slinton COMPL, INTAREG|FORCC, 5359705Slinton SAREG|AWD, ANYSIGNED|ANYUSIGNED, 5369705Slinton SANY, TANY, 5379705Slinton NAREG|NASL, RESC1|RESCC, 5389705Slinton " cvtZLl AL,A1\n mcoml A1,A1\n", 5399705Slinton 5409705Slinton AND, FORCC, 5419705Slinton SAREG|AWD, TWORD, 5429705Slinton SCON, TWORD, 5439705Slinton 0, RESCC, 5449705Slinton " bitl ZZ,AL\n", 5459705Slinton 5469705Slinton AND, FORCC, 5479705Slinton SAREG|AWD, TSHORT|TUSHORT, 5489705Slinton SSCON, TWORD, 5499705Slinton 0, RESCC, 5509705Slinton " bitw ZZ,AL\n", 5519705Slinton 5529705Slinton AND, FORCC, 5539705Slinton SAREG|AWD, TCHAR|TUCHAR, 5549705Slinton SCCON, TWORD, 5559705Slinton 0, RESCC, 5569705Slinton " bitb ZZ,AL\n", 5579705Slinton 5589705Slinton ASG AND, INAREG|FOREFF|FORCC, 5599705Slinton SAREG, TWORD, 5609705Slinton SCON, TWORD, 5619705Slinton 0, RLEFT|RESCC, 5629705Slinton " bicl2 AR,AL\n", 5639705Slinton 564*32962Sdonn DIV, INAREG|FOREFF|FORCC, 565*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 566*32962Sdonn SCON, TANY, 567*32962Sdonn NAREG|NEVEN, RESC1|RESCC, 568*32962Sdonn " movl AL,A1\n clrl U1\n ediv A1,AR,A1,U1\n", 569*32962Sdonn 570*32962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 571*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 572*32962Sdonn SMCON, TANY, 573*32962Sdonn 0, RLEFT|RESCC, 574*32962Sdonn " ZJ\n", 575*32962Sdonn 576*32962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 577*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 578*32962Sdonn SCON, TANY, 579*32962Sdonn NAREG|NEVEN, RLEFT|RESCC, 580*32962Sdonn " movl AL,A1\n clrl U1\n ediv A1,AR,AL,U1\n", 581*32962Sdonn 582*32962Sdonn MOD, INAREG|INTAREG, 583*32962Sdonn SAREG|AWD, TINT|TLONG, 584*32962Sdonn SAREG|AWD, TINT|TLONG, 585*32962Sdonn NAREG, RESC1, 586*32962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 587*32962Sdonn 588*32962Sdonn MOD, INAREG|FOREFF, 589*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 590*32962Sdonn SMCON, TANY, 591*32962Sdonn NAREG|NASL, RLEFT|RESC1, 592*32962Sdonn " ZJ\n", 593*32962Sdonn 594*32962Sdonn MOD, FORCC, 595*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 596*32962Sdonn SMCON, TANY, 597*32962Sdonn NAREG|NASL, RESCC, 598*32962Sdonn " ZJ\n tstl A1\n", 599*32962Sdonn 600*32962Sdonn MOD, INAREG|FOREFF, 601*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 602*32962Sdonn SCON, TANY, 603*32962Sdonn NAREG|NEVEN, RESC1|RESCC, 604*32962Sdonn " movl AL,A1\n clrl U1\n ediv A1,AR,U1,A1\n", 605*32962Sdonn 606*32962Sdonn MOD, FORCC, 607*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 608*32962Sdonn SCON, TANY, 609*32962Sdonn NAREG|NEVEN, RESC1|RESCC, 610*32962Sdonn " movl AL,A1\n clrl U1\n ediv A1,AR,U1,A1\n tstl A1\n", 611*32962Sdonn 612*32962Sdonn ASG MOD, INAREG|INTAREG|FOREFF|FORCC, 613*32962Sdonn SAREG, TINT|TLONG, 614*32962Sdonn SAREG|AWD, TINT|TLONG, 615*32962Sdonn NAREG, RLEFT|RESCC, 616*32962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", 617*32962Sdonn 618*32962Sdonn ASG MOD, INAREG|FOREFF, 619*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 620*32962Sdonn SMCON, TANY, 621*32962Sdonn 0, RLEFT|RESCC, 622*32962Sdonn " ZJ\n", 623*32962Sdonn 624*32962Sdonn ASG MOD, FORCC, 625*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 626*32962Sdonn SMCON, TANY, 627*32962Sdonn 0, RLEFT|RESCC, 628*32962Sdonn " ZJ\n tstl AL\n", 629*32962Sdonn 630*32962Sdonn ASG MOD, INAREG|FOREFF, 631*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 632*32962Sdonn SCON, TANY, 633*32962Sdonn NAREG|NEVEN, RLEFT|RESCC, 634*32962Sdonn " movl AL,A1\n clrl U1\n ediv A1,AR,A1,AL\n", 635*32962Sdonn 636*32962Sdonn ASG MOD, FORCC, 637*32962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 638*32962Sdonn SCON, TANY, 639*32962Sdonn NAREG|NEVEN, RLEFT|RESCC, 640*32962Sdonn " movl AL,A1\n clrl U1\n ediv A1,AR,A1,AL\n tstl AL\n", 641*32962Sdonn 6429705Slinton ASG OPMUL, INAREG|FOREFF|FORCC, 6439705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6449705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6459705Slinton 0, RLEFT|RESCC, 6469705Slinton " OL2 AR,AL\n", 6479705Slinton 6489705Slinton OPMUL, INAREG|INTAREG|FORCC, 6499705Slinton STAREG, TINT|TUNSIGNED|TLONG|TULONG, 6509705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6519705Slinton 0, RLEFT|RESCC, 6529705Slinton " OL2 AR,AL\n", 6539705Slinton 6549705Slinton OPMUL, INAREG|INTAREG|FORCC, 6559705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6569705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6579705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6589705Slinton " OL3 AR,AL,A1\n", 6599705Slinton 6609705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6619705Slinton SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 6629705Slinton SONE, TINT|TLONG, 6639705Slinton 0, RLEFT|RESCC, 6649705Slinton " incZL AL\n", 6659705Slinton 6669705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6679705Slinton AWD, ANYSIGNED|ANYUSIGNED, 6689705Slinton SONE, TINT|TLONG, 6699705Slinton 0, RLEFT|RESCC, 6709705Slinton " incZL AL\n", 6719705Slinton 6729705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6739705Slinton SAREG, TSHORT|TCHAR, 6749705Slinton SONE, TINT|TLONG, 6759705Slinton 0, RLEFT|RESCC, 6769705Slinton " incZL AL\n cvtZLl AL,AL\n", 6779705Slinton 6789705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6799705Slinton SAREG, TUSHORT|TUCHAR, 6809705Slinton SONE, TINT|TLONG, 6819705Slinton 0, RLEFT|RESCC, 6829705Slinton " incZL AL\n movzZLl AL,AL\n", 6839705Slinton 6849705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6859705Slinton SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 6869705Slinton SONE, TINT|TLONG, 6879705Slinton 0, RLEFT|RESCC, 6889705Slinton " decZL AL\n", 6899705Slinton 6909705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6919705Slinton AWD, ANYSIGNED|ANYUSIGNED, 6929705Slinton SONE, TINT|TLONG, 6939705Slinton 0, RLEFT|RESCC, 6949705Slinton " decZL AL\n", 6959705Slinton 6969705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6979705Slinton SAREG, TSHORT|TCHAR, 6989705Slinton SONE, TINT|TLONG, 6999705Slinton 0, RLEFT|RESCC, 7009705Slinton " decZL AL\n cvtZLl AL,AL\n", 7019705Slinton 7029705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 7039705Slinton SAREG, TUSHORT|TUCHAR, 7049705Slinton SONE, TINT|TLONG, 7059705Slinton 0, RLEFT|RESCC, 7069705Slinton " decZL AL\n movzZLl AL,AL\n", 7079705Slinton 7089705Slinton PLUS, INAREG|INTAREG|FORCC, 7099705Slinton STAREG, TWORD, 7109705Slinton SONE, TWORD, 7119705Slinton 0, RLEFT|RESCC, 7129705Slinton " incZL AL\n", 7139705Slinton 7149705Slinton PLUS, INAREG|INTAREG|FORCC, 7159705Slinton STAREG, TSHORT|TCHAR, 7169705Slinton SONE, TWORD, 7179705Slinton 0, RLEFT|RESCC, 7189705Slinton " incZL AL\n cvtZLl AL,AL\n", 7199705Slinton 7209705Slinton PLUS, INAREG|INTAREG|FORCC, 7219705Slinton STAREG, TUSHORT|TUCHAR, 7229705Slinton SONE, TWORD, 7239705Slinton 0, RLEFT|RESCC, 7249705Slinton " incZL AL\n movzZLl AL,AL\n", 7259705Slinton 7269705Slinton MINUS, INAREG|INTAREG|FORCC, 7279705Slinton STAREG, TWORD, 7289705Slinton SONE, TWORD, 7299705Slinton 0, RLEFT|RESCC, 7309705Slinton " decZL AL\n", 7319705Slinton 7329705Slinton MINUS, INAREG|INTAREG|FORCC, 7339705Slinton STAREG, TSHORT|TCHAR, 7349705Slinton SONE, TWORD, 7359705Slinton 0, RLEFT|RESCC, 7369705Slinton " decZL AL\n cvtZLl AL,AL\n", 7379705Slinton 7389705Slinton MINUS, INAREG|INTAREG|FORCC, 7399705Slinton STAREG, TUSHORT|TUCHAR, 7409705Slinton SONE, TWORD, 7419705Slinton 0, RLEFT|RESCC, 7429705Slinton " decZL AL\n movzZLl AL,AL\n", 7439705Slinton 7449705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7459705Slinton SAREG|AWD, TWORD, 7469705Slinton SAREG|AWD, TWORD, 7479705Slinton 0, RLEFT|RESCC, 7489705Slinton " OL2 AR,AL\n", 7499705Slinton 7509705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7519705Slinton SAREG, TWORD, 7529705Slinton SAREG, TSHORT|TUSHORT|TCHAR|TUCHAR, 7539705Slinton 0, RLEFT|RESCC, 7549705Slinton " OL2 AR,AL\n", 7559705Slinton 7569705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7579705Slinton AWD, TSHORT|TUSHORT, 75832961Sdonn SSOREG, TSHORT|TUSHORT|TINT|TUNSIGNED, 7599705Slinton 0, RLEFT|RESCC, 7609705Slinton " OW2 AR,AL\n", 7619705Slinton 7629705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7639705Slinton AWD, TSHORT|TUSHORT, 76432961Sdonn SAREG|SNAME|STARNM, TSHORT|TUSHORT|TINT|TUNSIGNED, 7659705Slinton 0, RLEFT|RESCC, 7669705Slinton " OW2 AR,AL\n", 7679705Slinton 7689705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 76932961Sdonn AWD, TSHORT|TUSHORT, 77032961Sdonn SSCON, ANYFIXED, 77132961Sdonn 0, RLEFT|RESCC, 77232961Sdonn " OW2 AR,AL\n", 77332961Sdonn 77432961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 77532961Sdonn AWD, TSHORT|TUSHORT, 77632961Sdonn AWD, TSHORT|TUSHORT, 77732961Sdonn 0, RLEFT|RESCC, 77832961Sdonn " OW2 AR,AL\n", 77932961Sdonn 78032961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 7819705Slinton AWD, TCHAR|TUCHAR, 78232961Sdonn SSOREG, ANYFIXED, 7839705Slinton 0, RLEFT|RESCC, 7849705Slinton " OB2 AR,AL\n", 7859705Slinton 7869705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7879705Slinton AWD, TCHAR|TUCHAR, 78832961Sdonn SAREG|SNAME|STARNM, ANYFIXED, 7899705Slinton 0, RLEFT|RESCC, 7909705Slinton " OB2 AR,AL\n", 7919705Slinton 7929705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 79332961Sdonn AWD, TCHAR|TUCHAR, 79432961Sdonn SCCON, ANYFIXED, 79532961Sdonn 0, RLEFT|RESCC, 79632961Sdonn " OB2 AR,AL\n", 79732961Sdonn 79832961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 79932961Sdonn AWD, TCHAR|TUCHAR, 80032961Sdonn AWD, TCHAR|TUCHAR, 80132961Sdonn 0, RLEFT|RESCC, 80232961Sdonn " OB2 AR,AL\n", 80332961Sdonn 80432961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 8059705Slinton SAREG, TSHORT, 8069705Slinton SAREG|AWD, ANYFIXED, 8079705Slinton 0, RLEFT|RESCC, 8089705Slinton " OW2 AR,AL\n cvtZLl AL,AL\n", 8099705Slinton 8109705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 8119705Slinton SAREG, TUSHORT, 8129705Slinton SAREG|AWD, ANYFIXED, 8139705Slinton 0, RLEFT|RESCC, 8149705Slinton " OW2 AR,AL\n movzZLl AL,AL\n", 8159705Slinton 8169705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 8179705Slinton SAREG, TCHAR, 8189705Slinton SAREG|AWD, ANYFIXED, 8199705Slinton 0, RLEFT|RESCC, 8209705Slinton " OB2 AR,AL\n cvtZLl AL,AL\n", 8219705Slinton 8229705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 8239705Slinton SAREG, TUCHAR, 8249705Slinton SAREG|AWD, ANYFIXED, 8259705Slinton 0, RLEFT|RESCC, 8269705Slinton " OB2 AR,AL\n movzZLl AL,AL\n", 8279705Slinton 8289705Slinton OPSIMP, INAREG|INTAREG|FORCC, 8299705Slinton STAREG, ANYFIXED, 8309705Slinton SAREG|AWD, TWORD, 8319705Slinton 0, RLEFT|RESCC, 8329705Slinton " OL2 AR,AL\n", 8339705Slinton 8349705Slinton OPSIMP, INAREG|INTAREG|FORCC, 8359705Slinton SAREG|AWD, TWORD, 8369705Slinton SAREG|AWD, TWORD, 8379705Slinton NAREG|NASL|NASR, RESC1|RESCC, 8389705Slinton " OL3 AR,AL,A1\n", 8399705Slinton 8409705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 8419705Slinton SAREG|AWD, TDOUBLE, 8429705Slinton SAREG|AWD, TDOUBLE, 8439705Slinton 0, RLEFT|RESCC, 8449705Slinton " OD2 AR,AL\n", 8459705Slinton 8469705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 8479705Slinton SAREG|AWD, TFLOAT, 8489705Slinton SAREG|AWD, TFLOAT, 8499705Slinton 0, RLEFT|RESCC, 85017740Sralph #if defined(FORT) || defined(SPRECC) 85116937Sralph " OF2 AR,TAL\n", 85216937Sralph #else 8539705Slinton " OF2 AR,AL\n", 85416937Sralph #endif 8559705Slinton 8569705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 8579705Slinton SAREG|AWD, TDOUBLE, 8589705Slinton SAREG|AWD, TFLOAT, 8599705Slinton NAREG|NASR, RLEFT|RESCC, 8609705Slinton " cvtfd AR,A1\n OD2 A1,AL\n", 8619705Slinton 8629705Slinton ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, 8639705Slinton SAREG|AWD, TFLOAT, 8649705Slinton SAREG|AWD, TDOUBLE, 8659705Slinton NAREG, RLEFT|RESC1|RESCC, 8669705Slinton " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", 8679705Slinton 86825753Sdonn ASG OPFLOAT, INAREG|FOREFF|FORCC, 86925753Sdonn SAREG|AWD, ANYFIXED, 87025753Sdonn #ifndef SPRECC 87125753Sdonn SAREG|AWD, TDOUBLE, /* force FLOAT to register */ 87225753Sdonn #else 87325753Sdonn SAREG|AWD, TFLOAT|TDOUBLE, 87425753Sdonn #endif 87525753Sdonn NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ 87625753Sdonn " ZG\n", 87725753Sdonn 8789705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8799705Slinton STAREG, TDOUBLE, 8809705Slinton SAREG|AWD, TDOUBLE, 8819705Slinton 0, RLEFT|RESCC, 8829705Slinton " OD2 AR,AL\n", 8839705Slinton 8849705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8859705Slinton SAREG|AWD, TDOUBLE, 8869705Slinton SAREG|AWD, TDOUBLE, 8879705Slinton NAREG|NASL|NASR, RESC1|RESCC, 8889705Slinton " OD3 AR,AL,A1\n", 8899705Slinton 8909705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8919705Slinton SAREG|AWD, TFLOAT, 8929705Slinton SAREG|AWD, TDOUBLE, 8939705Slinton NAREG|NASL, RESC1|RESCC, 8949705Slinton " cvtfd AL,A1\n OD2 AR,A1\n", 8959705Slinton 8969705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8979705Slinton SAREG|AWD, TDOUBLE, 8989705Slinton SAREG|AWD, TFLOAT, 8999705Slinton NAREG|NASR, RESC1|RESCC, 9009705Slinton " cvtfd AR,A1\n OD3 A1,AL,A1\n", 9019705Slinton 90217740Sralph #if defined(FORT) || defined(SPRECC) 9039705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 90416937Sralph STAREG, TFLOAT, 90516937Sralph SAREG|AWD, TFLOAT, 9069705Slinton 0, RLEFT|RESCC, 90716937Sralph " OF2 AR,TAL\n", 9089705Slinton 9099705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 9109705Slinton SAREG|AWD, TFLOAT, 9119705Slinton SAREG|AWD, TFLOAT, 9129705Slinton NAREG|NASL|NASR, RESC1|RESCC, 9139705Slinton " OF3 AR,AL,TA1\n", 9149705Slinton #endif 9159705Slinton 9169705Slinton /* Default actions for hard trees ... */ 9179705Slinton 9189705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" 9199705Slinton 9209705Slinton UNARY MUL, DF( UNARY MUL ), 9219705Slinton 9229705Slinton INCR, DF(INCR), 9239705Slinton 9249705Slinton DECR, DF(INCR), 9259705Slinton 9269705Slinton ASSIGN, DF(ASSIGN), 9279705Slinton 9289705Slinton STASG, DF(STASG), 9299705Slinton 9309705Slinton FLD, DF(FLD), 9319705Slinton 9329705Slinton OPLEAF, DF(NAME), 9339705Slinton 9349705Slinton OPLOG, FORCC, 9359705Slinton SANY, TANY, 9369705Slinton SANY, TANY, 9379705Slinton REWRITE, BITYPE, 9389705Slinton "", 9399705Slinton 9409705Slinton OPLOG, DF(NOT), 9419705Slinton 9429705Slinton COMOP, DF(COMOP), 9439705Slinton 9449705Slinton INIT, DF(INIT), 9459705Slinton 9469705Slinton OPUNARY, DF(UNARY MINUS), 9479705Slinton 9489705Slinton 9499705Slinton ASG OPANY, DF(ASG PLUS), 9509705Slinton 9519705Slinton OPANY, DF(BITYPE), 9529705Slinton 9539705Slinton FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }; 954