< 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 >