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);