Mercurial > hg > graal-compiler
comparison src/share/vm/ci/ciMethod.hpp @ 2044:06f017f7daa7
Merge.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Fri, 07 Jan 2011 18:18:08 +0100 |
parents | 5ddfcf4b079e |
children | 8012aa3ccede |
comparison
equal
deleted
inserted
replaced
1942:00bc9eaf0e24 | 2044:06f017f7daa7 |
---|---|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 * | 22 * |
23 */ | 23 */ |
24 | |
25 #ifndef SHARE_VM_CI_CIMETHOD_HPP | |
26 #define SHARE_VM_CI_CIMETHOD_HPP | |
27 | |
28 #include "ci/ciFlags.hpp" | |
29 #include "ci/ciInstanceKlass.hpp" | |
30 #include "ci/ciObject.hpp" | |
31 #include "ci/ciSignature.hpp" | |
32 #include "compiler/methodLiveness.hpp" | |
33 #include "prims/methodHandles.hpp" | |
34 #include "utilities/bitMap.hpp" | |
24 | 35 |
25 class ciMethodBlocks; | 36 class ciMethodBlocks; |
26 class MethodLiveness; | 37 class MethodLiveness; |
27 class BitMap; | 38 class BitMap; |
28 class Arena; | 39 class Arena; |
93 | 104 |
94 void load_code(); | 105 void load_code(); |
95 | 106 |
96 void check_is_loaded() const { assert(is_loaded(), "not loaded"); } | 107 void check_is_loaded() const { assert(is_loaded(), "not loaded"); } |
97 | 108 |
98 void build_method_data(methodHandle h_m); | 109 bool ensure_method_data(methodHandle h_m); |
99 | 110 |
100 void code_at_put(int bci, Bytecodes::Code code) { | 111 void code_at_put(int bci, Bytecodes::Code code) { |
101 Bytecodes::check(code); | 112 Bytecodes::check(code); |
102 assert(0 <= bci && bci < code_size(), "valid bci"); | 113 assert(0 <= bci && bci < code_size(), "valid bci"); |
103 address bcp = _code + bci; | 114 address bcp = _code + bci; |
108 // Basic method information. | 119 // Basic method information. |
109 ciFlags flags() const { check_is_loaded(); return _flags; } | 120 ciFlags flags() const { check_is_loaded(); return _flags; } |
110 ciSymbol* name() const { return _name; } | 121 ciSymbol* name() const { return _name; } |
111 ciInstanceKlass* holder() const { return _holder; } | 122 ciInstanceKlass* holder() const { return _holder; } |
112 ciMethodData* method_data(); | 123 ciMethodData* method_data(); |
124 ciMethodData* method_data_or_null(); | |
113 | 125 |
114 // Signature information. | 126 // Signature information. |
115 ciSignature* signature() const { return _signature; } | 127 ciSignature* signature() const { return _signature; } |
116 ciType* return_type() const { return _signature->return_type(); } | 128 ciType* return_type() const { return _signature->return_type(); } |
117 int arg_size_no_receiver() const { return _signature->size(); } | 129 int arg_size_no_receiver() const { return _signature->size(); } |
217 bool is_not_reached(int bci); | 229 bool is_not_reached(int bci); |
218 bool was_executed_more_than(int times); | 230 bool was_executed_more_than(int times); |
219 bool has_unloaded_classes_in_signature(); | 231 bool has_unloaded_classes_in_signature(); |
220 bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const; | 232 bool is_klass_loaded(int refinfo_index, bool must_be_resolved) const; |
221 bool check_call(int refinfo_index, bool is_static) const; | 233 bool check_call(int refinfo_index, bool is_static) const; |
222 void build_method_data(); // make sure it exists in the VM also | 234 bool ensure_method_data(); // make sure it exists in the VM also |
223 int scale_count(int count, float prof_factor = 1.); // make MDO count commensurate with IIC | 235 int scale_count(int count, float prof_factor = 1.); // make MDO count commensurate with IIC |
224 | 236 |
225 // JSR 292 support | 237 // JSR 292 support |
226 bool is_method_handle_invoke() const; | 238 bool is_method_handle_invoke() const; |
227 bool is_method_handle_adapter() const; | 239 bool is_method_handle_adapter() const; |
267 klassOop receiver_limit_oop = NULL; | 279 klassOop receiver_limit_oop = NULL; |
268 int flags = 0; | 280 int flags = 0; |
269 return MethodHandles::decode_method(get_oop(), receiver_limit_oop, flags); | 281 return MethodHandles::decode_method(get_oop(), receiver_limit_oop, flags); |
270 } | 282 } |
271 }; | 283 }; |
284 | |
285 #endif // SHARE_VM_CI_CIMETHOD_HPP |