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