fixes 92_enum_bitfield.
Unified · Split
| @@ -621,8 +621,6 @@ static void gen_opil(int op, int ll) · 620 unmodified lines | ||
| 621 | 621 | d = ireg(d); |
| 622 | 622 | switch (op) { |
| 623 | 623 | case '%': |
| 624 | − case TOK_SAR: | |
| 625 | − case TOK_SHR: | |
| 626 | 624 | case TOK_PDIV: |
| 627 | 625 | default: |
| 628 | 626 | tcc_error("implement me: %s(%s)", __FUNCTION__, get_tok_str(op, NULL)); |
| @@ -633,6 +631,12 @@ static void gen_opil(int op, int ll) · 4 unmodified lines | ||
| 633 | 631 | case '-': |
| 634 | 632 | o(0x33 | (d << 7) | (a << 15) | (b << 20) | (0x20 << 25)); //sub d, a, b |
| 635 | 633 | break; |
| 634 | + case TOK_SAR: | |
| 635 | + o(0x33 | (d << 7) | (a << 15) | (b << 20) | (5 << 12) | (1 << 30)); //sra d, a, b | |
| 636 | + break; | |
| 637 | + case TOK_SHR: | |
| 638 | + o(0x33 | (d << 7) | (a << 15) | (b << 20) | (5 << 12)); //srl d, a, b | |
| 639 | + break; | |
| 636 | 640 | case TOK_SHL: |
| 637 | 641 | o(0x33 | (d << 7) | (a << 15) | (b << 20) | (1 << 12)); //sll d, a, b |
| 638 | 642 | break; |