Mercurial > hg > graal-compiler
comparison src/share/vm/c1/c1_Runtime1.hpp @ 2491:0654ee04b214
Merge with OpenJDK.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 22 Apr 2011 15:30:53 +0200 |
parents | d25d4ca69222 13bc79b5c9c8 |
children | 008adfd6d850 |
comparison
equal
deleted
inserted
replaced
2490:29246b1d2d3c | 2491:0654ee04b214 |
---|---|
52 stub(new_type_array) \ | 52 stub(new_type_array) \ |
53 stub(new_object_array) \ | 53 stub(new_object_array) \ |
54 stub(new_multi_array) \ | 54 stub(new_multi_array) \ |
55 stub(handle_exception_nofpu) /* optimized version that does not preserve fpu registers */ \ | 55 stub(handle_exception_nofpu) /* optimized version that does not preserve fpu registers */ \ |
56 stub(handle_exception) \ | 56 stub(handle_exception) \ |
57 stub(handle_exception_from_callee) \ | |
57 stub(throw_array_store_exception) \ | 58 stub(throw_array_store_exception) \ |
58 stub(throw_class_cast_exception) \ | 59 stub(throw_class_cast_exception) \ |
59 stub(throw_incompatible_class_change_error) \ | 60 stub(throw_incompatible_class_change_error) \ |
60 stub(slow_subtype_check) \ | 61 stub(slow_subtype_check) \ |
61 stub(monitorenter) \ | 62 stub(monitorenter) \ |
101 static int _handle_wrong_method_cnt; | 102 static int _handle_wrong_method_cnt; |
102 static int _ic_miss_cnt; | 103 static int _ic_miss_cnt; |
103 static int _generic_arraycopy_cnt; | 104 static int _generic_arraycopy_cnt; |
104 static int _primitive_arraycopy_cnt; | 105 static int _primitive_arraycopy_cnt; |
105 static int _oop_arraycopy_cnt; | 106 static int _oop_arraycopy_cnt; |
107 static int _generic_arraycopystub_cnt; | |
106 static int _arraycopy_slowcase_cnt; | 108 static int _arraycopy_slowcase_cnt; |
109 static int _arraycopy_checkcast_cnt; | |
110 static int _arraycopy_checkcast_attempt_cnt; | |
107 static int _new_type_array_slowcase_cnt; | 111 static int _new_type_array_slowcase_cnt; |
108 static int _new_object_array_slowcase_cnt; | 112 static int _new_object_array_slowcase_cnt; |
109 static int _new_instance_slowcase_cnt; | 113 static int _new_instance_slowcase_cnt; |
110 static int _new_multi_array_slowcase_cnt; | 114 static int _new_multi_array_slowcase_cnt; |
111 static int _monitorenter_slowcase_cnt; | 115 static int _monitorenter_slowcase_cnt; |
124 private: | 128 private: |
125 static CodeBlob* _blobs[number_of_ids]; | 129 static CodeBlob* _blobs[number_of_ids]; |
126 static const char* _blob_names[]; | 130 static const char* _blob_names[]; |
127 | 131 |
128 // stub generation | 132 // stub generation |
129 static void generate_blob_for(BufferBlob* blob, StubID id); | 133 static void generate_blob_for(BufferBlob* blob, StubID id); |
130 static OopMapSet* generate_code_for(StubID id, StubAssembler* masm); | 134 static OopMapSet* generate_code_for(StubID id, StubAssembler* sasm); |
131 static OopMapSet* generate_exception_throw(StubAssembler* sasm, address target, bool has_argument); | 135 static OopMapSet* generate_exception_throw(StubAssembler* sasm, address target, bool has_argument); |
132 static void generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_maps, OopMap* oop_map, bool ignore_fpu_registers = false); | 136 static OopMapSet* generate_handle_exception(StubID id, StubAssembler* sasm); |
133 static void c1x_generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_maps, OopMap* oop_map); | 137 static void generate_unwind_exception(StubAssembler *sasm); |
134 static void generate_unwind_exception(StubAssembler *sasm); | 138 static void c1x_generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_maps, OopMap* oop_map); |
135 static OopMapSet* generate_patching(StubAssembler* sasm, address target); | 139 static OopMapSet* generate_patching(StubAssembler* sasm, address target); |
136 | 140 |
137 static OopMapSet* generate_stub_call(StubAssembler* sasm, Register result, address entry, | 141 static OopMapSet* generate_stub_call(StubAssembler* sasm, Register result, address entry, |
138 Register arg1 = noreg, Register arg2 = noreg, Register arg3 = noreg); | 142 Register arg1 = noreg, Register arg2 = noreg, Register arg3 = noreg); |
139 | 143 |
182 | 186 |
183 // method tracing | 187 // method tracing |
184 static void trace_block_entry(jint block_id); | 188 static void trace_block_entry(jint block_id); |
185 | 189 |
186 #ifndef PRODUCT | 190 #ifndef PRODUCT |
187 static address throw_count_address() { return (address)&_throw_count; } | 191 static address throw_count_address() { return (address)&_throw_count; } |
192 static address arraycopy_count_address(BasicType type); | |
188 #endif | 193 #endif |
189 | 194 |
190 // directly accessible leaf routine | 195 // directly accessible leaf routine |
191 static int arraycopy(oopDesc* src, int src_pos, oopDesc* dst, int dst_pos, int length); | 196 static int arraycopy(oopDesc* src, int src_pos, oopDesc* dst, int dst_pos, int length); |
192 static void primitive_arraycopy(HeapWord* src, HeapWord* dst, int length); | 197 static void primitive_arraycopy(HeapWord* src, HeapWord* dst, int length); |