comparison src/share/vm/opto/callGenerator.cpp @ 1265:b4b440360f1e

6926782: CodeBuffer size too small after 6921352 Summary: After 6921352 the CodeBuffer size was too small. Reviewed-by: kvn, never
author twisti
date Thu, 18 Feb 2010 11:35:41 +0100
parents dd57230ba8fe
children c18cbe5936b8
comparison
equal deleted inserted replaced
1264:106f41e88c85 1265:b4b440360f1e
1 /* 1 /*
2 * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 2000-2010 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
134 // And dump it back to the caller, decorated with any exceptions: 134 // And dump it back to the caller, decorated with any exceptions:
135 return kit.transfer_exceptions_into_jvms(); 135 return kit.transfer_exceptions_into_jvms();
136 } 136 }
137 // Mark the call node as virtual, sort of: 137 // Mark the call node as virtual, sort of:
138 call->set_optimized_virtual(true); 138 call->set_optimized_virtual(true);
139 if (method()->is_method_handle_invoke()) 139 if (method()->is_method_handle_invoke()) {
140 call->set_method_handle_invoke(true); 140 call->set_method_handle_invoke(true);
141 kit.C->set_has_method_handle_invokes(true);
142 }
141 } 143 }
142 kit.set_arguments_for_java_call(call); 144 kit.set_arguments_for_java_call(call);
143 kit.set_edges_for_java_call(call, false, _separate_io_proj); 145 kit.set_edges_for_java_call(call, false, _separate_io_proj);
144 Node* ret = kit.set_results_for_java_call(call, _separate_io_proj); 146 Node* ret = kit.set_results_for_java_call(call, _separate_io_proj);
145 kit.push_node(method()->return_type()->basic_type(), ret); 147 kit.push_node(method()->return_type()->basic_type(), ret);
192 CallStaticJavaNode *call = new (kit.C, tf()->domain()->cnt()) CallStaticJavaNode(tf(), resolve_stub, method(), kit.bci()); 194 CallStaticJavaNode *call = new (kit.C, tf()->domain()->cnt()) CallStaticJavaNode(tf(), resolve_stub, method(), kit.bci());
193 // invokedynamic is treated as an optimized invokevirtual. 195 // invokedynamic is treated as an optimized invokevirtual.
194 call->set_optimized_virtual(true); 196 call->set_optimized_virtual(true);
195 // Take extra care (in the presence of argument motion) not to trash the SP: 197 // Take extra care (in the presence of argument motion) not to trash the SP:
196 call->set_method_handle_invoke(true); 198 call->set_method_handle_invoke(true);
199 kit.C->set_has_method_handle_invokes(true);
197 200
198 // Pass the target MethodHandle as first argument and shift the 201 // Pass the target MethodHandle as first argument and shift the
199 // other arguments. 202 // other arguments.
200 call->init_req(0 + TypeFunc::Parms, target_mh); 203 call->init_req(0 + TypeFunc::Parms, target_mh);
201 uint nargs = call->method()->arg_size(); 204 uint nargs = call->method()->arg_size();