117740Sralph #ifndef lint 2*32959Sdonn static char *sccsid ="@(#)table.c 1.15 (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, 39732958Sdonn SFLD, TANY, 39832958Sdonn SAREG|AWD, TWORD, 39932958Sdonn NAREG, RESC1, 40032958Sdonn " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", 40132958Sdonn 4029705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4039705Slinton SAREG|AWD, TWORD, 4049705Slinton SFLD, ANYSIGNED, 4059705Slinton 0, RLEFT|RESCC, 4069705Slinton " extv $H,$S,AR,AL\n", 4079705Slinton 4089705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4099705Slinton SAREG|AWD, TWORD, 4109705Slinton SFLD, ANYUSIGNED, 4119705Slinton 0, RLEFT|RESCC, 4129705Slinton " extzv $H,$S,AR,AL\n", 4139705Slinton 4149705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 4159705Slinton UNARY MUL, FOREFF, 4169705Slinton SCC, TANY, 4179705Slinton SCC, TANY, 4189705Slinton 0, RNULL, 4199705Slinton " HELP HELP HELP\n", 4209705Slinton 421*32959Sdonn OREG, INTEMP, 422*32959Sdonn SANY, TANY, 423*32959Sdonn SOREG, TDOUBLE, 424*32959Sdonn 2*NTEMP, RESC1, 425*32959Sdonn " movd AR,A1\n", 426*32959Sdonn 427*32959Sdonn OREG, INTEMP, 428*32959Sdonn SANY, TANY, 429*32959Sdonn SOREG, TANY, 430*32959Sdonn NTEMP, RESC1, 431*32959Sdonn " movZF AR,A1\n", 432*32959Sdonn 4339705Slinton REG, INTEMP, 4349705Slinton SANY, TANY, 4359705Slinton SAREG, TDOUBLE, 4369705Slinton 2*NTEMP, RESC1, 4379705Slinton " movd AR,A1\n", 4389705Slinton 4399705Slinton REG, INTEMP, 4409705Slinton SANY, TANY, 4419705Slinton SAREG, TANY, 4429705Slinton NTEMP, RESC1, 4439705Slinton " movZF AR,A1\n", 4449705Slinton 44517740Sralph #if defined(FORT) || defined(SPRECC) 44617740Sralph REG, FORARG, 4479705Slinton SANY, TANY, 4489705Slinton SAREG, TFLOAT, 4499705Slinton 0, RNULL, 4509705Slinton " cvtfd AR,-(sp)\n", 4519705Slinton 4529705Slinton REG, FORARG, 4539705Slinton SANY, TANY, 4549705Slinton SAREG, TDOUBLE, 4559705Slinton 0, RNULL, 4569705Slinton " movZR AR,-(sp)\n", 4579705Slinton #endif 4589705Slinton 4599705Slinton OPLEAF, FOREFF, 4609705Slinton SANY, TANY, 4619705Slinton SAREG|AWD, TANY, 4629705Slinton 0, RLEFT, 4639705Slinton "", 4649705Slinton 4659705Slinton OPLTYPE, INAREG|INTAREG, 4669705Slinton SANY, TANY, 4679705Slinton SANY, TANY, 4689705Slinton NAREG|NASR, RESC1, 4699705Slinton " ZA\n", 4709705Slinton 4719705Slinton OPLTYPE, FORCC, 4729705Slinton SANY, TANY, 4739705Slinton SANY, TANY, 4749705Slinton 0, RESCC, 4759705Slinton " tstZR AR\n", 4769705Slinton 4779705Slinton OPLTYPE, FORARG, 4789705Slinton SANY, TANY, 4799705Slinton SANY, TWORD, 4809705Slinton 0, RNULL, 4819705Slinton " pushl AR\n", 4829705Slinton 4839705Slinton OPLTYPE, FORARG, 4849705Slinton SANY, TANY, 4859705Slinton SANY, TCHAR|TSHORT, 4869705Slinton 0, RNULL, 4879705Slinton " cvtZRl AR,-(sp)\n", 4889705Slinton 4899705Slinton OPLTYPE, FORARG, 4909705Slinton SANY, TANY, 4919705Slinton SANY, TUCHAR|TUSHORT, 4929705Slinton 0, RNULL, 4939705Slinton " movzZRl AR,-(sp)\n", 4949705Slinton 4959705Slinton OPLTYPE, FORARG, 4969705Slinton SANY, TANY, 4979705Slinton SANY, TDOUBLE, 4989705Slinton 0, RNULL, 4999705Slinton " movd AR,-(sp)\n", 5009705Slinton 5019705Slinton OPLTYPE, FORARG, 5029705Slinton SANY, TANY, 5039705Slinton SANY, TFLOAT, 5049705Slinton 0, RNULL, 5059705Slinton " cvtfd AR,-(sp)\n", 5069705Slinton 50717740Sralph #if defined(FORT) || defined(SPRECC) 5089705Slinton UNARY MINUS, INTAREG|FORCC, 50924417Smckusick SAREG|AWD, TFLOAT, 51016182Sralph SANY, TANY, 51116182Sralph NAREG|NASL, RESC1|RESCC, 51216182Sralph " mnegZL TAL,A1\n", 51316182Sralph 51424417Smckusick #endif 51516182Sralph 51616182Sralph UNARY MINUS, INTAREG|FORCC, 5179705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE, 5189705Slinton SANY, TANY, 5199705Slinton NAREG|NASL, RESC1|RESCC, 5209705Slinton " mnegZL AL,A1\n", 5219705Slinton 5229705Slinton COMPL, INTAREG|FORCC, 52323479Smckusick SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5249705Slinton SANY, TANY, 5259705Slinton NAREG|NASL, RESC1|RESCC, 5269705Slinton " mcomZL AL,A1\n", 5279705Slinton 5289705Slinton COMPL, INTAREG|FORCC, 5299705Slinton SAREG|AWD, ANYSIGNED|ANYUSIGNED, 5309705Slinton SANY, TANY, 5319705Slinton NAREG|NASL, RESC1|RESCC, 5329705Slinton " cvtZLl AL,A1\n mcoml A1,A1\n", 5339705Slinton 5349705Slinton AND, FORCC, 5359705Slinton SAREG|AWD, TWORD, 5369705Slinton SCON, TWORD, 5379705Slinton 0, RESCC, 5389705Slinton " bitl ZZ,AL\n", 5399705Slinton 5409705Slinton AND, FORCC, 5419705Slinton SAREG|AWD, TSHORT|TUSHORT, 5429705Slinton SSCON, TWORD, 5439705Slinton 0, RESCC, 5449705Slinton " bitw ZZ,AL\n", 5459705Slinton 5469705Slinton AND, FORCC, 5479705Slinton SAREG|AWD, TCHAR|TUCHAR, 5489705Slinton SCCON, TWORD, 5499705Slinton 0, RESCC, 5509705Slinton " bitb ZZ,AL\n", 5519705Slinton 5529705Slinton ASG AND, INAREG|FOREFF|FORCC, 5539705Slinton SAREG, TWORD, 5549705Slinton SCON, TWORD, 5559705Slinton 0, RLEFT|RESCC, 5569705Slinton " bicl2 AR,AL\n", 5579705Slinton 5589705Slinton ASG OPMUL, INAREG|FOREFF|FORCC, 5599705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5609705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5619705Slinton 0, RLEFT|RESCC, 5629705Slinton " OL2 AR,AL\n", 5639705Slinton 5649705Slinton OPMUL, INAREG|INTAREG|FORCC, 5659705Slinton STAREG, TINT|TUNSIGNED|TLONG|TULONG, 5669705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5679705Slinton 0, RLEFT|RESCC, 5689705Slinton " OL2 AR,AL\n", 5699705Slinton 5709705Slinton OPMUL, INAREG|INTAREG|FORCC, 5719705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5729705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5739705Slinton NAREG|NASL|NASR, RESC1|RESCC, 5749705Slinton " OL3 AR,AL,A1\n", 5759705Slinton 5769705Slinton ASG MOD, INAREG|INTAREG|FOREFF|FORCC, 5779705Slinton SAREG, TINT|TUNSIGNED|TLONG|TULONG, 5789705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5799705Slinton NAREG, RLEFT|RESCC, 5809705Slinton " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", 5819705Slinton 5829705Slinton MOD, INAREG|INTAREG, 5839705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5849705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5859705Slinton NAREG, RESC1, 5869705Slinton " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 5879705Slinton 5889705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 5899705Slinton SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 5909705Slinton SONE, TINT|TLONG, 5919705Slinton 0, RLEFT|RESCC, 5929705Slinton " incZL AL\n", 5939705Slinton 5949705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 5959705Slinton AWD, ANYSIGNED|ANYUSIGNED, 5969705Slinton SONE, TINT|TLONG, 5979705Slinton 0, RLEFT|RESCC, 5989705Slinton " incZL AL\n", 5999705Slinton 6009705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6019705Slinton SAREG, TSHORT|TCHAR, 6029705Slinton SONE, TINT|TLONG, 6039705Slinton 0, RLEFT|RESCC, 6049705Slinton " incZL AL\n cvtZLl AL,AL\n", 6059705Slinton 6069705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6079705Slinton SAREG, TUSHORT|TUCHAR, 6089705Slinton SONE, TINT|TLONG, 6099705Slinton 0, RLEFT|RESCC, 6109705Slinton " incZL AL\n movzZLl AL,AL\n", 6119705Slinton 6129705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6139705Slinton SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 6149705Slinton SONE, TINT|TLONG, 6159705Slinton 0, RLEFT|RESCC, 6169705Slinton " decZL AL\n", 6179705Slinton 6189705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6199705Slinton AWD, ANYSIGNED|ANYUSIGNED, 6209705Slinton SONE, TINT|TLONG, 6219705Slinton 0, RLEFT|RESCC, 6229705Slinton " decZL AL\n", 6239705Slinton 6249705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6259705Slinton SAREG, TSHORT|TCHAR, 6269705Slinton SONE, TINT|TLONG, 6279705Slinton 0, RLEFT|RESCC, 6289705Slinton " decZL AL\n cvtZLl AL,AL\n", 6299705Slinton 6309705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6319705Slinton SAREG, TUSHORT|TUCHAR, 6329705Slinton SONE, TINT|TLONG, 6339705Slinton 0, RLEFT|RESCC, 6349705Slinton " decZL AL\n movzZLl AL,AL\n", 6359705Slinton 6369705Slinton PLUS, INAREG|INTAREG|FORCC, 6379705Slinton STAREG, TWORD, 6389705Slinton SONE, TWORD, 6399705Slinton 0, RLEFT|RESCC, 6409705Slinton " incZL AL\n", 6419705Slinton 6429705Slinton PLUS, INAREG|INTAREG|FORCC, 6439705Slinton STAREG, TSHORT|TCHAR, 6449705Slinton SONE, TWORD, 6459705Slinton 0, RLEFT|RESCC, 6469705Slinton " incZL AL\n cvtZLl AL,AL\n", 6479705Slinton 6489705Slinton PLUS, INAREG|INTAREG|FORCC, 6499705Slinton STAREG, TUSHORT|TUCHAR, 6509705Slinton SONE, TWORD, 6519705Slinton 0, RLEFT|RESCC, 6529705Slinton " incZL AL\n movzZLl AL,AL\n", 6539705Slinton 6549705Slinton MINUS, INAREG|INTAREG|FORCC, 6559705Slinton STAREG, TWORD, 6569705Slinton SONE, TWORD, 6579705Slinton 0, RLEFT|RESCC, 6589705Slinton " decZL AL\n", 6599705Slinton 6609705Slinton MINUS, INAREG|INTAREG|FORCC, 6619705Slinton STAREG, TSHORT|TCHAR, 6629705Slinton SONE, TWORD, 6639705Slinton 0, RLEFT|RESCC, 6649705Slinton " decZL AL\n cvtZLl AL,AL\n", 6659705Slinton 6669705Slinton MINUS, INAREG|INTAREG|FORCC, 6679705Slinton STAREG, TUSHORT|TUCHAR, 6689705Slinton SONE, TWORD, 6699705Slinton 0, RLEFT|RESCC, 6709705Slinton " decZL AL\n movzZLl AL,AL\n", 6719705Slinton 6729705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6739705Slinton SAREG|AWD, TWORD, 6749705Slinton SAREG|AWD, TWORD, 6759705Slinton 0, RLEFT|RESCC, 6769705Slinton " OL2 AR,AL\n", 6779705Slinton 6789705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6799705Slinton SAREG, TWORD, 6809705Slinton SAREG, TSHORT|TUSHORT|TCHAR|TUCHAR, 6819705Slinton 0, RLEFT|RESCC, 6829705Slinton " OL2 AR,AL\n", 6839705Slinton 6849705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6859705Slinton AWD, TSHORT|TUSHORT, 6869705Slinton SAREG|AWD, TSHORT|TUSHORT, 6879705Slinton 0, RLEFT|RESCC, 6889705Slinton " OW2 AR,AL\n", 6899705Slinton 6909705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6919705Slinton AWD, TSHORT|TUSHORT, 6929705Slinton SSCON, TWORD, 6939705Slinton 0, RLEFT|RESCC, 6949705Slinton " OW2 AR,AL\n", 6959705Slinton 6969705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 6979705Slinton AWD, TCHAR|TUCHAR, 6989705Slinton SAREG|AWD, TCHAR|TUCHAR, 6999705Slinton 0, RLEFT|RESCC, 7009705Slinton " OB2 AR,AL\n", 7019705Slinton 7029705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7039705Slinton AWD, TCHAR|TUCHAR, 7049705Slinton SCCON, TWORD, 7059705Slinton 0, RLEFT|RESCC, 7069705Slinton " OB2 AR,AL\n", 7079705Slinton 7089705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7099705Slinton SAREG, TSHORT, 7109705Slinton SAREG|AWD, ANYFIXED, 7119705Slinton 0, RLEFT|RESCC, 7129705Slinton " OW2 AR,AL\n cvtZLl AL,AL\n", 7139705Slinton 7149705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7159705Slinton SAREG, TUSHORT, 7169705Slinton SAREG|AWD, ANYFIXED, 7179705Slinton 0, RLEFT|RESCC, 7189705Slinton " OW2 AR,AL\n movzZLl AL,AL\n", 7199705Slinton 7209705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7219705Slinton SAREG, TCHAR, 7229705Slinton SAREG|AWD, ANYFIXED, 7239705Slinton 0, RLEFT|RESCC, 7249705Slinton " OB2 AR,AL\n cvtZLl AL,AL\n", 7259705Slinton 7269705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7279705Slinton SAREG, TUCHAR, 7289705Slinton SAREG|AWD, ANYFIXED, 7299705Slinton 0, RLEFT|RESCC, 7309705Slinton " OB2 AR,AL\n movzZLl AL,AL\n", 7319705Slinton 7329705Slinton OPSIMP, INAREG|INTAREG|FORCC, 7339705Slinton STAREG, ANYFIXED, 7349705Slinton SAREG|AWD, TWORD, 7359705Slinton 0, RLEFT|RESCC, 7369705Slinton " OL2 AR,AL\n", 7379705Slinton 7389705Slinton OPSIMP, INAREG|INTAREG|FORCC, 7399705Slinton SAREG|AWD, TWORD, 7409705Slinton SAREG|AWD, TWORD, 7419705Slinton NAREG|NASL|NASR, RESC1|RESCC, 7429705Slinton " OL3 AR,AL,A1\n", 7439705Slinton 7449705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 7459705Slinton SAREG|AWD, TDOUBLE, 7469705Slinton SAREG|AWD, TDOUBLE, 7479705Slinton 0, RLEFT|RESCC, 7489705Slinton " OD2 AR,AL\n", 7499705Slinton 7509705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 7519705Slinton SAREG|AWD, TFLOAT, 7529705Slinton SAREG|AWD, TFLOAT, 7539705Slinton 0, RLEFT|RESCC, 75417740Sralph #if defined(FORT) || defined(SPRECC) 75516937Sralph " OF2 AR,TAL\n", 75616937Sralph #else 7579705Slinton " OF2 AR,AL\n", 75816937Sralph #endif 7599705Slinton 7609705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 7619705Slinton SAREG|AWD, TDOUBLE, 7629705Slinton SAREG|AWD, TFLOAT, 7639705Slinton NAREG|NASR, RLEFT|RESCC, 7649705Slinton " cvtfd AR,A1\n OD2 A1,AL\n", 7659705Slinton 7669705Slinton ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, 7679705Slinton SAREG|AWD, TFLOAT, 7689705Slinton SAREG|AWD, TDOUBLE, 7699705Slinton NAREG, RLEFT|RESC1|RESCC, 7709705Slinton " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", 7719705Slinton 77225753Sdonn ASG OPFLOAT, INAREG|FOREFF|FORCC, 77325753Sdonn SAREG|AWD, ANYFIXED, 77425753Sdonn #ifndef SPRECC 77525753Sdonn SAREG|AWD, TDOUBLE, /* force FLOAT to register */ 77625753Sdonn #else 77725753Sdonn SAREG|AWD, TFLOAT|TDOUBLE, 77825753Sdonn #endif 77925753Sdonn NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ 78025753Sdonn " ZG\n", 78125753Sdonn 7829705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 7839705Slinton STAREG, TDOUBLE, 7849705Slinton SAREG|AWD, TDOUBLE, 7859705Slinton 0, RLEFT|RESCC, 7869705Slinton " OD2 AR,AL\n", 7879705Slinton 7889705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 7899705Slinton SAREG|AWD, TDOUBLE, 7909705Slinton SAREG|AWD, TDOUBLE, 7919705Slinton NAREG|NASL|NASR, RESC1|RESCC, 7929705Slinton " OD3 AR,AL,A1\n", 7939705Slinton 7949705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 7959705Slinton SAREG|AWD, TFLOAT, 7969705Slinton SAREG|AWD, TDOUBLE, 7979705Slinton NAREG|NASL, RESC1|RESCC, 7989705Slinton " cvtfd AL,A1\n OD2 AR,A1\n", 7999705Slinton 8009705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8019705Slinton SAREG|AWD, TDOUBLE, 8029705Slinton SAREG|AWD, TFLOAT, 8039705Slinton NAREG|NASR, RESC1|RESCC, 8049705Slinton " cvtfd AR,A1\n OD3 A1,AL,A1\n", 8059705Slinton 80617740Sralph #if defined(FORT) || defined(SPRECC) 8079705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 80816937Sralph STAREG, TFLOAT, 80916937Sralph SAREG|AWD, TFLOAT, 8109705Slinton 0, RLEFT|RESCC, 81116937Sralph " OF2 AR,TAL\n", 8129705Slinton 8139705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8149705Slinton SAREG|AWD, TFLOAT, 8159705Slinton SAREG|AWD, TFLOAT, 8169705Slinton NAREG|NASL|NASR, RESC1|RESCC, 8179705Slinton " OF3 AR,AL,TA1\n", 8189705Slinton #endif 8199705Slinton 8209705Slinton /* Default actions for hard trees ... */ 8219705Slinton 8229705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" 8239705Slinton 8249705Slinton UNARY MUL, DF( UNARY MUL ), 8259705Slinton 8269705Slinton INCR, DF(INCR), 8279705Slinton 8289705Slinton DECR, DF(INCR), 8299705Slinton 8309705Slinton ASSIGN, DF(ASSIGN), 8319705Slinton 8329705Slinton STASG, DF(STASG), 8339705Slinton 8349705Slinton FLD, DF(FLD), 8359705Slinton 8369705Slinton OPLEAF, DF(NAME), 8379705Slinton 8389705Slinton OPLOG, FORCC, 8399705Slinton SANY, TANY, 8409705Slinton SANY, TANY, 8419705Slinton REWRITE, BITYPE, 8429705Slinton "", 8439705Slinton 8449705Slinton OPLOG, DF(NOT), 8459705Slinton 8469705Slinton COMOP, DF(COMOP), 8479705Slinton 8489705Slinton INIT, DF(INIT), 8499705Slinton 8509705Slinton OPUNARY, DF(UNARY MINUS), 8519705Slinton 8529705Slinton 8539705Slinton ASG OPANY, DF(ASG PLUS), 8549705Slinton 8559705Slinton OPANY, DF(BITYPE), 8569705Slinton 8579705Slinton FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }; 858