diff -r 400709e275c1 -r a062c3691003 src/share/vm/opto/library_call.cpp --- a/src/share/vm/opto/library_call.cpp Fri Apr 25 12:48:34 2014 +0200 +++ b/src/share/vm/opto/library_call.cpp Mon May 05 15:10:43 2014 +0200 @@ -1725,7 +1725,7 @@ result_region->init_req(2, control()); result_val->init_req(2, value); set_control(_gvn.transform(result_region)); - return result_val; + return _gvn.transform(result_val); } else { return result; } @@ -1920,7 +1920,7 @@ // control from finish_pow_exp is now input to the region node region_node->set_req(2, control()); // the result from finish_pow_exp is now input to the phi node - phi_node->init_req(2, _gvn.transform(result)); + phi_node->init_req(2, result); set_control(_gvn.transform(region_node)); record_for_igvn(region_node); set_result(_gvn.transform(phi_node));