2611 push(c);
2612 break;
2613
2614 case Bytecodes::_lneg:
2615 a = pop_pair();
2616 b = _gvn.transform( new SubLNode(longcon(0),a));
2617 push_pair(b);
2618 break;
2619 case Bytecodes::_l2i:
2620 a = pop_pair();
2621 push( _gvn.transform( new ConvL2INode(a)));
2622 break;
2623 case Bytecodes::_i2l:
2624 a = pop();
2625 b = _gvn.transform( new ConvI2LNode(a));
2626 push_pair(b);
2627 break;
2628 case Bytecodes::_i2b:
2629 // Sign extend
2630 a = pop();
2631 a = _gvn.transform( new LShiftINode(a,_gvn.intcon(24)) );
2632 a = _gvn.transform( new RShiftINode(a,_gvn.intcon(24)) );
2633 push( a );
2634 break;
2635 case Bytecodes::_i2s:
2636 a = pop();
2637 a = _gvn.transform( new LShiftINode(a,_gvn.intcon(16)) );
2638 a = _gvn.transform( new RShiftINode(a,_gvn.intcon(16)) );
2639 push( a );
2640 break;
2641 case Bytecodes::_i2c:
2642 a = pop();
2643 push( _gvn.transform( new AndINode(a,_gvn.intcon(0xFFFF)) ) );
2644 break;
2645
2646 case Bytecodes::_i2f:
2647 a = pop();
2648 b = _gvn.transform( new ConvI2FNode(a) ) ;
2649 c = precision_rounding(b);
2650 push (b);
2651 break;
2652
2653 case Bytecodes::_i2d:
2654 a = pop();
2655 b = _gvn.transform( new ConvI2DNode(a));
2656 push_pair(b);
2657 break;
2658
2659 case Bytecodes::_iinc: // Increment local
2660 i = iter().get_index(); // Get local index
2661 set_local( i, _gvn.transform( new AddINode( _gvn.intcon(iter().get_iinc_con()), local(i) ) ) );
2662 break;
2663
|
2611 push(c);
2612 break;
2613
2614 case Bytecodes::_lneg:
2615 a = pop_pair();
2616 b = _gvn.transform( new SubLNode(longcon(0),a));
2617 push_pair(b);
2618 break;
2619 case Bytecodes::_l2i:
2620 a = pop_pair();
2621 push( _gvn.transform( new ConvL2INode(a)));
2622 break;
2623 case Bytecodes::_i2l:
2624 a = pop();
2625 b = _gvn.transform( new ConvI2LNode(a));
2626 push_pair(b);
2627 break;
2628 case Bytecodes::_i2b:
2629 // Sign extend
2630 a = pop();
2631 a = Compile::narrow_value(T_BYTE, a, NULL, &_gvn, true);
2632 push(a);
2633 break;
2634 case Bytecodes::_i2s:
2635 a = pop();
2636 a = Compile::narrow_value(T_SHORT, a, NULL, &_gvn, true);
2637 push(a);
2638 break;
2639 case Bytecodes::_i2c:
2640 a = pop();
2641 a = Compile::narrow_value(T_CHAR, a, NULL, &_gvn, true);
2642 push(a);
2643 break;
2644
2645 case Bytecodes::_i2f:
2646 a = pop();
2647 b = _gvn.transform( new ConvI2FNode(a) ) ;
2648 c = precision_rounding(b);
2649 push (b);
2650 break;
2651
2652 case Bytecodes::_i2d:
2653 a = pop();
2654 b = _gvn.transform( new ConvI2DNode(a));
2655 push_pair(b);
2656 break;
2657
2658 case Bytecodes::_iinc: // Increment local
2659 i = iter().get_index(); // Get local index
2660 set_local( i, _gvn.transform( new AddINode( _gvn.intcon(iter().get_iinc_con()), local(i) ) ) );
2661 break;
2662
|