117740Sralph #ifndef lint 2*32964Sdonn static char *sccsid ="@(#)table.c 1.20 (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, 197*32964Sdonn SAREG|AWD, TSHORT, 198*32964Sdonn SSCON, ANYSIGNED, 1999705Slinton 0, RESCC, 2009705Slinton " cmpw AL,AR\nZP", 2019705Slinton 2029705Slinton OPLOG, FORCC, 203*32964Sdonn SAREG|AWD, TUSHORT, 204*32964Sdonn SSCON, ANYUSIGNED, 2059705Slinton 0, RESCC, 206*32964Sdonn " cmpw AL,AR\nZP", 207*32964Sdonn 208*32964Sdonn OPLOG, FORCC, 209*32964Sdonn SAREG|AWD, TCHAR, 210*32964Sdonn SCCON, ANYSIGNED, 211*32964Sdonn 0, RESCC, 2129705Slinton " cmpb AL,AR\nZP", 2139705Slinton 2149705Slinton OPLOG, FORCC, 215*32964Sdonn SAREG|AWD, TUCHAR, 216*32964Sdonn SCCON, ANYUSIGNED, 217*32964Sdonn 0, RESCC, 218*32964Sdonn " cmpb AL,AR\nZP", 219*32964Sdonn 220*32964Sdonn OPLOG, FORCC, 2219705Slinton SAREG|AWD, TDOUBLE, 2229705Slinton SAREG|AWD, TDOUBLE, 2239705Slinton 0, RESCC, 2249705Slinton " cmpd AL,AR\nZP", 2259705Slinton 2269705Slinton OPLOG, FORCC, 2279705Slinton SAREG|AWD, TDOUBLE, 2289705Slinton SAREG|AWD, TFLOAT, 22917205Sralph NAREG|NASR, RESCC, 2309705Slinton " cvtfd AR,A1\n cmpd AL,A1\nZP", 2319705Slinton 2329705Slinton OPLOG, FORCC, 2339705Slinton SAREG|AWD, TFLOAT, 2349705Slinton SAREG|AWD, TDOUBLE, 23517205Sralph NAREG|NASL, RESCC, 2369705Slinton " cvtfd AL,A1\n cmpd A1,AR\nZP", 2379705Slinton 2389705Slinton OPLOG, FORCC, 2399705Slinton SAREG|AWD, TFLOAT, 2409705Slinton SAREG|AWD, TFLOAT, 2419705Slinton 0, RESCC, 2429705Slinton " cmpf AL,AR\nZP", 2439705Slinton 2449705Slinton CCODES, INAREG|INTAREG, 2459705Slinton SANY, TANY, 2469705Slinton SANY, TANY, 2479705Slinton NAREG, RESC1, 2489705Slinton " movl $1,A1\nZN", 2499705Slinton 2509705Slinton UNARY CALL, INTAREG, 2519705Slinton SCON, TANY, 25216182Sralph SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 25316182Sralph NAREG|NASL, RESC1, 25416182Sralph " calls ZC,CL\n", 25516182Sralph 25616182Sralph UNARY CALL, INTAREG, 2579705Slinton SAREG, TANY, 2589705Slinton SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 2599705Slinton NAREG|NASL, RESC1, /* should be 0 */ 2609705Slinton " calls ZC,(AL)\n", 2619705Slinton 2629705Slinton UNARY CALL, INAREG|INTAREG, 2639705Slinton SNAME, TANY, 2649705Slinton SANY, TANY, 2659705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2669705Slinton " calls ZC,*AL\n", 2679705Slinton 2689705Slinton UNARY CALL, INAREG|INTAREG, 2699705Slinton SSOREG, TANY, 2709705Slinton SANY, TANY, 2719705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2729705Slinton " calls ZC,*AL\n", 2739705Slinton 2749705Slinton ASG RS, INAREG|FOREFF|FORCC, 2759705Slinton SAREG, TWORD, 276*32964Sdonn SCON, TINT|TUNSIGNED, 2779705Slinton 0, RLEFT|RESCC, 2789705Slinton " extzv AR,ZU,AL,AL\n", 2799705Slinton 2809705Slinton ASG RS, INAREG|FOREFF|FORCC, 2819705Slinton SAREG, TWORD, 2829705Slinton SAREG, ANYFIXED, 2839705Slinton NAREG, RLEFT|RESCC, 2849705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2859705Slinton 2869705Slinton ASG RS, INAREG|FOREFF|FORCC, 2879705Slinton SAREG, TWORD, 2889705Slinton SAREG|AWD, TWORD, 2899705Slinton NAREG, RLEFT|RESCC, 2909705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2919705Slinton 2929705Slinton RS, INAREG|INTAREG|FORCC, 2939705Slinton SAREG, TWORD, 294*32964Sdonn SCON, TINT|TUNSIGNED, 2959705Slinton NAREG|NASL, RESC1|RESCC, 2969705Slinton " extzv AR,ZU,AL,A1\n", 2979705Slinton 2989705Slinton ASG LS, INAREG|FOREFF|FORCC, 2999705Slinton SAREG|AWD, TWORD, 3009705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 3019705Slinton 0, RLEFT|RESCC, 3029705Slinton " ashl AR,AL,AL\n", 3039705Slinton 3049705Slinton ASG LS, INAREG|FOREFF|FORCC, 3059705Slinton SAREG|AWD, TWORD, 3069705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 3079705Slinton 0, RLEFT|RESCC, 3089705Slinton " ashl AR,AL,AL\n", 3099705Slinton 3109705Slinton ASG LS, INAREG|FOREFF|FORCC, 3119705Slinton SAREG|AWD, TWORD, 3129705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 3139705Slinton NAREG, RLEFT|RESCC, 3149705Slinton " ZB AR,A1\n ashl A1,AL,AL\n", 3159705Slinton 3169705Slinton LS, INAREG|INTAREG|FORCC, 3179705Slinton SAREG|AWD, TWORD, 3189705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 3199705Slinton NAREG|NASL|NASR, RESC1|RESCC, 3209705Slinton " ashl AR,AL,A1\n", 3219705Slinton 3229705Slinton LS, INAREG|INTAREG|FORCC, 3239705Slinton SAREG|AWD, TWORD, 3249705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 3259705Slinton NAREG|NASL|NASR, RESC1|RESCC, 3269705Slinton " ashl AR,AL,A1\n", 3279705Slinton 3289705Slinton LS, INAREG|INTAREG|FORCC, 3299705Slinton SAREG|AWD, TWORD, 3309705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 3319705Slinton NAREG|NASR, RESC1|RESCC, 3329705Slinton " ZB AR,A1\n ashl A1,AL,A1\n", 3339705Slinton 3349705Slinton INCR, FOREFF, 3359705Slinton AWD, TANY, 3369705Slinton SCON, TANY, 3379705Slinton 0, RLEFT, 3389705Slinton " ZE\n", 3399705Slinton 3409705Slinton DECR, FOREFF, 3419705Slinton AWD, TANY, 3429705Slinton SCON, TANY, 3439705Slinton 0, RLEFT, 3449705Slinton " ZE\n", 3459705Slinton 3469705Slinton INCR, FOREFF, 3479705Slinton SAREG, TWORD, 3489705Slinton SCON, TANY, 3499705Slinton 0, RLEFT, 3509705Slinton " ZE\n", 3519705Slinton 3529705Slinton DECR, FOREFF, 3539705Slinton SAREG, TWORD, 3549705Slinton SCON, TANY, 3559705Slinton 0, RLEFT, 3569705Slinton " ZE\n", 3579705Slinton 3589705Slinton /* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */ 3599705Slinton 3609705Slinton INCR, INAREG|INTAREG, 3619705Slinton AWD, TANY, 3629705Slinton SCON, TANY, 3639705Slinton NAREG, RESC1, 3649705Slinton " ZD\n", 3659705Slinton 3669705Slinton DECR, INAREG|INTAREG, 3679705Slinton AWD, TANY, 3689705Slinton SCON, TANY, 3699705Slinton NAREG, RESC1, 3709705Slinton " ZD\n", 3719705Slinton 3729705Slinton INCR, INAREG|INTAREG, 3739705Slinton SAREG, TWORD, 3749705Slinton SCON, TANY, 3759705Slinton NAREG, RESC1, 3769705Slinton " ZD\n", 3779705Slinton 3789705Slinton DECR, INAREG|INTAREG, 3799705Slinton SAREG, TWORD, 3809705Slinton SCON, TANY, 3819705Slinton NAREG, RESC1, 3829705Slinton " ZD\n", 3839705Slinton 3849705Slinton ASSIGN, INAREG|FOREFF|FORCC, 38516182Sralph SAREG|AWD, TDOUBLE, 38616182Sralph SAREG|AWD, TUCHAR|TUSHORT, 38716182Sralph NAREG|NASR, RLEFT|RESCC, 38816182Sralph " movzZRl AR,A1\n cvtld A1,AL\n", 38916182Sralph 39016182Sralph ASSIGN, INAREG|FOREFF|FORCC, 39116182Sralph SAREG|AWD, TFLOAT, 39216182Sralph SAREG|AWD, TUCHAR|TUSHORT, 39316182Sralph NAREG|NASR, RLEFT|RESCC, 39416182Sralph " movzZRl AR,A1\n cvtlf A1,AL\n", 39516182Sralph 39616182Sralph ASSIGN, INAREG|FOREFF|FORCC, 3979705Slinton SAREG|AWD, TANY, 3989705Slinton SAREG|AWD, TANY, 39925582Sbloom 0, RLEFT|RESCC, 4009705Slinton " ZA\n", 4019705Slinton 40232958Sdonn ASSIGN, FOREFF, 4039705Slinton SFLD, TANY, 4049705Slinton SAREG|AWD, TWORD, 40532958Sdonn 0, RNOP, 4069705Slinton " insv AR,$H,$S,AL\n", 4079705Slinton 40832958Sdonn ASSIGN, INAREG, 40932960Sdonn SFLD, ANYSIGNED, 41032958Sdonn SAREG|AWD, TWORD, 41132958Sdonn NAREG, RESC1, 41232958Sdonn " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", 41332958Sdonn 41432960Sdonn ASSIGN, INAREG, 41532960Sdonn SFLD, ANYUSIGNED, 41632960Sdonn SAREG|AWD, TWORD, 41732960Sdonn NAREG, RESC1, 41832960Sdonn " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n", 41932960Sdonn 4209705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4219705Slinton SAREG|AWD, TWORD, 4229705Slinton SFLD, ANYSIGNED, 4239705Slinton 0, RLEFT|RESCC, 4249705Slinton " extv $H,$S,AR,AL\n", 4259705Slinton 4269705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4279705Slinton SAREG|AWD, TWORD, 4289705Slinton SFLD, ANYUSIGNED, 4299705Slinton 0, RLEFT|RESCC, 4309705Slinton " extzv $H,$S,AR,AL\n", 4319705Slinton 4329705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 4339705Slinton UNARY MUL, FOREFF, 4349705Slinton SCC, TANY, 4359705Slinton SCC, TANY, 4369705Slinton 0, RNULL, 4379705Slinton " HELP HELP HELP\n", 4389705Slinton 43932959Sdonn OREG, INTEMP, 44032959Sdonn SANY, TANY, 44132959Sdonn SOREG, TDOUBLE, 44232959Sdonn 2*NTEMP, RESC1, 44332959Sdonn " movd AR,A1\n", 44432959Sdonn 44532959Sdonn OREG, INTEMP, 44632959Sdonn SANY, TANY, 44732959Sdonn SOREG, TANY, 44832959Sdonn NTEMP, RESC1, 44932959Sdonn " movZF AR,A1\n", 45032959Sdonn 4519705Slinton REG, INTEMP, 4529705Slinton SANY, TANY, 4539705Slinton SAREG, TDOUBLE, 4549705Slinton 2*NTEMP, RESC1, 4559705Slinton " movd AR,A1\n", 4569705Slinton 4579705Slinton REG, INTEMP, 4589705Slinton SANY, TANY, 4599705Slinton SAREG, TANY, 4609705Slinton NTEMP, RESC1, 4619705Slinton " movZF AR,A1\n", 4629705Slinton 46317740Sralph #if defined(FORT) || defined(SPRECC) 46417740Sralph REG, FORARG, 4659705Slinton SANY, TANY, 4669705Slinton SAREG, TFLOAT, 4679705Slinton 0, RNULL, 4689705Slinton " cvtfd AR,-(sp)\n", 4699705Slinton 4709705Slinton REG, FORARG, 4719705Slinton SANY, TANY, 4729705Slinton SAREG, TDOUBLE, 4739705Slinton 0, RNULL, 4749705Slinton " movZR AR,-(sp)\n", 4759705Slinton #endif 4769705Slinton 4779705Slinton OPLEAF, FOREFF, 4789705Slinton SANY, TANY, 4799705Slinton SAREG|AWD, TANY, 4809705Slinton 0, RLEFT, 4819705Slinton "", 4829705Slinton 4839705Slinton OPLTYPE, INAREG|INTAREG, 4849705Slinton SANY, TANY, 4859705Slinton SANY, TANY, 4869705Slinton NAREG|NASR, RESC1, 4879705Slinton " ZA\n", 4889705Slinton 4899705Slinton OPLTYPE, FORCC, 4909705Slinton SANY, TANY, 4919705Slinton SANY, TANY, 4929705Slinton 0, RESCC, 4939705Slinton " tstZR AR\n", 4949705Slinton 4959705Slinton OPLTYPE, FORARG, 4969705Slinton SANY, TANY, 4979705Slinton SANY, TWORD, 4989705Slinton 0, RNULL, 4999705Slinton " pushl AR\n", 5009705Slinton 5019705Slinton OPLTYPE, FORARG, 5029705Slinton SANY, TANY, 5039705Slinton SANY, TCHAR|TSHORT, 5049705Slinton 0, RNULL, 5059705Slinton " cvtZRl AR,-(sp)\n", 5069705Slinton 5079705Slinton OPLTYPE, FORARG, 5089705Slinton SANY, TANY, 5099705Slinton SANY, TUCHAR|TUSHORT, 5109705Slinton 0, RNULL, 5119705Slinton " movzZRl AR,-(sp)\n", 5129705Slinton 5139705Slinton OPLTYPE, FORARG, 5149705Slinton SANY, TANY, 5159705Slinton SANY, TDOUBLE, 5169705Slinton 0, RNULL, 5179705Slinton " movd AR,-(sp)\n", 5189705Slinton 5199705Slinton OPLTYPE, FORARG, 5209705Slinton SANY, TANY, 5219705Slinton SANY, TFLOAT, 5229705Slinton 0, RNULL, 5239705Slinton " cvtfd AR,-(sp)\n", 5249705Slinton 52517740Sralph #if defined(FORT) || defined(SPRECC) 5269705Slinton UNARY MINUS, INTAREG|FORCC, 52724417Smckusick SAREG|AWD, TFLOAT, 52816182Sralph SANY, TANY, 52916182Sralph NAREG|NASL, RESC1|RESCC, 53016182Sralph " mnegZL TAL,A1\n", 53116182Sralph 53224417Smckusick #endif 53316182Sralph 53416182Sralph UNARY MINUS, INTAREG|FORCC, 5359705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE, 5369705Slinton SANY, TANY, 5379705Slinton NAREG|NASL, RESC1|RESCC, 5389705Slinton " mnegZL AL,A1\n", 5399705Slinton 5409705Slinton COMPL, INTAREG|FORCC, 54123479Smckusick SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5429705Slinton SANY, TANY, 5439705Slinton NAREG|NASL, RESC1|RESCC, 5449705Slinton " mcomZL AL,A1\n", 5459705Slinton 5469705Slinton COMPL, INTAREG|FORCC, 5479705Slinton SAREG|AWD, ANYSIGNED|ANYUSIGNED, 5489705Slinton SANY, TANY, 5499705Slinton NAREG|NASL, RESC1|RESCC, 5509705Slinton " cvtZLl AL,A1\n mcoml A1,A1\n", 5519705Slinton 5529705Slinton AND, FORCC, 5539705Slinton SAREG|AWD, TWORD, 5549705Slinton SCON, TWORD, 5559705Slinton 0, RESCC, 5569705Slinton " bitl ZZ,AL\n", 5579705Slinton 5589705Slinton AND, FORCC, 5599705Slinton SAREG|AWD, TSHORT|TUSHORT, 5609705Slinton SSCON, TWORD, 5619705Slinton 0, RESCC, 5629705Slinton " bitw ZZ,AL\n", 5639705Slinton 5649705Slinton AND, FORCC, 5659705Slinton SAREG|AWD, TCHAR|TUCHAR, 5669705Slinton SCCON, TWORD, 5679705Slinton 0, RESCC, 5689705Slinton " bitb ZZ,AL\n", 5699705Slinton 5709705Slinton ASG AND, INAREG|FOREFF|FORCC, 5719705Slinton SAREG, TWORD, 5729705Slinton SCON, TWORD, 5739705Slinton 0, RLEFT|RESCC, 5749705Slinton " bicl2 AR,AL\n", 5759705Slinton 57632962Sdonn DIV, INAREG|FOREFF|FORCC, 57732962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 57832962Sdonn SCON, TANY, 57932962Sdonn NAREG|NEVEN, RESC1|RESCC, 58032963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,U1\n", 58132962Sdonn 58232962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 58332962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 58432962Sdonn SMCON, TANY, 58532962Sdonn 0, RLEFT|RESCC, 58632962Sdonn " ZJ\n", 58732962Sdonn 58832962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 58932962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 59032962Sdonn SCON, TANY, 59132962Sdonn NAREG|NEVEN, RLEFT|RESCC, 59232963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,AL,U1\n", 59332962Sdonn 59432962Sdonn MOD, INAREG|INTAREG, 59532962Sdonn SAREG|AWD, TINT|TLONG, 59632962Sdonn SAREG|AWD, TINT|TLONG, 59732962Sdonn NAREG, RESC1, 59832962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 59932962Sdonn 60032962Sdonn MOD, INAREG|FOREFF, 60132962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 60232962Sdonn SMCON, TANY, 60332962Sdonn NAREG|NASL, RLEFT|RESC1, 60432962Sdonn " ZJ\n", 60532962Sdonn 60632962Sdonn MOD, FORCC, 60732962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 60832962Sdonn SMCON, TANY, 60932962Sdonn NAREG|NASL, RESCC, 61032962Sdonn " ZJ\n tstl A1\n", 61132962Sdonn 61232962Sdonn MOD, INAREG|FOREFF, 61332962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 61432962Sdonn SCON, TANY, 61532962Sdonn NAREG|NEVEN, RESC1|RESCC, 61632963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,U1,A1\n", 61732962Sdonn 61832962Sdonn MOD, FORCC, 61932962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 62032962Sdonn SCON, TANY, 62132962Sdonn NAREG|NEVEN, RESC1|RESCC, 62232963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,U1,A1\n tstl A1\n", 62332962Sdonn 62432962Sdonn ASG MOD, INAREG|INTAREG|FOREFF|FORCC, 62532962Sdonn SAREG, TINT|TLONG, 62632962Sdonn SAREG|AWD, TINT|TLONG, 62732962Sdonn NAREG, RLEFT|RESCC, 62832962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", 62932962Sdonn 63032962Sdonn ASG MOD, INAREG|FOREFF, 63132962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 63232962Sdonn SMCON, TANY, 63332962Sdonn 0, RLEFT|RESCC, 63432962Sdonn " ZJ\n", 63532962Sdonn 63632962Sdonn ASG MOD, FORCC, 63732962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 63832962Sdonn SMCON, TANY, 63932962Sdonn 0, RLEFT|RESCC, 64032962Sdonn " ZJ\n tstl AL\n", 64132962Sdonn 64232962Sdonn ASG MOD, INAREG|FOREFF, 64332962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 64432962Sdonn SCON, TANY, 64532962Sdonn NAREG|NEVEN, RLEFT|RESCC, 64632963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n", 64732962Sdonn 64832962Sdonn ASG MOD, FORCC, 64932962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 65032962Sdonn SCON, TANY, 65132962Sdonn NAREG|NEVEN, RLEFT|RESCC, 65232963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n tstl AL\n", 65332962Sdonn 6549705Slinton ASG OPMUL, INAREG|FOREFF|FORCC, 6559705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6569705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6579705Slinton 0, RLEFT|RESCC, 6589705Slinton " OL2 AR,AL\n", 6599705Slinton 6609705Slinton OPMUL, INAREG|INTAREG|FORCC, 6619705Slinton STAREG, TINT|TUNSIGNED|TLONG|TULONG, 6629705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6639705Slinton 0, RLEFT|RESCC, 6649705Slinton " OL2 AR,AL\n", 6659705Slinton 6669705Slinton OPMUL, INAREG|INTAREG|FORCC, 6679705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6689705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 6699705Slinton NAREG|NASL|NASR, RESC1|RESCC, 6709705Slinton " OL3 AR,AL,A1\n", 6719705Slinton 6729705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6739705Slinton SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 674*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6759705Slinton 0, RLEFT|RESCC, 6769705Slinton " incZL AL\n", 6779705Slinton 6789705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6799705Slinton AWD, ANYSIGNED|ANYUSIGNED, 680*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6819705Slinton 0, RLEFT|RESCC, 6829705Slinton " incZL AL\n", 6839705Slinton 6849705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6859705Slinton SAREG, TSHORT|TCHAR, 686*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6879705Slinton 0, RLEFT|RESCC, 6889705Slinton " incZL AL\n cvtZLl AL,AL\n", 6899705Slinton 6909705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6919705Slinton SAREG, TUSHORT|TUCHAR, 692*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6939705Slinton 0, RLEFT|RESCC, 6949705Slinton " incZL AL\n movzZLl AL,AL\n", 6959705Slinton 6969705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 6979705Slinton SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 698*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6999705Slinton 0, RLEFT|RESCC, 7009705Slinton " decZL AL\n", 7019705Slinton 7029705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 7039705Slinton AWD, ANYSIGNED|ANYUSIGNED, 704*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 7059705Slinton 0, RLEFT|RESCC, 7069705Slinton " decZL AL\n", 7079705Slinton 7089705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 7099705Slinton SAREG, TSHORT|TCHAR, 710*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 7119705Slinton 0, RLEFT|RESCC, 7129705Slinton " decZL AL\n cvtZLl AL,AL\n", 7139705Slinton 7149705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 7159705Slinton SAREG, TUSHORT|TUCHAR, 716*32964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 7179705Slinton 0, RLEFT|RESCC, 7189705Slinton " decZL AL\n movzZLl AL,AL\n", 7199705Slinton 7209705Slinton PLUS, INAREG|INTAREG|FORCC, 7219705Slinton STAREG, TWORD, 7229705Slinton SONE, TWORD, 7239705Slinton 0, RLEFT|RESCC, 7249705Slinton " incZL AL\n", 7259705Slinton 7269705Slinton PLUS, INAREG|INTAREG|FORCC, 7279705Slinton STAREG, TSHORT|TCHAR, 7289705Slinton SONE, TWORD, 7299705Slinton 0, RLEFT|RESCC, 7309705Slinton " incZL AL\n cvtZLl AL,AL\n", 7319705Slinton 7329705Slinton PLUS, INAREG|INTAREG|FORCC, 7339705Slinton STAREG, TUSHORT|TUCHAR, 7349705Slinton SONE, TWORD, 7359705Slinton 0, RLEFT|RESCC, 7369705Slinton " incZL AL\n movzZLl AL,AL\n", 7379705Slinton 7389705Slinton MINUS, INAREG|INTAREG|FORCC, 7399705Slinton STAREG, TWORD, 7409705Slinton SONE, TWORD, 7419705Slinton 0, RLEFT|RESCC, 7429705Slinton " decZL AL\n", 7439705Slinton 7449705Slinton MINUS, INAREG|INTAREG|FORCC, 7459705Slinton STAREG, TSHORT|TCHAR, 7469705Slinton SONE, TWORD, 7479705Slinton 0, RLEFT|RESCC, 7489705Slinton " decZL AL\n cvtZLl AL,AL\n", 7499705Slinton 7509705Slinton MINUS, INAREG|INTAREG|FORCC, 7519705Slinton STAREG, TUSHORT|TUCHAR, 7529705Slinton SONE, TWORD, 7539705Slinton 0, RLEFT|RESCC, 7549705Slinton " decZL AL\n movzZLl AL,AL\n", 7559705Slinton 7569705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7579705Slinton SAREG|AWD, TWORD, 7589705Slinton SAREG|AWD, TWORD, 7599705Slinton 0, RLEFT|RESCC, 7609705Slinton " OL2 AR,AL\n", 7619705Slinton 7629705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7639705Slinton SAREG, TWORD, 7649705Slinton SAREG, TSHORT|TUSHORT|TCHAR|TUCHAR, 7659705Slinton 0, RLEFT|RESCC, 7669705Slinton " OL2 AR,AL\n", 7679705Slinton 7689705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7699705Slinton AWD, TSHORT|TUSHORT, 77032961Sdonn SSOREG, TSHORT|TUSHORT|TINT|TUNSIGNED, 7719705Slinton 0, RLEFT|RESCC, 7729705Slinton " OW2 AR,AL\n", 7739705Slinton 7749705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7759705Slinton AWD, TSHORT|TUSHORT, 77632961Sdonn SAREG|SNAME|STARNM, TSHORT|TUSHORT|TINT|TUNSIGNED, 7779705Slinton 0, RLEFT|RESCC, 7789705Slinton " OW2 AR,AL\n", 7799705Slinton 7809705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 78132961Sdonn AWD, TSHORT|TUSHORT, 78232961Sdonn SSCON, ANYFIXED, 78332961Sdonn 0, RLEFT|RESCC, 78432961Sdonn " OW2 AR,AL\n", 78532961Sdonn 78632961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 78732961Sdonn AWD, TSHORT|TUSHORT, 78832961Sdonn AWD, TSHORT|TUSHORT, 78932961Sdonn 0, RLEFT|RESCC, 79032961Sdonn " OW2 AR,AL\n", 79132961Sdonn 79232961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 7939705Slinton AWD, TCHAR|TUCHAR, 79432961Sdonn SSOREG, ANYFIXED, 7959705Slinton 0, RLEFT|RESCC, 7969705Slinton " OB2 AR,AL\n", 7979705Slinton 7989705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 7999705Slinton AWD, TCHAR|TUCHAR, 80032961Sdonn SAREG|SNAME|STARNM, ANYFIXED, 8019705Slinton 0, RLEFT|RESCC, 8029705Slinton " OB2 AR,AL\n", 8039705Slinton 8049705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 80532961Sdonn AWD, TCHAR|TUCHAR, 80632961Sdonn SCCON, ANYFIXED, 80732961Sdonn 0, RLEFT|RESCC, 80832961Sdonn " OB2 AR,AL\n", 80932961Sdonn 81032961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 81132961Sdonn AWD, TCHAR|TUCHAR, 81232961Sdonn AWD, TCHAR|TUCHAR, 81332961Sdonn 0, RLEFT|RESCC, 81432961Sdonn " OB2 AR,AL\n", 81532961Sdonn 81632961Sdonn ASG OPSIMP, INAREG|FOREFF|FORCC, 8179705Slinton SAREG, TSHORT, 8189705Slinton SAREG|AWD, ANYFIXED, 8199705Slinton 0, RLEFT|RESCC, 8209705Slinton " OW2 AR,AL\n cvtZLl AL,AL\n", 8219705Slinton 8229705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 8239705Slinton SAREG, TUSHORT, 8249705Slinton SAREG|AWD, ANYFIXED, 8259705Slinton 0, RLEFT|RESCC, 8269705Slinton " OW2 AR,AL\n movzZLl AL,AL\n", 8279705Slinton 8289705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 8299705Slinton SAREG, TCHAR, 8309705Slinton SAREG|AWD, ANYFIXED, 8319705Slinton 0, RLEFT|RESCC, 8329705Slinton " OB2 AR,AL\n cvtZLl AL,AL\n", 8339705Slinton 8349705Slinton ASG OPSIMP, INAREG|FOREFF|FORCC, 8359705Slinton SAREG, TUCHAR, 8369705Slinton SAREG|AWD, ANYFIXED, 8379705Slinton 0, RLEFT|RESCC, 8389705Slinton " OB2 AR,AL\n movzZLl AL,AL\n", 8399705Slinton 8409705Slinton OPSIMP, INAREG|INTAREG|FORCC, 8419705Slinton STAREG, ANYFIXED, 8429705Slinton SAREG|AWD, TWORD, 8439705Slinton 0, RLEFT|RESCC, 8449705Slinton " OL2 AR,AL\n", 8459705Slinton 8469705Slinton OPSIMP, INAREG|INTAREG|FORCC, 8479705Slinton SAREG|AWD, TWORD, 8489705Slinton SAREG|AWD, TWORD, 8499705Slinton NAREG|NASL|NASR, RESC1|RESCC, 8509705Slinton " OL3 AR,AL,A1\n", 8519705Slinton 8529705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 8539705Slinton SAREG|AWD, TDOUBLE, 8549705Slinton SAREG|AWD, TDOUBLE, 8559705Slinton 0, RLEFT|RESCC, 8569705Slinton " OD2 AR,AL\n", 8579705Slinton 8589705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 8599705Slinton SAREG|AWD, TFLOAT, 8609705Slinton SAREG|AWD, TFLOAT, 8619705Slinton 0, RLEFT|RESCC, 86217740Sralph #if defined(FORT) || defined(SPRECC) 86316937Sralph " OF2 AR,TAL\n", 86416937Sralph #else 8659705Slinton " OF2 AR,AL\n", 86616937Sralph #endif 8679705Slinton 8689705Slinton ASG OPFLOAT, INAREG|FOREFF|FORCC, 8699705Slinton SAREG|AWD, TDOUBLE, 8709705Slinton SAREG|AWD, TFLOAT, 8719705Slinton NAREG|NASR, RLEFT|RESCC, 8729705Slinton " cvtfd AR,A1\n OD2 A1,AL\n", 8739705Slinton 8749705Slinton ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, 8759705Slinton SAREG|AWD, TFLOAT, 8769705Slinton SAREG|AWD, TDOUBLE, 8779705Slinton NAREG, RLEFT|RESC1|RESCC, 8789705Slinton " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", 8799705Slinton 88025753Sdonn ASG OPFLOAT, INAREG|FOREFF|FORCC, 88125753Sdonn SAREG|AWD, ANYFIXED, 88225753Sdonn #ifndef SPRECC 88325753Sdonn SAREG|AWD, TDOUBLE, /* force FLOAT to register */ 88425753Sdonn #else 88525753Sdonn SAREG|AWD, TFLOAT|TDOUBLE, 88625753Sdonn #endif 88725753Sdonn NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ 88825753Sdonn " ZG\n", 88925753Sdonn 8909705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8919705Slinton STAREG, TDOUBLE, 8929705Slinton SAREG|AWD, TDOUBLE, 8939705Slinton 0, RLEFT|RESCC, 8949705Slinton " OD2 AR,AL\n", 8959705Slinton 8969705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 8979705Slinton SAREG|AWD, TDOUBLE, 8989705Slinton SAREG|AWD, TDOUBLE, 8999705Slinton NAREG|NASL|NASR, RESC1|RESCC, 9009705Slinton " OD3 AR,AL,A1\n", 9019705Slinton 9029705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 9039705Slinton SAREG|AWD, TFLOAT, 9049705Slinton SAREG|AWD, TDOUBLE, 9059705Slinton NAREG|NASL, RESC1|RESCC, 9069705Slinton " cvtfd AL,A1\n OD2 AR,A1\n", 9079705Slinton 9089705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 9099705Slinton SAREG|AWD, TDOUBLE, 9109705Slinton SAREG|AWD, TFLOAT, 9119705Slinton NAREG|NASR, RESC1|RESCC, 9129705Slinton " cvtfd AR,A1\n OD3 A1,AL,A1\n", 9139705Slinton 91417740Sralph #if defined(FORT) || defined(SPRECC) 9159705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 91616937Sralph STAREG, TFLOAT, 91716937Sralph SAREG|AWD, TFLOAT, 9189705Slinton 0, RLEFT|RESCC, 91916937Sralph " OF2 AR,TAL\n", 9209705Slinton 9219705Slinton OPFLOAT, INAREG|INTAREG|FORCC, 9229705Slinton SAREG|AWD, TFLOAT, 9239705Slinton SAREG|AWD, TFLOAT, 9249705Slinton NAREG|NASL|NASR, RESC1|RESCC, 9259705Slinton " OF3 AR,AL,TA1\n", 9269705Slinton #endif 9279705Slinton 9289705Slinton /* Default actions for hard trees ... */ 9299705Slinton 9309705Slinton # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" 9319705Slinton 9329705Slinton UNARY MUL, DF( UNARY MUL ), 9339705Slinton 9349705Slinton INCR, DF(INCR), 9359705Slinton 9369705Slinton DECR, DF(INCR), 9379705Slinton 9389705Slinton ASSIGN, DF(ASSIGN), 9399705Slinton 9409705Slinton STASG, DF(STASG), 9419705Slinton 9429705Slinton FLD, DF(FLD), 9439705Slinton 9449705Slinton OPLEAF, DF(NAME), 9459705Slinton 9469705Slinton OPLOG, FORCC, 9479705Slinton SANY, TANY, 9489705Slinton SANY, TANY, 9499705Slinton REWRITE, BITYPE, 9509705Slinton "", 9519705Slinton 9529705Slinton OPLOG, DF(NOT), 9539705Slinton 9549705Slinton COMOP, DF(COMOP), 9559705Slinton 9569705Slinton INIT, DF(INIT), 9579705Slinton 9589705Slinton OPUNARY, DF(UNARY MINUS), 9599705Slinton 9609705Slinton 9619705Slinton ASG OPANY, DF(ASG PLUS), 9629705Slinton 9639705Slinton OPANY, DF(BITYPE), 9649705Slinton 9659705Slinton FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }; 966