1.1 --- a/src/share/vm/opto/callGenerator.cpp Tue Nov 08 20:42:26 2011 -0800 1.2 +++ b/src/share/vm/opto/callGenerator.cpp Wed Nov 09 00:42:33 2011 -0800 1.3 @@ -775,15 +775,15 @@ 1.4 1.5 Node* bol = NULL; 1.6 int bc = jvms->method()->java_code_at_bci(jvms->bci()); 1.7 - if (bc == Bytecodes::_invokespecial) { 1.8 - // This is the selectAlternative idiom for guardWithTest 1.9 + if (bc != Bytecodes::_invokedynamic) { 1.10 + // This is the selectAlternative idiom for guardWithTest or 1.11 + // similar idioms. 1.12 Node* receiver = kit.argument(0); 1.13 1.14 // Check if the MethodHandle is the expected one 1.15 Node* cmp = gvn.transform(new(kit.C, 3) CmpPNode(receiver, predicted_mh)); 1.16 bol = gvn.transform(new(kit.C, 2) BoolNode(cmp, BoolTest::eq) ); 1.17 } else { 1.18 - assert(bc == Bytecodes::_invokedynamic, "must be"); 1.19 // Get the constant pool cache from the caller class. 1.20 ciMethod* caller_method = jvms->method(); 1.21 ciBytecodeStream str(caller_method);