< 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
*** 2626,2648 ****
push_pair(b);
break;
case Bytecodes::_i2b:
// Sign extend
a = pop();
! a = _gvn.transform( new LShiftINode(a,_gvn.intcon(24)) );
! a = _gvn.transform( new RShiftINode(a,_gvn.intcon(24)) );
! push( a );
break;
case Bytecodes::_i2s:
a = pop();
! a = _gvn.transform( new LShiftINode(a,_gvn.intcon(16)) );
! a = _gvn.transform( new RShiftINode(a,_gvn.intcon(16)) );
! push( a );
break;
case Bytecodes::_i2c:
a = pop();
! push( _gvn.transform( new AndINode(a,_gvn.intcon(0xFFFF)) ) );
break;
case Bytecodes::_i2f:
a = pop();
b = _gvn.transform( new ConvI2FNode(a) ) ;
--- 2626,2647 ----
push_pair(b);
break;
case Bytecodes::_i2b:
// Sign extend
a = pop();
! a = Compile::narrow_value(T_BYTE, a, NULL, &_gvn, true);
! push(a);
break;
case Bytecodes::_i2s:
a = pop();
! a = Compile::narrow_value(T_SHORT, a, NULL, &_gvn, true);
! push(a);
break;
case Bytecodes::_i2c:
a = pop();
! a = Compile::narrow_value(T_CHAR, a, NULL, &_gvn, true);
! push(a);
break;
case Bytecodes::_i2f:
a = pop();
b = _gvn.transform( new ConvI2FNode(a) ) ;
< prev index next >