117740Sralph #ifndef lint 2*32970Sdonn static char *sccsid ="@(#)table.c 1.26 (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 79*32970Sdonn SCONV, FORARG, 80*32970Sdonn SAREG|AWD, TWORD, 81*32970Sdonn SANY, TWORD, 82*32970Sdonn 0, RNULL, 83*32970Sdonn " pushl AL\n", 849705Slinton 85*32970Sdonn SCONV, FORARG, 86*32970Sdonn SAREG|AWD, TANY, 87*32970Sdonn SANY, TANY, 88*32970Sdonn 0, RNULL, 89*32970Sdonn " ZV\n", 90*32970Sdonn 919705Slinton INIT, FOREFF, 929705Slinton SCON, TANY, 939705Slinton SANY, TWORD, 949705Slinton 0, RNOP, 959705Slinton " .long CL\n", 969705Slinton 979705Slinton INIT, FOREFF, 989705Slinton SCON, TANY, 999705Slinton SANY, TSHORT|TUSHORT, 1009705Slinton 0, RNOP, 1019705Slinton " .word CL\n", 1029705Slinton 1039705Slinton INIT, FOREFF, 1049705Slinton SCON, TANY, 1059705Slinton SANY, TCHAR|TUCHAR, 1069705Slinton 0, RNOP, 1079705Slinton " .byte CL\n", 1089705Slinton 1099705Slinton /* for the use of fortran only */ 1109705Slinton 1119705Slinton GOTO, FOREFF, 1129705Slinton SCON, TANY, 1139705Slinton SANY, TANY, 1149705Slinton 0, RNOP, 1159705Slinton " jbr CL\n", 1169705Slinton 1179705Slinton GOTO, FOREFF, 11817740Sralph SNAME|SOREG, TANY, 1199705Slinton SANY, TANY, 1209705Slinton 0, RNOP, 1219705Slinton " jmp *AL\n", 1229705Slinton 1239705Slinton GOTO, FOREFF, 1249705Slinton SAREG, TANY, 1259705Slinton SANY, TANY, 1269705Slinton 0, RNOP, 1279705Slinton " jmp (AL)\n", 1289705Slinton 1299705Slinton STARG, FORARG, 1309705Slinton SCON|SOREG, TANY, 1319705Slinton SANY, TANY, 1329705Slinton 0, RNULL, 1339705Slinton " subl2 ZT,sp\nZS", 1349705Slinton 1359705Slinton STASG, FOREFF, 1369705Slinton SNAME|SOREG, TANY, 1379705Slinton SCON|SAREG, TANY, 1389705Slinton 0, RNOP, 1399705Slinton "ZS", 1409705Slinton 1419705Slinton STASG, INAREG, 1429705Slinton SNAME|SOREG, TANY, 1439705Slinton SCON, TANY, 1449705Slinton NAREG, RESC1, 1459705Slinton "ZS movl AR,A1\n", 1469705Slinton 1479705Slinton STASG, INAREG, 1489705Slinton SNAME|SOREG, TANY, 1499705Slinton SAREG, TANY, 1509705Slinton 0, RRIGHT, 1519705Slinton " pushl AR\nZS movl (sp)+,AR\n", 1529705Slinton 1539705Slinton FLD, INAREG|INTAREG, 1549705Slinton SANY, TANY, 1559705Slinton SFLD, ANYSIGNED, 1569705Slinton NAREG|NASR, RESC1, 1579705Slinton " extv $H,$S,AR,A1\n", 1589705Slinton 1599705Slinton FLD, INAREG|INTAREG, 1609705Slinton SANY, TANY, 1619705Slinton SFLD, ANYUSIGNED, 1629705Slinton NAREG|NASR, RESC1, 1639705Slinton " extzv $H,$S,AR,A1\n", 1649705Slinton 1659705Slinton FLD, FORARG, 1669705Slinton SANY, TANY, 1679705Slinton SFLD, ANYSIGNED, 1689705Slinton 0, RNULL, 1699705Slinton " extv $H,$S,AR,-(sp)\n", 1709705Slinton 1719705Slinton FLD, FORARG, 1729705Slinton SANY, TANY, 1739705Slinton SFLD, ANYUSIGNED, 1749705Slinton 0, RNULL, 1759705Slinton " extzv $H,$S,AR,-(sp)\n", 1769705Slinton 1779705Slinton OPLOG, FORCC, 1789705Slinton SAREG|AWD, TWORD, 1799705Slinton SAREG|AWD, TWORD, 1809705Slinton 0, RESCC, 1819705Slinton " cmpl AL,AR\nZP", 1829705Slinton 1839705Slinton OPLOG, FORCC, 18419934Smckusick SAREG|AWD, TSHORT, 18519934Smckusick SAREG|AWD, TSHORT, 1869705Slinton 0, RESCC, 1879705Slinton " cmpw AL,AR\nZP", 1889705Slinton 1899705Slinton OPLOG, FORCC, 19019934Smckusick SAREG|AWD, TUSHORT, 19119934Smckusick SAREG|AWD, TUSHORT, 1929705Slinton 0, RESCC, 19319934Smckusick " cmpw AL,AR\nZP", 19419934Smckusick 19519934Smckusick OPLOG, FORCC, 19619934Smckusick SAREG|AWD, TCHAR, 19719934Smckusick SAREG|AWD, TCHAR, 19819934Smckusick 0, RESCC, 1999705Slinton " cmpb AL,AR\nZP", 2009705Slinton 2019705Slinton OPLOG, FORCC, 20219934Smckusick SAREG|AWD, TUCHAR, 20319934Smckusick SAREG|AWD, TUCHAR, 20419934Smckusick 0, RESCC, 20519934Smckusick " cmpb AL,AR\nZP", 20619934Smckusick 20719934Smckusick OPLOG, FORCC, 20832964Sdonn SAREG|AWD, TSHORT, 20932964Sdonn SSCON, ANYSIGNED, 2109705Slinton 0, RESCC, 2119705Slinton " cmpw AL,AR\nZP", 2129705Slinton 2139705Slinton OPLOG, FORCC, 21432964Sdonn SAREG|AWD, TUSHORT, 21532964Sdonn SSCON, ANYUSIGNED, 2169705Slinton 0, RESCC, 21732964Sdonn " cmpw AL,AR\nZP", 21832964Sdonn 21932964Sdonn OPLOG, FORCC, 22032964Sdonn SAREG|AWD, TCHAR, 22132964Sdonn SCCON, ANYSIGNED, 22232964Sdonn 0, RESCC, 2239705Slinton " cmpb AL,AR\nZP", 2249705Slinton 2259705Slinton OPLOG, FORCC, 22632964Sdonn SAREG|AWD, TUCHAR, 22732964Sdonn SCCON, ANYUSIGNED, 22832964Sdonn 0, RESCC, 22932964Sdonn " cmpb AL,AR\nZP", 23032964Sdonn 23132964Sdonn OPLOG, FORCC, 2329705Slinton SAREG|AWD, TDOUBLE, 2339705Slinton SAREG|AWD, TDOUBLE, 2349705Slinton 0, RESCC, 2359705Slinton " cmpd AL,AR\nZP", 2369705Slinton 2379705Slinton OPLOG, FORCC, 2389705Slinton SAREG|AWD, TDOUBLE, 2399705Slinton SAREG|AWD, TFLOAT, 24017205Sralph NAREG|NASR, RESCC, 2419705Slinton " cvtfd AR,A1\n cmpd AL,A1\nZP", 2429705Slinton 2439705Slinton OPLOG, FORCC, 2449705Slinton SAREG|AWD, TFLOAT, 2459705Slinton SAREG|AWD, TDOUBLE, 24617205Sralph NAREG|NASL, RESCC, 2479705Slinton " cvtfd AL,A1\n cmpd A1,AR\nZP", 2489705Slinton 2499705Slinton OPLOG, FORCC, 2509705Slinton SAREG|AWD, TFLOAT, 2519705Slinton SAREG|AWD, TFLOAT, 2529705Slinton 0, RESCC, 2539705Slinton " cmpf AL,AR\nZP", 2549705Slinton 2559705Slinton CCODES, INAREG|INTAREG, 2569705Slinton SANY, TANY, 2579705Slinton SANY, TANY, 2589705Slinton NAREG, RESC1, 2599705Slinton " movl $1,A1\nZN", 2609705Slinton 2619705Slinton UNARY CALL, INTAREG, 2629705Slinton SCON, TANY, 26316182Sralph SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 26416182Sralph NAREG|NASL, RESC1, 26516182Sralph " calls ZC,CL\n", 26616182Sralph 26716182Sralph UNARY CALL, INTAREG, 2689705Slinton SAREG, TANY, 2699705Slinton SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 2709705Slinton NAREG|NASL, RESC1, /* should be 0 */ 2719705Slinton " calls ZC,(AL)\n", 2729705Slinton 2739705Slinton UNARY CALL, INAREG|INTAREG, 2749705Slinton SNAME, TANY, 2759705Slinton SANY, TANY, 2769705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2779705Slinton " calls ZC,*AL\n", 2789705Slinton 2799705Slinton UNARY CALL, INAREG|INTAREG, 2809705Slinton SSOREG, TANY, 2819705Slinton SANY, TANY, 2829705Slinton NAREG|NASL, RESC1, /* really reg 0 */ 2839705Slinton " calls ZC,*AL\n", 2849705Slinton 2859705Slinton ASG RS, INAREG|FOREFF|FORCC, 2869705Slinton SAREG, TWORD, 28732964Sdonn SCON, TINT|TUNSIGNED, 2889705Slinton 0, RLEFT|RESCC, 2899705Slinton " extzv AR,ZU,AL,AL\n", 2909705Slinton 2919705Slinton ASG RS, INAREG|FOREFF|FORCC, 2929705Slinton SAREG, TWORD, 2939705Slinton SAREG, ANYFIXED, 2949705Slinton NAREG, RLEFT|RESCC, 2959705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 2969705Slinton 2979705Slinton ASG RS, INAREG|FOREFF|FORCC, 2989705Slinton SAREG, TWORD, 2999705Slinton SAREG|AWD, TWORD, 3009705Slinton NAREG, RLEFT|RESCC, 3019705Slinton " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 3029705Slinton 3039705Slinton RS, INAREG|INTAREG|FORCC, 3049705Slinton SAREG, TWORD, 30532964Sdonn SCON, TINT|TUNSIGNED, 3069705Slinton NAREG|NASL, RESC1|RESCC, 3079705Slinton " extzv AR,ZU,AL,A1\n", 3089705Slinton 3099705Slinton ASG LS, INAREG|FOREFF|FORCC, 3109705Slinton SAREG|AWD, TWORD, 3119705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 3129705Slinton 0, RLEFT|RESCC, 3139705Slinton " ashl AR,AL,AL\n", 3149705Slinton 3159705Slinton ASG LS, INAREG|FOREFF|FORCC, 3169705Slinton SAREG|AWD, TWORD, 3179705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 3189705Slinton 0, RLEFT|RESCC, 3199705Slinton " ashl AR,AL,AL\n", 3209705Slinton 3219705Slinton ASG LS, INAREG|FOREFF|FORCC, 3229705Slinton SAREG|AWD, TWORD, 3239705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 3249705Slinton NAREG, RLEFT|RESCC, 3259705Slinton " ZB AR,A1\n ashl A1,AL,AL\n", 3269705Slinton 3279705Slinton LS, INAREG|INTAREG|FORCC, 3289705Slinton SAREG|AWD, TWORD, 3299705Slinton SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 3309705Slinton NAREG|NASL|NASR, RESC1|RESCC, 3319705Slinton " ashl AR,AL,A1\n", 3329705Slinton 3339705Slinton LS, INAREG|INTAREG|FORCC, 3349705Slinton SAREG|AWD, TWORD, 3359705Slinton SSOREG, ANYSIGNED|ANYUSIGNED, 3369705Slinton NAREG|NASL|NASR, RESC1|RESCC, 3379705Slinton " ashl AR,AL,A1\n", 3389705Slinton 3399705Slinton LS, INAREG|INTAREG|FORCC, 3409705Slinton SAREG|AWD, TWORD, 3419705Slinton SOREG, ANYSIGNED|ANYUSIGNED, 3429705Slinton NAREG|NASR, RESC1|RESCC, 3439705Slinton " ZB AR,A1\n ashl A1,AL,A1\n", 3449705Slinton 3459705Slinton INCR, FOREFF, 3469705Slinton AWD, TANY, 34732969Sdonn SCON|SNAME, TANY, 3489705Slinton 0, RLEFT, 3499705Slinton " ZE\n", 3509705Slinton 3519705Slinton DECR, FOREFF, 3529705Slinton AWD, TANY, 35332969Sdonn SCON|SNAME, TANY, 3549705Slinton 0, RLEFT, 3559705Slinton " ZE\n", 3569705Slinton 3579705Slinton INCR, FOREFF, 3589705Slinton SAREG, TWORD, 35932969Sdonn SCON|SNAME, TANY, 3609705Slinton 0, RLEFT, 3619705Slinton " ZE\n", 3629705Slinton 3639705Slinton DECR, FOREFF, 3649705Slinton SAREG, TWORD, 36532969Sdonn SCON|SNAME, TANY, 3669705Slinton 0, RLEFT, 3679705Slinton " ZE\n", 3689705Slinton 3699705Slinton /* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */ 3709705Slinton 3719705Slinton INCR, INAREG|INTAREG, 3729705Slinton AWD, TANY, 37332969Sdonn SCON|SNAME, TANY, 3749705Slinton NAREG, RESC1, 3759705Slinton " ZD\n", 3769705Slinton 3779705Slinton DECR, INAREG|INTAREG, 3789705Slinton AWD, TANY, 37932969Sdonn SCON|SNAME, TANY, 3809705Slinton NAREG, RESC1, 3819705Slinton " ZD\n", 3829705Slinton 3839705Slinton INCR, INAREG|INTAREG, 3849705Slinton SAREG, TWORD, 38532969Sdonn SCON|SNAME, TANY, 3869705Slinton NAREG, RESC1, 3879705Slinton " ZD\n", 3889705Slinton 3899705Slinton DECR, INAREG|INTAREG, 3909705Slinton SAREG, TWORD, 39132969Sdonn SCON|SNAME, TANY, 3929705Slinton NAREG, RESC1, 3939705Slinton " ZD\n", 3949705Slinton 3959705Slinton ASSIGN, INAREG|FOREFF|FORCC, 39616182Sralph SAREG|AWD, TDOUBLE, 39716182Sralph SAREG|AWD, TUCHAR|TUSHORT, 39816182Sralph NAREG|NASR, RLEFT|RESCC, 39916182Sralph " movzZRl AR,A1\n cvtld A1,AL\n", 40016182Sralph 40116182Sralph ASSIGN, INAREG|FOREFF|FORCC, 40216182Sralph SAREG|AWD, TFLOAT, 40316182Sralph SAREG|AWD, TUCHAR|TUSHORT, 40416182Sralph NAREG|NASR, RLEFT|RESCC, 40516182Sralph " movzZRl AR,A1\n cvtlf A1,AL\n", 40616182Sralph 40716182Sralph ASSIGN, INAREG|FOREFF|FORCC, 4089705Slinton SAREG|AWD, TANY, 4099705Slinton SAREG|AWD, TANY, 41025582Sbloom 0, RLEFT|RESCC, 4119705Slinton " ZA\n", 4129705Slinton 41332958Sdonn ASSIGN, FOREFF, 4149705Slinton SFLD, TANY, 4159705Slinton SAREG|AWD, TWORD, 41632958Sdonn 0, RNOP, 4179705Slinton " insv AR,$H,$S,AL\n", 4189705Slinton 41932958Sdonn ASSIGN, INAREG, 42032960Sdonn SFLD, ANYSIGNED, 42132958Sdonn SAREG|AWD, TWORD, 42232958Sdonn NAREG, RESC1, 42332958Sdonn " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", 42432958Sdonn 42532960Sdonn ASSIGN, INAREG, 42632960Sdonn SFLD, ANYUSIGNED, 42732960Sdonn SAREG|AWD, TWORD, 42832960Sdonn NAREG, RESC1, 42932960Sdonn " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n", 43032960Sdonn 4319705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4329705Slinton SAREG|AWD, TWORD, 4339705Slinton SFLD, ANYSIGNED, 4349705Slinton 0, RLEFT|RESCC, 4359705Slinton " extv $H,$S,AR,AL\n", 4369705Slinton 4379705Slinton ASSIGN, INAREG|FOREFF|FORCC, 4389705Slinton SAREG|AWD, TWORD, 4399705Slinton SFLD, ANYUSIGNED, 4409705Slinton 0, RLEFT|RESCC, 4419705Slinton " extzv $H,$S,AR,AL\n", 4429705Slinton 4439705Slinton /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 4449705Slinton UNARY MUL, FOREFF, 4459705Slinton SCC, TANY, 4469705Slinton SCC, TANY, 4479705Slinton 0, RNULL, 4489705Slinton " HELP HELP HELP\n", 4499705Slinton 45032959Sdonn OREG, INTEMP, 45132959Sdonn SANY, TANY, 45232959Sdonn SOREG, TDOUBLE, 45332959Sdonn 2*NTEMP, RESC1, 45432959Sdonn " movd AR,A1\n", 45532959Sdonn 45632959Sdonn OREG, INTEMP, 45732959Sdonn SANY, TANY, 45832959Sdonn SOREG, TANY, 45932959Sdonn NTEMP, RESC1, 46032959Sdonn " movZF AR,A1\n", 46132959Sdonn 4629705Slinton REG, INTEMP, 4639705Slinton SANY, TANY, 4649705Slinton SAREG, TDOUBLE, 4659705Slinton 2*NTEMP, RESC1, 4669705Slinton " movd AR,A1\n", 4679705Slinton 4689705Slinton REG, INTEMP, 4699705Slinton SANY, TANY, 4709705Slinton SAREG, TANY, 4719705Slinton NTEMP, RESC1, 4729705Slinton " movZF AR,A1\n", 4739705Slinton 47417740Sralph #if defined(FORT) || defined(SPRECC) 47517740Sralph REG, FORARG, 4769705Slinton SANY, TANY, 4779705Slinton SAREG, TFLOAT, 4789705Slinton 0, RNULL, 4799705Slinton " cvtfd AR,-(sp)\n", 4809705Slinton 4819705Slinton REG, FORARG, 4829705Slinton SANY, TANY, 4839705Slinton SAREG, TDOUBLE, 4849705Slinton 0, RNULL, 4859705Slinton " movZR AR,-(sp)\n", 4869705Slinton #endif 4879705Slinton 4889705Slinton OPLEAF, FOREFF, 4899705Slinton SANY, TANY, 4909705Slinton SAREG|AWD, TANY, 4919705Slinton 0, RLEFT, 4929705Slinton "", 4939705Slinton 4949705Slinton OPLTYPE, INAREG|INTAREG, 4959705Slinton SANY, TANY, 4969705Slinton SANY, TANY, 4979705Slinton NAREG|NASR, RESC1, 4989705Slinton " ZA\n", 4999705Slinton 5009705Slinton OPLTYPE, FORCC, 5019705Slinton SANY, TANY, 5029705Slinton SANY, TANY, 5039705Slinton 0, RESCC, 5049705Slinton " tstZR AR\n", 5059705Slinton 5069705Slinton OPLTYPE, FORARG, 5079705Slinton SANY, TANY, 5089705Slinton SANY, TWORD, 5099705Slinton 0, RNULL, 5109705Slinton " pushl AR\n", 5119705Slinton 5129705Slinton OPLTYPE, FORARG, 5139705Slinton SANY, TANY, 5149705Slinton SANY, TANY, 5159705Slinton 0, RNULL, 516*32970Sdonn " ZV\n", 5179705Slinton 51817740Sralph #if defined(FORT) || defined(SPRECC) 5199705Slinton UNARY MINUS, INTAREG|FORCC, 52024417Smckusick SAREG|AWD, TFLOAT, 52116182Sralph SANY, TANY, 52216182Sralph NAREG|NASL, RESC1|RESCC, 52316182Sralph " mnegZL TAL,A1\n", 52416182Sralph 52524417Smckusick #endif 52616182Sralph 52716182Sralph UNARY MINUS, INTAREG|FORCC, 5289705Slinton SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE, 5299705Slinton SANY, TANY, 5309705Slinton NAREG|NASL, RESC1|RESCC, 5319705Slinton " mnegZL AL,A1\n", 5329705Slinton 5339705Slinton COMPL, INTAREG|FORCC, 53423479Smckusick SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 5359705Slinton SANY, TANY, 5369705Slinton NAREG|NASL, RESC1|RESCC, 5379705Slinton " mcomZL AL,A1\n", 5389705Slinton 5399705Slinton COMPL, INTAREG|FORCC, 54032968Sdonn SAREG|AWD, ANYSIGNED, 5419705Slinton SANY, TANY, 5429705Slinton NAREG|NASL, RESC1|RESCC, 5439705Slinton " cvtZLl AL,A1\n mcoml A1,A1\n", 5449705Slinton 54532968Sdonn COMPL, INTAREG|FORCC, 54632968Sdonn SAREG|AWD, ANYUSIGNED, 54732968Sdonn SANY, TANY, 54832968Sdonn NAREG|NASL, RESC1|RESCC, 54932968Sdonn " movzZLl AL,A1\n mcoml A1,A1\n", 55032968Sdonn 5519705Slinton AND, FORCC, 5529705Slinton SAREG|AWD, TWORD, 5539705Slinton SCON, TWORD, 5549705Slinton 0, RESCC, 5559705Slinton " bitl ZZ,AL\n", 5569705Slinton 5579705Slinton AND, FORCC, 5589705Slinton SAREG|AWD, TSHORT|TUSHORT, 5599705Slinton SSCON, TWORD, 5609705Slinton 0, RESCC, 5619705Slinton " bitw ZZ,AL\n", 5629705Slinton 5639705Slinton AND, FORCC, 5649705Slinton SAREG|AWD, TCHAR|TUCHAR, 5659705Slinton SCCON, TWORD, 5669705Slinton 0, RESCC, 5679705Slinton " bitb ZZ,AL\n", 5689705Slinton 5699705Slinton ASG AND, INAREG|FOREFF|FORCC, 5709705Slinton SAREG, TWORD, 5719705Slinton SCON, TWORD, 5729705Slinton 0, RLEFT|RESCC, 5739705Slinton " bicl2 AR,AL\n", 5749705Slinton 57532962Sdonn DIV, INAREG|FOREFF|FORCC, 57632962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 57732967Sdonn SCON, ANYUSIGNED, 57832962Sdonn NAREG|NEVEN, RESC1|RESCC, 57932963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,U1\n", 58032962Sdonn 58132962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 58232962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 58332967Sdonn SMCON, ANYUSIGNED, 58432962Sdonn 0, RLEFT|RESCC, 58532962Sdonn " ZJ\n", 58632962Sdonn 58732962Sdonn ASG DIV, INAREG|FOREFF|FORCC, 58832962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 58932967Sdonn SCON, ANYUSIGNED, 59032962Sdonn NAREG|NEVEN, RLEFT|RESCC, 59132963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,AL,U1\n", 59232962Sdonn 59332965Sdonn ASG DIV, INAREG|FOREFF|FORCC, 59432965Sdonn SAREG|AWD, TINT|TLONG, 59532965Sdonn SMCON, ANYUSIGNED, 59632965Sdonn 0, RLEFT|RESCC, 59732965Sdonn " ZJ\n", 59832965Sdonn 59932965Sdonn ASG DIV, INAREG|FOREFF|FORCC, 60032965Sdonn SAREG|AWD, TINT|TLONG, 60132965Sdonn SCON, ANYUSIGNED, 60232965Sdonn NAREG|NEVEN, RLEFT|RESCC, 60332965Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,AL,U1\n", 60432965Sdonn 60532962Sdonn MOD, INAREG|INTAREG, 60632962Sdonn SAREG|AWD, TINT|TLONG, 60732962Sdonn SAREG|AWD, TINT|TLONG, 60832962Sdonn NAREG, RESC1, 60932962Sdonn " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 61032962Sdonn 61132962Sdonn MOD, INAREG|FOREFF, 61232962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 61332967Sdonn SMCON, ANYUSIGNED, 61432962Sdonn NAREG|NASL, RLEFT|RESC1, 61532962Sdonn " ZJ\n", 61632962Sdonn 61732962Sdonn MOD, INAREG|FOREFF, 61832962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 61932967Sdonn SCON, ANYUSIGNED, 62032962Sdonn NAREG|NEVEN, RESC1|RESCC, 62132963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,U1,A1\n", 62232962Sdonn 62332967Sdonn /* should only see UNSIGNED lhs here if converted from UCHAR/USHORT lhs */ 62432967Sdonn ASG MOD, INAREG|FOREFF|FORCC, 62532967Sdonn SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, 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, 63232967Sdonn SMCON, ANYUSIGNED, 63332962Sdonn 0, RLEFT|RESCC, 63432962Sdonn " ZJ\n", 63532962Sdonn 63632962Sdonn ASG MOD, INAREG|FOREFF, 63732962Sdonn SAREG|AWD, TUNSIGNED|TULONG, 63832967Sdonn SCON, ANYUSIGNED, 63932962Sdonn NAREG|NEVEN, RLEFT|RESCC, 64032963Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n", 64132962Sdonn 64232965Sdonn ASG MOD, INAREG|FOREFF, 64332965Sdonn SAREG|AWD, TINT|TLONG, 64432965Sdonn SMCON, ANYUSIGNED, 64532965Sdonn 0, RLEFT|RESCC, 64632965Sdonn " ZJ\n", 64732965Sdonn 64832965Sdonn ASG MOD, INAREG|FOREFF, 64932965Sdonn SAREG|AWD, TINT|TLONG, 65032965Sdonn SCON, ANYUSIGNED, 65132965Sdonn NAREG|NEVEN, RLEFT|RESCC, 65232965Sdonn " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n", 65332965Sdonn 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, 67432964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6759705Slinton 0, RLEFT|RESCC, 6769705Slinton " incZL AL\n", 6779705Slinton 6789705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6799705Slinton AWD, ANYSIGNED|ANYUSIGNED, 68032964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6819705Slinton 0, RLEFT|RESCC, 6829705Slinton " incZL AL\n", 6839705Slinton 6849705Slinton ASG PLUS, INAREG|FOREFF|FORCC, 6859705Slinton SAREG, TSHORT|TCHAR, 68632964Sdonn 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, 69232964Sdonn 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, 69832964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 6999705Slinton 0, RLEFT|RESCC, 7009705Slinton " decZL AL\n", 7019705Slinton 7029705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 7039705Slinton AWD, ANYSIGNED|ANYUSIGNED, 70432964Sdonn SONE, TINT|TUNSIGNED|TLONG|TULONG, 7059705Slinton 0, RLEFT|RESCC, 7069705Slinton " decZL AL\n", 7079705Slinton 7089705Slinton ASG MINUS, INAREG|FOREFF|FORCC, 7099705Slinton SAREG, TSHORT|TCHAR, 71032964Sdonn 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, 71632964Sdonn 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