Mercurial > hg > graal-compiler
comparison src/share/vm/opto/runtime.hpp @ 4137:04b9a2566eec
Merge with hsx23/hotspot.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 17 Dec 2011 21:40:27 +0100 |
parents | 7e0e43cf86d6 |
children | 0105f367a14c |
comparison
equal
deleted
inserted
replaced
3737:9dc19b7d89a3 | 4137:04b9a2566eec |
---|---|
112 static address generate_stub(ciEnv* ci_env, TypeFunc_generator gen, address C_function, const char *name, int is_fancy_jump, bool pass_tls, bool save_arguments, bool return_pc); | 112 static address generate_stub(ciEnv* ci_env, TypeFunc_generator gen, address C_function, const char *name, int is_fancy_jump, bool pass_tls, bool save_arguments, bool return_pc); |
113 | 113 |
114 // References to generated stubs | 114 // References to generated stubs |
115 static address _new_instance_Java; | 115 static address _new_instance_Java; |
116 static address _new_array_Java; | 116 static address _new_array_Java; |
117 static address _new_array_nozero_Java; | |
117 static address _multianewarray2_Java; | 118 static address _multianewarray2_Java; |
118 static address _multianewarray3_Java; | 119 static address _multianewarray3_Java; |
119 static address _multianewarray4_Java; | 120 static address _multianewarray4_Java; |
120 static address _multianewarray5_Java; | 121 static address _multianewarray5_Java; |
122 static address _multianewarrayN_Java; | |
121 static address _g1_wb_pre_Java; | 123 static address _g1_wb_pre_Java; |
122 static address _g1_wb_post_Java; | 124 static address _g1_wb_post_Java; |
123 static address _vtable_must_compile_Java; | 125 static address _vtable_must_compile_Java; |
124 static address _complete_monitor_locking_Java; | 126 static address _complete_monitor_locking_Java; |
125 static address _rethrow_Java; | 127 static address _rethrow_Java; |
140 // Allocate storage for a Java instance. | 142 // Allocate storage for a Java instance. |
141 static void new_instance_C(klassOopDesc* instance_klass, JavaThread *thread); | 143 static void new_instance_C(klassOopDesc* instance_klass, JavaThread *thread); |
142 | 144 |
143 // Allocate storage for a objArray or typeArray | 145 // Allocate storage for a objArray or typeArray |
144 static void new_array_C(klassOopDesc* array_klass, int len, JavaThread *thread); | 146 static void new_array_C(klassOopDesc* array_klass, int len, JavaThread *thread); |
147 static void new_array_nozero_C(klassOopDesc* array_klass, int len, JavaThread *thread); | |
145 | 148 |
146 // Post-slow-path-allocation, pre-initializing-stores step for | 149 // Post-slow-path-allocation, pre-initializing-stores step for |
147 // implementing ReduceInitialCardMarks | 150 // implementing ReduceInitialCardMarks |
148 static void new_store_pre_barrier(JavaThread* thread); | 151 static void new_store_pre_barrier(JavaThread* thread); |
149 | 152 |
151 // Note: needs to be fixed for arbitrary number of dimensions | 154 // Note: needs to be fixed for arbitrary number of dimensions |
152 static void multianewarray2_C(klassOopDesc* klass, int len1, int len2, JavaThread *thread); | 155 static void multianewarray2_C(klassOopDesc* klass, int len1, int len2, JavaThread *thread); |
153 static void multianewarray3_C(klassOopDesc* klass, int len1, int len2, int len3, JavaThread *thread); | 156 static void multianewarray3_C(klassOopDesc* klass, int len1, int len2, int len3, JavaThread *thread); |
154 static void multianewarray4_C(klassOopDesc* klass, int len1, int len2, int len3, int len4, JavaThread *thread); | 157 static void multianewarray4_C(klassOopDesc* klass, int len1, int len2, int len3, int len4, JavaThread *thread); |
155 static void multianewarray5_C(klassOopDesc* klass, int len1, int len2, int len3, int len4, int len5, JavaThread *thread); | 158 static void multianewarray5_C(klassOopDesc* klass, int len1, int len2, int len3, int len4, int len5, JavaThread *thread); |
159 static void multianewarrayN_C(klassOopDesc* klass, arrayOopDesc* dims, JavaThread *thread); | |
156 static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread); | 160 static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread); |
157 static void g1_wb_post_C(void* card_addr, JavaThread* thread); | 161 static void g1_wb_post_C(void* card_addr, JavaThread* thread); |
158 | 162 |
159 public: | 163 public: |
160 // Slow-path Locking and Unlocking | 164 // Slow-path Locking and Unlocking |
169 // Exception handling | 173 // Exception handling |
170 static address handle_exception_C (JavaThread* thread); | 174 static address handle_exception_C (JavaThread* thread); |
171 static address handle_exception_C_helper(JavaThread* thread, nmethod*& nm); | 175 static address handle_exception_C_helper(JavaThread* thread, nmethod*& nm); |
172 static address rethrow_C (oopDesc* exception, JavaThread *thread, address return_pc ); | 176 static address rethrow_C (oopDesc* exception, JavaThread *thread, address return_pc ); |
173 static void deoptimize_caller_frame (JavaThread *thread, bool doit); | 177 static void deoptimize_caller_frame (JavaThread *thread, bool doit); |
178 static bool is_deoptimized_caller_frame (JavaThread *thread); | |
174 | 179 |
175 // CodeBlob support | 180 // CodeBlob support |
176 // =================================================================== | 181 // =================================================================== |
177 | 182 |
178 static ExceptionBlob* _exception_blob; | 183 static ExceptionBlob* _exception_blob; |
204 static const char* stub_name(address entry); | 209 static const char* stub_name(address entry); |
205 | 210 |
206 // access to runtime stubs entry points for java code | 211 // access to runtime stubs entry points for java code |
207 static address new_instance_Java() { return _new_instance_Java; } | 212 static address new_instance_Java() { return _new_instance_Java; } |
208 static address new_array_Java() { return _new_array_Java; } | 213 static address new_array_Java() { return _new_array_Java; } |
214 static address new_array_nozero_Java() { return _new_array_nozero_Java; } | |
209 static address multianewarray2_Java() { return _multianewarray2_Java; } | 215 static address multianewarray2_Java() { return _multianewarray2_Java; } |
210 static address multianewarray3_Java() { return _multianewarray3_Java; } | 216 static address multianewarray3_Java() { return _multianewarray3_Java; } |
211 static address multianewarray4_Java() { return _multianewarray4_Java; } | 217 static address multianewarray4_Java() { return _multianewarray4_Java; } |
212 static address multianewarray5_Java() { return _multianewarray5_Java; } | 218 static address multianewarray5_Java() { return _multianewarray5_Java; } |
219 static address multianewarrayN_Java() { return _multianewarrayN_Java; } | |
213 static address g1_wb_pre_Java() { return _g1_wb_pre_Java; } | 220 static address g1_wb_pre_Java() { return _g1_wb_pre_Java; } |
214 static address g1_wb_post_Java() { return _g1_wb_post_Java; } | 221 static address g1_wb_post_Java() { return _g1_wb_post_Java; } |
215 static address vtable_must_compile_stub() { return _vtable_must_compile_Java; } | 222 static address vtable_must_compile_stub() { return _vtable_must_compile_Java; } |
216 static address complete_monitor_locking_Java() { return _complete_monitor_locking_Java; } | 223 static address complete_monitor_locking_Java() { return _complete_monitor_locking_Java; } |
217 | 224 |
247 static const TypeFunc* multianewarray_Type(int ndim); // multianewarray | 254 static const TypeFunc* multianewarray_Type(int ndim); // multianewarray |
248 static const TypeFunc* multianewarray2_Type(); // multianewarray | 255 static const TypeFunc* multianewarray2_Type(); // multianewarray |
249 static const TypeFunc* multianewarray3_Type(); // multianewarray | 256 static const TypeFunc* multianewarray3_Type(); // multianewarray |
250 static const TypeFunc* multianewarray4_Type(); // multianewarray | 257 static const TypeFunc* multianewarray4_Type(); // multianewarray |
251 static const TypeFunc* multianewarray5_Type(); // multianewarray | 258 static const TypeFunc* multianewarray5_Type(); // multianewarray |
259 static const TypeFunc* multianewarrayN_Type(); // multianewarray | |
252 static const TypeFunc* g1_wb_pre_Type(); | 260 static const TypeFunc* g1_wb_pre_Type(); |
253 static const TypeFunc* g1_wb_post_Type(); | 261 static const TypeFunc* g1_wb_post_Type(); |
254 static const TypeFunc* complete_monitor_enter_Type(); | 262 static const TypeFunc* complete_monitor_enter_Type(); |
255 static const TypeFunc* complete_monitor_exit_Type(); | 263 static const TypeFunc* complete_monitor_exit_Type(); |
256 static const TypeFunc* uncommon_trap_Type(); | 264 static const TypeFunc* uncommon_trap_Type(); |