1 static char *sccsid ="@(#)table.c 1.1 (Berkeley) 12/15/82"; 2 # include "mfile2" 3 4 # define WPTR TPTRTO|TINT|TLONG|TFLOAT|TDOUBLE|TPOINT|TUNSIGNED|TULONG 5 # define AWD SNAME|SOREG|SCON|STARNM|STARREG 6 /* tbl */ 7 # define ANYSIGNED TPOINT|TINT|TLONG|TSHORT|TCHAR 8 # define ANYUSIGNED TUNSIGNED|TULONG|TUSHORT|TUCHAR 9 # define ANYFIXED ANYSIGNED|ANYUSIGNED 10 # define TWORD TINT|TUNSIGNED|TPOINT|TLONG|TULONG 11 # define NIAWD SNAME|SCON|STARNM 12 /* tbl */ 13 14 struct optab table[] = { 15 16 PCONV, INAREG|INTAREG, 17 SAREG|AWD, TCHAR|TSHORT, 18 SANY, TPOINT, 19 NAREG|NASL, RESC1, 20 " cvtZLl AL,A1\n", 21 22 PCONV, INAREG|INTAREG, 23 SAREG|AWD, TUCHAR|TUSHORT, 24 SANY, TPOINT, 25 NAREG|NASL, RESC1, 26 " movzZLl AL,A1\n", 27 28 /* the following entry is to fix a problem with 29 the manner that the first pass handles the 30 type of a shift expression */ 31 PCONV, INAREG|INTAREG, 32 SAREG|AWD, TINT|TUNSIGNED, 33 SANY, TPOINT, 34 NAREG|NASL, RLEFT, 35 "", 36 37 SCONV, INTAREG|FORCC, 38 SAREG, TDOUBLE, 39 SANY, TDOUBLE, 40 0, RLEFT, 41 "", 42 43 #ifdef FORT 44 SCONV, INTAREG|FORCC, 45 SAREG|AWD, ANYSIGNED|TUNSIGNED|TULONG|TFLOAT, 46 SANY, TFLOAT, 47 NAREG|NASL, RESC1|RESCC, 48 " cvtZLf AL,TA1\n", 49 50 SCONV, INTAREG|FORCC, 51 SAREG|AWD, TUCHAR|TUSHORT, 52 SANY, TFLOAT, 53 NAREG|NASL, RESC1|RESCC, 54 " movzZLl AL,A1\n cvtlf A1,TA1\n", 55 #endif 56 57 SCONV, INTAREG|FORCC, 58 SAREG|AWD, ANYSIGNED|TUNSIGNED|TULONG|TFLOAT, 59 SANY, TFLOAT|TDOUBLE, 60 NAREG|NASL, RESC1|RESCC, 61 " cvtZLd AL,A1\n", 62 63 SCONV, INTAREG|FORCC, 64 SAREG|AWD, TUCHAR|TUSHORT, 65 SANY, TFLOAT|TDOUBLE, 66 NAREG|NASL, RESC1|RESCC, 67 " movzZLl AL,A1\n cvtld A1,A1\n", 68 69 SCONV, INTAREG|FORCC, 70 SAREG|AWD, TFLOAT|TDOUBLE, 71 SANY, ANYFIXED, 72 NAREG|NASL, RESC1|RESCC, 73 " cvtZLZF AL,A1\n", 74 75 SCONV, INTAREG|FORCC, 76 SAREG|SNAME|SCON|STARNM, TANY, 77 SANY, ANYUSIGNED, 78 NAREG|NASL, RESC1|RESCC, 79 " movzZRl AL,A1\n", 80 81 SCONV, INTAREG|FORCC, 82 SSOREG, TANY, 83 SANY, ANYUSIGNED, 84 NAREG|NASL, RESC1|RESCC, 85 " movzZRl AL,A1\n", 86 87 SCONV, INTAREG|FORCC, 88 SAREG|SNAME|SCON|STARNM, TANY, 89 SANY, TANY, 90 NAREG|NASL, RESC1|RESCC, 91 " cvtZRl AL,A1\n", 92 93 SCONV, INTAREG|FORCC, 94 SSOREG, TANY, 95 SANY, TANY, 96 NAREG|NASL, RESC1|RESCC, 97 " cvtZRl AL,A1\n", 98 99 100 INIT, FOREFF, 101 SCON, TANY, 102 SANY, TWORD, 103 0, RNOP, 104 " .long CL\n", 105 106 INIT, FOREFF, 107 SCON, TANY, 108 SANY, TSHORT|TUSHORT, 109 0, RNOP, 110 " .word CL\n", 111 112 INIT, FOREFF, 113 SCON, TANY, 114 SANY, TCHAR|TUCHAR, 115 0, RNOP, 116 " .byte CL\n", 117 118 /* for the use of fortran only */ 119 120 GOTO, FOREFF, 121 SCON, TANY, 122 SANY, TANY, 123 0, RNOP, 124 " jbr CL\n", 125 126 GOTO, FOREFF, 127 AWD, TANY, 128 SANY, TANY, 129 0, RNOP, 130 " jmp *AL\n", 131 132 GOTO, FOREFF, 133 SAREG, TANY, 134 SANY, TANY, 135 0, RNOP, 136 " jmp (AL)\n", 137 138 STARG, FORARG, 139 SCON|SOREG, TANY, 140 SANY, TANY, 141 NTEMP+2*NAREG, RESC3, 142 "ZS", 143 144 STASG, FORARG, 145 SNAME|SOREG, TANY, 146 SCON|SAREG, TANY, 147 0, RNULL, 148 " subl2 ZT,sp\nZS", 149 150 STASG, FOREFF, 151 SNAME|SOREG, TANY, 152 SCON|SAREG, TANY, 153 0, RNOP, 154 "ZS", 155 156 STASG, INAREG, 157 SNAME|SOREG, TANY, 158 SCON, TANY, 159 NAREG, RESC1, 160 "ZS movl AR,A1\n", 161 162 STASG, INAREG, 163 SNAME|SOREG, TANY, 164 SAREG, TANY, 165 0, RRIGHT, 166 " pushl AR\nZS movl (sp)+,AR\n", 167 168 FLD, INAREG|INTAREG, 169 SANY, TANY, 170 SFLD, ANYSIGNED, 171 NAREG|NASR, RESC1, 172 " extv $H,$S,AR,A1\n", 173 174 FLD, INAREG|INTAREG, 175 SANY, TANY, 176 SFLD, ANYUSIGNED, 177 NAREG|NASR, RESC1, 178 " extzv $H,$S,AR,A1\n", 179 180 FLD, FORARG, 181 SANY, TANY, 182 SFLD, ANYSIGNED, 183 0, RNULL, 184 " extv $H,$S,AR,-(sp)\n", 185 186 FLD, FORARG, 187 SANY, TANY, 188 SFLD, ANYUSIGNED, 189 0, RNULL, 190 " extzv $H,$S,AR,-(sp)\n", 191 192 OPLOG, FORCC, 193 SAREG|AWD, TWORD, 194 SAREG|AWD, TWORD, 195 0, RESCC, 196 " cmpl AL,AR\nZP", 197 198 OPLOG, FORCC, 199 SAREG|AWD, TSHORT|TUSHORT, 200 SAREG|AWD, TSHORT|TUSHORT, 201 0, RESCC, 202 " cmpw AL,AR\nZP", 203 204 OPLOG, FORCC, 205 SAREG|AWD, TCHAR|TUCHAR, 206 SAREG|AWD, TCHAR|TUCHAR, 207 0, RESCC, 208 " cmpb AL,AR\nZP", 209 210 OPLOG, FORCC, 211 SAREG|AWD, TSHORT|TUSHORT, 212 SSCON, TANY, 213 0, RESCC, 214 " cmpw AL,AR\nZP", 215 216 OPLOG, FORCC, 217 SAREG|AWD, TCHAR|TUCHAR, 218 SCCON, TANY, 219 0, RESCC, 220 " cmpb AL,AR\nZP", 221 222 OPLOG, FORCC, 223 SAREG|AWD, TDOUBLE, 224 SAREG|AWD, TDOUBLE, 225 0, RESCC, 226 " cmpd AL,AR\nZP", 227 228 OPLOG, FORCC, 229 SAREG|AWD, TDOUBLE, 230 SAREG|AWD, TFLOAT, 231 NAREG|NASR, RESCC, 232 " cvtfd AR,A1\n cmpd AL,A1\nZP", 233 234 OPLOG, FORCC, 235 SAREG|AWD, TFLOAT, 236 SAREG|AWD, TDOUBLE, 237 NAREG|NASL, RESCC, 238 " cvtfd AL,A1\n cmpd A1,AR\nZP", 239 240 OPLOG, FORCC, 241 SAREG|AWD, TFLOAT, 242 SAREG|AWD, TFLOAT, 243 0, RESCC, 244 " cmpf AL,AR\nZP", 245 246 CCODES, INAREG|INTAREG, 247 SANY, TANY, 248 SANY, TANY, 249 NAREG, RESC1, 250 " movl $1,A1\nZN", 251 252 UNARY CALL, INTAREG, 253 SCON, TANY, 254 SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 255 NAREG|NASL, RESC1, /* should be register 0 */ 256 " calls ZC,CL\n", 257 258 UNARY CALL, INTAREG, 259 SAREG, TANY, 260 SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, 261 NAREG|NASL, RESC1, /* should be 0 */ 262 " calls ZC,(AL)\n", 263 264 UNARY CALL, INAREG|INTAREG, 265 SNAME, TANY, 266 SANY, TANY, 267 NAREG|NASL, RESC1, /* really reg 0 */ 268 " calls ZC,*AL\n", 269 270 UNARY CALL, INAREG|INTAREG, 271 SSOREG, TANY, 272 SANY, TANY, 273 NAREG|NASL, RESC1, /* really reg 0 */ 274 " calls ZC,*AL\n", 275 276 ASG RS, INAREG|FOREFF|FORCC, 277 SAREG, TWORD, 278 SCON, TINT, 279 0, RLEFT|RESCC, 280 " extzv AR,ZU,AL,AL\n", 281 282 ASG RS, INAREG|FOREFF|FORCC, 283 SAREG, TWORD, 284 SAREG, ANYFIXED, 285 NAREG, RLEFT|RESCC, 286 " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 287 288 ASG RS, INAREG|FOREFF|FORCC, 289 SAREG, TWORD, 290 SAREG|AWD, TWORD, 291 NAREG, RLEFT|RESCC, 292 " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", 293 294 RS, INAREG|INTAREG|FORCC, 295 SAREG, TWORD, 296 SCON, TINT, 297 NAREG|NASL, RESC1|RESCC, 298 " extzv AR,ZU,AL,A1\n", 299 300 ASG LS, INAREG|FOREFF|FORCC, 301 SAREG|AWD, TWORD, 302 SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 303 0, RLEFT|RESCC, 304 " ashl AR,AL,AL\n", 305 306 ASG LS, INAREG|FOREFF|FORCC, 307 SAREG|AWD, TWORD, 308 SSOREG, ANYSIGNED|ANYUSIGNED, 309 0, RLEFT|RESCC, 310 " ashl AR,AL,AL\n", 311 312 ASG LS, INAREG|FOREFF|FORCC, 313 SAREG|AWD, TWORD, 314 SOREG, ANYSIGNED|ANYUSIGNED, 315 NAREG, RLEFT|RESCC, 316 " ZB AR,A1\n ashl A1,AL,AL\n", 317 318 LS, INAREG|INTAREG|FORCC, 319 SAREG|AWD, TWORD, 320 SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, 321 NAREG|NASL|NASR, RESC1|RESCC, 322 " ashl AR,AL,A1\n", 323 324 LS, INAREG|INTAREG|FORCC, 325 SAREG|AWD, TWORD, 326 SSOREG, ANYSIGNED|ANYUSIGNED, 327 NAREG|NASL|NASR, RESC1|RESCC, 328 " ashl AR,AL,A1\n", 329 330 LS, INAREG|INTAREG|FORCC, 331 SAREG|AWD, TWORD, 332 SOREG, ANYSIGNED|ANYUSIGNED, 333 NAREG|NASR, RESC1|RESCC, 334 " ZB AR,A1\n ashl A1,AL,A1\n", 335 336 INCR, FOREFF, 337 AWD, TANY, 338 SCON, TANY, 339 0, RLEFT, 340 " ZE\n", 341 342 DECR, FOREFF, 343 AWD, TANY, 344 SCON, TANY, 345 0, RLEFT, 346 " ZE\n", 347 348 INCR, FOREFF, 349 SAREG, TWORD, 350 SCON, TANY, 351 0, RLEFT, 352 " ZE\n", 353 354 DECR, FOREFF, 355 SAREG, TWORD, 356 SCON, TANY, 357 0, RLEFT, 358 " ZE\n", 359 360 /* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */ 361 362 INCR, INAREG|INTAREG, 363 AWD, TANY, 364 SCON, TANY, 365 NAREG, RESC1, 366 " ZD\n", 367 368 DECR, INAREG|INTAREG, 369 AWD, TANY, 370 SCON, TANY, 371 NAREG, RESC1, 372 " ZD\n", 373 374 INCR, INAREG|INTAREG, 375 SAREG, TWORD, 376 SCON, TANY, 377 NAREG, RESC1, 378 " ZD\n", 379 380 DECR, INAREG|INTAREG, 381 SAREG, TWORD, 382 SCON, TANY, 383 NAREG, RESC1, 384 " ZD\n", 385 386 ASSIGN, INAREG|FOREFF|FORCC, 387 SAREG|AWD, TANY, 388 SAREG|AWD, TANY, 389 0, RLEFT|RRIGHT|RESCC, 390 " ZA\n", 391 392 ASSIGN, INAREG|FOREFF, 393 SFLD, TANY, 394 SAREG|AWD, TWORD, 395 0, RRIGHT, 396 " insv AR,$H,$S,AL\n", 397 398 ASSIGN, INAREG|FOREFF|FORCC, 399 SAREG|AWD, TWORD, 400 SFLD, ANYSIGNED, 401 0, RLEFT|RESCC, 402 " extv $H,$S,AR,AL\n", 403 404 ASSIGN, INAREG|FOREFF|FORCC, 405 SAREG|AWD, TWORD, 406 SFLD, ANYUSIGNED, 407 0, RLEFT|RESCC, 408 " extzv $H,$S,AR,AL\n", 409 410 /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ 411 UNARY MUL, FOREFF, 412 SCC, TANY, 413 SCC, TANY, 414 0, RNULL, 415 " HELP HELP HELP\n", 416 417 REG, INTEMP, 418 SANY, TANY, 419 SAREG, TDOUBLE, 420 2*NTEMP, RESC1, 421 " movd AR,A1\n", 422 423 REG, INTEMP, 424 SANY, TANY, 425 SAREG, TANY, 426 NTEMP, RESC1, 427 " movZF AR,A1\n", 428 429 #ifdef FORT 430 REG, FORARG, 431 SANY, TANY, 432 SAREG, TFLOAT, 433 0, RNULL, 434 " cvtfd AR,-(sp)\n", 435 436 REG, FORARG, 437 SANY, TANY, 438 SAREG, TDOUBLE, 439 0, RNULL, 440 " movZR AR,-(sp)\n", 441 #endif 442 443 OPLEAF, FOREFF, 444 SANY, TANY, 445 SAREG|AWD, TANY, 446 0, RLEFT, 447 "", 448 449 OPLTYPE, INAREG|INTAREG, 450 SANY, TANY, 451 SANY, TFLOAT|TDOUBLE, 452 2*NAREG|NASR, RESC1, 453 " ZA\n", 454 455 OPLTYPE, INAREG|INTAREG, 456 SANY, TANY, 457 SANY, TANY, 458 NAREG|NASR, RESC1, 459 " ZA\n", 460 461 OPLTYPE, FORCC, 462 SANY, TANY, 463 SANY, TANY, 464 0, RESCC, 465 " tstZR AR\n", 466 467 OPLTYPE, FORARG, 468 SANY, TANY, 469 SANY, TWORD, 470 0, RNULL, 471 " pushl AR\n", 472 473 OPLTYPE, FORARG, 474 SANY, TANY, 475 SANY, TCHAR|TSHORT, 476 0, RNULL, 477 " cvtZRl AR,-(sp)\n", 478 479 OPLTYPE, FORARG, 480 SANY, TANY, 481 SANY, TUCHAR|TUSHORT, 482 0, RNULL, 483 " movzZRl AR,-(sp)\n", 484 485 OPLTYPE, FORARG, 486 SANY, TANY, 487 SANY, TDOUBLE, 488 0, RNULL, 489 " movd AR,-(sp)\n", 490 491 OPLTYPE, FORARG, 492 SANY, TANY, 493 SANY, TFLOAT, 494 0, RNULL, 495 " cvtfd AR,-(sp)\n", 496 497 UNARY MINUS, INTAREG|FORCC, 498 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE, 499 SANY, TANY, 500 NAREG|NASL, RESC1|RESCC, 501 " mnegZL AL,A1\n", 502 503 COMPL, INTAREG|FORCC, 504 SAREG|AWD, TINT|TUNSIGNED, 505 SANY, TANY, 506 NAREG|NASL, RESC1|RESCC, 507 " mcomZL AL,A1\n", 508 509 COMPL, INTAREG|FORCC, 510 SAREG|AWD, ANYSIGNED|ANYUSIGNED, 511 SANY, TANY, 512 NAREG|NASL, RESC1|RESCC, 513 " cvtZLl AL,A1\n mcoml A1,A1\n", 514 515 AND, FORCC, 516 SAREG|AWD, TWORD, 517 SCON, TWORD, 518 0, RESCC, 519 " bitl ZZ,AL\n", 520 521 AND, FORCC, 522 SAREG|AWD, TSHORT|TUSHORT, 523 SSCON, TWORD, 524 0, RESCC, 525 " bitw ZZ,AL\n", 526 527 AND, FORCC, 528 SAREG|AWD, TCHAR|TUCHAR, 529 SCCON, TWORD, 530 0, RESCC, 531 " bitb ZZ,AL\n", 532 533 ASG AND, INAREG|FOREFF|FORCC, 534 SAREG, TWORD, 535 SCON, TWORD, 536 0, RLEFT|RESCC, 537 " bicl2 AR,AL\n", 538 539 ASG OPMUL, INAREG|FOREFF|FORCC, 540 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 541 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 542 0, RLEFT|RESCC, 543 " OL2 AR,AL\n", 544 545 OPMUL, INAREG|INTAREG|FORCC, 546 STAREG, TINT|TUNSIGNED|TLONG|TULONG, 547 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 548 0, RLEFT|RESCC, 549 " OL2 AR,AL\n", 550 551 OPMUL, INAREG|INTAREG|FORCC, 552 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 553 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 554 NAREG|NASL|NASR, RESC1|RESCC, 555 " OL3 AR,AL,A1\n", 556 557 ASG MOD, INAREG|INTAREG|FOREFF|FORCC, 558 SAREG, TINT|TUNSIGNED|TLONG|TULONG, 559 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 560 NAREG, RLEFT|RESCC, 561 " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", 562 563 MOD, INAREG|INTAREG, 564 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 565 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 566 NAREG, RESC1, 567 " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", 568 569 ASG PLUS, INAREG|FOREFF|FORCC, 570 SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 571 SONE, TINT|TLONG, 572 0, RLEFT|RESCC, 573 " incZL AL\n", 574 575 ASG PLUS, INAREG|FOREFF|FORCC, 576 AWD, ANYSIGNED|ANYUSIGNED, 577 SONE, TINT|TLONG, 578 0, RLEFT|RESCC, 579 " incZL AL\n", 580 581 ASG PLUS, INAREG|FOREFF|FORCC, 582 SAREG, TSHORT|TCHAR, 583 SONE, TINT|TLONG, 584 0, RLEFT|RESCC, 585 " incZL AL\n cvtZLl AL,AL\n", 586 587 ASG PLUS, INAREG|FOREFF|FORCC, 588 SAREG, TUSHORT|TUCHAR, 589 SONE, TINT|TLONG, 590 0, RLEFT|RESCC, 591 " incZL AL\n movzZLl AL,AL\n", 592 593 ASG MINUS, INAREG|FOREFF|FORCC, 594 SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, 595 SONE, TINT|TLONG, 596 0, RLEFT|RESCC, 597 " decZL AL\n", 598 599 ASG MINUS, INAREG|FOREFF|FORCC, 600 AWD, ANYSIGNED|ANYUSIGNED, 601 SONE, TINT|TLONG, 602 0, RLEFT|RESCC, 603 " decZL AL\n", 604 605 ASG MINUS, INAREG|FOREFF|FORCC, 606 SAREG, TSHORT|TCHAR, 607 SONE, TINT|TLONG, 608 0, RLEFT|RESCC, 609 " decZL AL\n cvtZLl AL,AL\n", 610 611 ASG MINUS, INAREG|FOREFF|FORCC, 612 SAREG, TUSHORT|TUCHAR, 613 SONE, TINT|TLONG, 614 0, RLEFT|RESCC, 615 " decZL AL\n movzZLl AL,AL\n", 616 617 PLUS, INAREG|INTAREG|FORCC, 618 STAREG, TWORD, 619 SONE, TWORD, 620 0, RLEFT|RESCC, 621 " incZL AL\n", 622 623 PLUS, INAREG|INTAREG|FORCC, 624 STAREG, TSHORT|TCHAR, 625 SONE, TWORD, 626 0, RLEFT|RESCC, 627 " incZL AL\n cvtZLl AL,AL\n", 628 629 PLUS, INAREG|INTAREG|FORCC, 630 STAREG, TUSHORT|TUCHAR, 631 SONE, TWORD, 632 0, RLEFT|RESCC, 633 " incZL AL\n movzZLl AL,AL\n", 634 635 MINUS, INAREG|INTAREG|FORCC, 636 STAREG, TWORD, 637 SONE, TWORD, 638 0, RLEFT|RESCC, 639 " decZL AL\n", 640 641 MINUS, INAREG|INTAREG|FORCC, 642 STAREG, TSHORT|TCHAR, 643 SONE, TWORD, 644 0, RLEFT|RESCC, 645 " decZL AL\n cvtZLl AL,AL\n", 646 647 MINUS, INAREG|INTAREG|FORCC, 648 STAREG, TUSHORT|TUCHAR, 649 SONE, TWORD, 650 0, RLEFT|RESCC, 651 " decZL AL\n movzZLl AL,AL\n", 652 653 ASG OPSIMP, INAREG|FOREFF|FORCC, 654 SAREG|AWD, TWORD, 655 SAREG|AWD, TWORD, 656 0, RLEFT|RESCC, 657 " OL2 AR,AL\n", 658 659 ASG OPSIMP, INAREG|FOREFF|FORCC, 660 SAREG, TWORD, 661 SAREG, TSHORT|TUSHORT|TCHAR|TUCHAR, 662 0, RLEFT|RESCC, 663 " OL2 AR,AL\n", 664 665 ASG OPSIMP, INAREG|FOREFF|FORCC, 666 AWD, TSHORT|TUSHORT, 667 SAREG|AWD, TSHORT|TUSHORT, 668 0, RLEFT|RESCC, 669 " OW2 AR,AL\n", 670 671 ASG OPSIMP, INAREG|FOREFF|FORCC, 672 AWD, TSHORT|TUSHORT, 673 SSCON, TWORD, 674 0, RLEFT|RESCC, 675 " OW2 AR,AL\n", 676 677 ASG OPSIMP, INAREG|FOREFF|FORCC, 678 AWD, TCHAR|TUCHAR, 679 SAREG|AWD, TCHAR|TUCHAR, 680 0, RLEFT|RESCC, 681 " OB2 AR,AL\n", 682 683 ASG OPSIMP, INAREG|FOREFF|FORCC, 684 AWD, TCHAR|TUCHAR, 685 SCCON, TWORD, 686 0, RLEFT|RESCC, 687 " OB2 AR,AL\n", 688 689 ASG OPSIMP, INAREG|FOREFF|FORCC, 690 SAREG, TSHORT, 691 SAREG|AWD, ANYFIXED, 692 0, RLEFT|RESCC, 693 " OW2 AR,AL\n cvtZLl AL,AL\n", 694 695 ASG OPSIMP, INAREG|FOREFF|FORCC, 696 SAREG, TUSHORT, 697 SAREG|AWD, ANYFIXED, 698 0, RLEFT|RESCC, 699 " OW2 AR,AL\n movzZLl AL,AL\n", 700 701 ASG OPSIMP, INAREG|FOREFF|FORCC, 702 SAREG, TCHAR, 703 SAREG|AWD, ANYFIXED, 704 0, RLEFT|RESCC, 705 " OB2 AR,AL\n cvtZLl AL,AL\n", 706 707 ASG OPSIMP, INAREG|FOREFF|FORCC, 708 SAREG, TUCHAR, 709 SAREG|AWD, ANYFIXED, 710 0, RLEFT|RESCC, 711 " OB2 AR,AL\n movzZLl AL,AL\n", 712 713 OPSIMP, INAREG|INTAREG|FORCC, 714 STAREG, ANYFIXED, 715 SAREG|AWD, TWORD, 716 0, RLEFT|RESCC, 717 " OL2 AR,AL\n", 718 719 OPSIMP, INAREG|INTAREG|FORCC, 720 SAREG|AWD, TWORD, 721 SAREG|AWD, TWORD, 722 NAREG|NASL|NASR, RESC1|RESCC, 723 " OL3 AR,AL,A1\n", 724 725 ASG OPFLOAT, INAREG|FOREFF|FORCC, 726 SAREG|AWD, TDOUBLE, 727 SAREG|AWD, TDOUBLE, 728 0, RLEFT|RESCC, 729 " OD2 AR,AL\n", 730 731 ASG OPFLOAT, INAREG|FOREFF|FORCC, 732 SAREG|AWD, TFLOAT, 733 SAREG|AWD, TFLOAT, 734 0, RLEFT|RESCC, 735 " OF2 AR,AL\n", 736 737 ASG OPFLOAT, INAREG|FOREFF|FORCC, 738 SAREG|AWD, TDOUBLE, 739 SAREG|AWD, TFLOAT, 740 NAREG|NASR, RLEFT|RESCC, 741 " cvtfd AR,A1\n OD2 A1,AL\n", 742 743 ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, 744 SAREG|AWD, TFLOAT, 745 SAREG|AWD, TDOUBLE, 746 NAREG, RLEFT|RESC1|RESCC, 747 " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", 748 749 OPFLOAT, INAREG|INTAREG|FORCC, 750 STAREG, TDOUBLE, 751 SAREG|AWD, TDOUBLE, 752 0, RLEFT|RESCC, 753 " OD2 AR,AL\n", 754 755 OPFLOAT, INAREG|INTAREG|FORCC, 756 SAREG|AWD, TDOUBLE, 757 SAREG|AWD, TDOUBLE, 758 NAREG|NASL|NASR, RESC1|RESCC, 759 " OD3 AR,AL,A1\n", 760 761 OPFLOAT, INAREG|INTAREG|FORCC, 762 SAREG|AWD, TFLOAT, 763 SAREG|AWD, TDOUBLE, 764 NAREG|NASL, RESC1|RESCC, 765 " cvtfd AL,A1\n OD2 AR,A1\n", 766 767 OPFLOAT, INAREG|INTAREG|FORCC, 768 SAREG|AWD, TDOUBLE, 769 SAREG|AWD, TFLOAT, 770 NAREG|NASR, RESC1|RESCC, 771 " cvtfd AR,A1\n OD3 A1,AL,A1\n", 772 773 #ifdef FORT 774 OPFLOAT, INAREG|INTAREG|FORCC, 775 STAREG, TFLOAT, 776 SAREG|AWD, TFLOAT, 777 0, RLEFT|RESCC, 778 " OF2 TAR,AL\n", 779 780 OPFLOAT, INAREG|INTAREG|FORCC, 781 SAREG|AWD, TFLOAT, 782 SAREG|AWD, TFLOAT, 783 NAREG|NASL|NASR, RESC1|RESCC, 784 " OF3 AR,AL,TA1\n", 785 786 #else 787 OPFLOAT, INAREG|INTAREG|FORCC, 788 SAREG|AWD, TFLOAT, 789 SAREG|AWD, TFLOAT, 790 NAREG|NASL|NASR, RESC1|RESCC, 791 " OF3 AR,AL,A1\n cvtfd A1,A1\n", 792 #endif 793 794 /* Default actions for hard trees ... */ 795 796 # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" 797 798 UNARY MUL, DF( UNARY MUL ), 799 800 INCR, DF(INCR), 801 802 DECR, DF(INCR), 803 804 ASSIGN, DF(ASSIGN), 805 806 STASG, DF(STASG), 807 808 FLD, DF(FLD), 809 810 OPLEAF, DF(NAME), 811 812 OPLOG, FORCC, 813 SANY, TANY, 814 SANY, TANY, 815 REWRITE, BITYPE, 816 "", 817 818 OPLOG, DF(NOT), 819 820 COMOP, DF(COMOP), 821 822 INIT, DF(INIT), 823 824 OPUNARY, DF(UNARY MINUS), 825 826 827 ASG OPANY, DF(ASG PLUS), 828 829 OPANY, DF(BITYPE), 830 831 FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }; 832