< prev index next >

src/hotspot/share/opto/parse2.cpp

Print this page
rev 54102 : 8261812: C2 compilation fails with assert(!had_error) failed: bad dominance
Reviewed-by: kvn, thartmann


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 


< prev index next >