Mercurial > hg > truffle
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 |