equal
deleted
inserted
replaced
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. |