comparison src/share/vm/interpreter/abstractInterpreter.hpp @ 8727:0094485b46c7

8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates Summary: deoptimization doesn't set up callee frames so that they restore caller frames correctly. Reviewed-by: kvn
author roland
date Wed, 13 Mar 2013 09:44:45 +0100
parents f34d701e952e
children ff5a32117e02 b800986664f4 d2907f74462e
comparison
equal deleted inserted replaced
8708:8196357e95b5 8727:0094485b46c7
184 int popframe_args, 184 int popframe_args,
185 int monitors, 185 int monitors,
186 int caller_actual_parameters, 186 int caller_actual_parameters,
187 int callee_params, 187 int callee_params,
188 int callee_locals, 188 int callee_locals,
189 bool is_top_frame) { 189 bool is_top_frame,
190 bool is_bottom_frame) {
190 return layout_activation(method, 191 return layout_activation(method,
191 temps, 192 temps,
192 popframe_args, 193 popframe_args,
193 monitors, 194 monitors,
194 caller_actual_parameters, 195 caller_actual_parameters,
195 callee_params, 196 callee_params,
196 callee_locals, 197 callee_locals,
197 (frame*)NULL, 198 (frame*)NULL,
198 (frame*)NULL, 199 (frame*)NULL,
199 is_top_frame); 200 is_top_frame,
201 is_bottom_frame);
200 } 202 }
201 203
202 static int layout_activation(Method* method, 204 static int layout_activation(Method* method,
203 int temps, 205 int temps,
204 int popframe_args, 206 int popframe_args,
206 int caller_actual_parameters, 208 int caller_actual_parameters,
207 int callee_params, 209 int callee_params,
208 int callee_locals, 210 int callee_locals,
209 frame* caller, 211 frame* caller,
210 frame* interpreter_frame, 212 frame* interpreter_frame,
211 bool is_top_frame); 213 bool is_top_frame,
214 bool is_bottom_frame);
212 215
213 // Runtime support 216 // Runtime support
214 static bool is_not_reached( methodHandle method, int bci); 217 static bool is_not_reached( methodHandle method, int bci);
215 // Safepoint support 218 // Safepoint support
216 static void notice_safepoints() { ShouldNotReachHere(); } // stops the thread when reaching a safepoint 219 static void notice_safepoints() { ShouldNotReachHere(); } // stops the thread when reaching a safepoint