hotspot/src/share/vm/opto/callGenerator.cpp
changeset 12591 064b5c1aa88a
parent 11193 d8de495d05e0
child 13107 fe2475f9b38a
equal deleted inserted replaced
12590:ab8c85fc52ea 12591:064b5c1aa88a
   135   if (kit.C->log() != NULL) {
   135   if (kit.C->log() != NULL) {
   136     kit.C->log()->elem("direct_call bci='%d'", jvms->bci());
   136     kit.C->log()->elem("direct_call bci='%d'", jvms->bci());
   137   }
   137   }
   138 
   138 
   139   CallStaticJavaNode *call = new (kit.C, tf()->domain()->cnt()) CallStaticJavaNode(tf(), target, method(), kit.bci());
   139   CallStaticJavaNode *call = new (kit.C, tf()->domain()->cnt()) CallStaticJavaNode(tf(), target, method(), kit.bci());
       
   140   _call_node = call;  // Save the call node in case we need it later
   140   if (!is_static) {
   141   if (!is_static) {
   141     // Make an explicit receiver null_check as part of this call.
   142     // Make an explicit receiver null_check as part of this call.
   142     // Since we share a map with the caller, his JVMS gets adjusted.
   143     // Since we share a map with the caller, his JVMS gets adjusted.
   143     kit.null_check_receiver(method());
   144     kit.null_check_receiver(method());
   144     if (kit.stopped()) {
   145     if (kit.stopped()) {
   153   }
   154   }
   154   kit.set_arguments_for_java_call(call);
   155   kit.set_arguments_for_java_call(call);
   155   kit.set_edges_for_java_call(call, false, _separate_io_proj);
   156   kit.set_edges_for_java_call(call, false, _separate_io_proj);
   156   Node* ret = kit.set_results_for_java_call(call, _separate_io_proj);
   157   Node* ret = kit.set_results_for_java_call(call, _separate_io_proj);
   157   kit.push_node(method()->return_type()->basic_type(), ret);
   158   kit.push_node(method()->return_type()->basic_type(), ret);
   158   _call_node = call;  // Save the call node in case we need it later
       
   159   return kit.transfer_exceptions_into_jvms();
   159   return kit.transfer_exceptions_into_jvms();
   160 }
   160 }
   161 
   161 
   162 //---------------------------DynamicCallGenerator-----------------------------
   162 //---------------------------DynamicCallGenerator-----------------------------
   163 // Internal class which handles all out-of-line invokedynamic calls.
   163 // Internal class which handles all out-of-line invokedynamic calls.