149 }
150 return arg_size;
151 }
152 }
153
154
155 // Method code and related information.
156 address code() { if (_code == NULL) load_code(); return _code; }
157 int code_size() const { check_is_loaded(); return _code_size; }
158 int max_stack() const { check_is_loaded(); return _max_stack; }
159 int max_locals() const { check_is_loaded(); return _max_locals; }
160 vmIntrinsics::ID intrinsic_id() const { check_is_loaded(); return _intrinsic_id; }
161 bool has_exception_handlers() const { check_is_loaded(); return _handler_count > 0; }
162 int exception_table_length() const { check_is_loaded(); return _handler_count; }
163 int interpreter_invocation_count() const { check_is_loaded(); return _interpreter_invocation_count; }
164 int interpreter_throwout_count() const { check_is_loaded(); return _interpreter_throwout_count; }
165
166 // Code size for inlining decisions.
167 int code_size_for_inlining();
168
169 bool force_inline() { return get_Method()->force_inline(); }
170 bool dont_inline() { return get_Method()->dont_inline(); }
171
172 int comp_level();
173 int highest_osr_comp_level();
174
175 Bytecodes::Code java_code_at_bci(int bci) {
176 address bcp = code() + bci;
177 return Bytecodes::java_code_at(NULL, bcp);
178 }
179 BCEscapeAnalyzer *get_bcea();
180 ciMethodBlocks *get_method_blocks();
181
182 bool has_linenumber_table() const; // length unknown until decompression
183 u_char* compressed_linenumber_table() const; // not preserved by gc
184
185 int line_number_from_bci(int bci) const;
186
187 // Runtime information.
188 int vtable_index();
247 bool should_exclude();
248 bool should_inline();
249 bool should_not_inline();
250 bool should_print_assembly();
251 bool break_at_execute();
252 bool has_option(const char *option);
253 bool can_be_compiled();
254 bool can_be_osr_compiled(int entry_bci);
255 void set_not_compilable(const char* reason = NULL);
256 bool has_compiled_code();
257 void log_nmethod_identity(xmlStream* log);
258 bool is_not_reached(int bci);
259 bool was_executed_more_than(int times);
260 bool has_unloaded_classes_in_signature();
261 bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const;
262 bool check_call(int refinfo_index, bool is_static) const;
263 bool ensure_method_data(); // make sure it exists in the VM also
264 int instructions_size();
265 int scale_count(int count, float prof_factor = 1.); // make MDO count commensurate with IIC
266
267 // JSR 292 support
268 bool is_method_handle_intrinsic() const;
269 bool is_compiled_lambda_form() const;
270 bool has_member_arg() const;
271
272 // What kind of ciObject is this?
273 bool is_method() const { return true; }
274
275 // Java access flags
276 bool is_public () const { return flags().is_public(); }
277 bool is_private () const { return flags().is_private(); }
278 bool is_protected () const { return flags().is_protected(); }
279 bool is_static () const { return flags().is_static(); }
280 bool is_final () const { return flags().is_final(); }
281 bool is_synchronized() const { return flags().is_synchronized(); }
282 bool is_native () const { return flags().is_native(); }
283 bool is_interface () const { return flags().is_interface(); }
284 bool is_abstract () const { return flags().is_abstract(); }
285 bool is_strict () const { return flags().is_strict(); }
286
|
149 }
150 return arg_size;
151 }
152 }
153
154
155 // Method code and related information.
156 address code() { if (_code == NULL) load_code(); return _code; }
157 int code_size() const { check_is_loaded(); return _code_size; }
158 int max_stack() const { check_is_loaded(); return _max_stack; }
159 int max_locals() const { check_is_loaded(); return _max_locals; }
160 vmIntrinsics::ID intrinsic_id() const { check_is_loaded(); return _intrinsic_id; }
161 bool has_exception_handlers() const { check_is_loaded(); return _handler_count > 0; }
162 int exception_table_length() const { check_is_loaded(); return _handler_count; }
163 int interpreter_invocation_count() const { check_is_loaded(); return _interpreter_invocation_count; }
164 int interpreter_throwout_count() const { check_is_loaded(); return _interpreter_throwout_count; }
165
166 // Code size for inlining decisions.
167 int code_size_for_inlining();
168
169 bool caller_sensitive() { return get_Method()->caller_sensitive(); }
170 bool force_inline() { return get_Method()->force_inline(); }
171 bool dont_inline() { return get_Method()->dont_inline(); }
172
173 int comp_level();
174 int highest_osr_comp_level();
175
176 Bytecodes::Code java_code_at_bci(int bci) {
177 address bcp = code() + bci;
178 return Bytecodes::java_code_at(NULL, bcp);
179 }
180 BCEscapeAnalyzer *get_bcea();
181 ciMethodBlocks *get_method_blocks();
182
183 bool has_linenumber_table() const; // length unknown until decompression
184 u_char* compressed_linenumber_table() const; // not preserved by gc
185
186 int line_number_from_bci(int bci) const;
187
188 // Runtime information.
189 int vtable_index();
248 bool should_exclude();
249 bool should_inline();
250 bool should_not_inline();
251 bool should_print_assembly();
252 bool break_at_execute();
253 bool has_option(const char *option);
254 bool can_be_compiled();
255 bool can_be_osr_compiled(int entry_bci);
256 void set_not_compilable(const char* reason = NULL);
257 bool has_compiled_code();
258 void log_nmethod_identity(xmlStream* log);
259 bool is_not_reached(int bci);
260 bool was_executed_more_than(int times);
261 bool has_unloaded_classes_in_signature();
262 bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const;
263 bool check_call(int refinfo_index, bool is_static) const;
264 bool ensure_method_data(); // make sure it exists in the VM also
265 int instructions_size();
266 int scale_count(int count, float prof_factor = 1.); // make MDO count commensurate with IIC
267
268 // Stack walking support
269 bool is_ignored_by_security_stack_walk() const;
270
271 // JSR 292 support
272 bool is_method_handle_intrinsic() const;
273 bool is_compiled_lambda_form() const;
274 bool has_member_arg() const;
275
276 // What kind of ciObject is this?
277 bool is_method() const { return true; }
278
279 // Java access flags
280 bool is_public () const { return flags().is_public(); }
281 bool is_private () const { return flags().is_private(); }
282 bool is_protected () const { return flags().is_protected(); }
283 bool is_static () const { return flags().is_static(); }
284 bool is_final () const { return flags().is_final(); }
285 bool is_synchronized() const { return flags().is_synchronized(); }
286 bool is_native () const { return flags().is_native(); }
287 bool is_interface () const { return flags().is_interface(); }
288 bool is_abstract () const { return flags().is_abstract(); }
289 bool is_strict () const { return flags().is_strict(); }
290
|