--- old/src/share/vm/opto/lcm.cpp 2009-12-02 17:37:55.984206280 +0100 +++ new/src/share/vm/opto/lcm.cpp 2009-12-02 17:37:55.874116084 +0100 @@ -542,6 +542,8 @@ // pointers as far as the kill mask goes. bool exclude_soe = op == Op_CallRuntime; + proj->_rout.OR(Matcher::method_handle_invoke_SP_save_mask()); + // Fill in the kill mask for the call for( OptoReg::Name r = OptoReg::Name(0); r < _last_Mach_Reg; r=OptoReg::add(r,1) ) { if( !regs.Member(r) ) { // Not already defined by the call