equal
deleted
inserted
replaced
235 |
235 |
236 return entry; |
236 return entry; |
237 } |
237 } |
238 |
238 |
239 |
239 |
240 address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step) { |
240 address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step, address continuation) { |
241 address entry = __ pc(); |
241 address entry = __ pc(); |
242 |
242 |
243 #ifndef _LP64 |
243 #ifndef _LP64 |
244 if (state == ftos) { |
244 if (state == ftos) { |
245 __ MacroAssembler::verify_FPU(UseSSE >= 1 ? 0 : 1, "generate_deopt_entry_for in interpreter"); |
245 __ MacroAssembler::verify_FPU(UseSSE >= 1 ? 0 : 1, "generate_deopt_entry_for in interpreter"); |
289 CAST_FROM_FN_PTR(address, |
289 CAST_FROM_FN_PTR(address, |
290 InterpreterRuntime::throw_pending_exception)); |
290 InterpreterRuntime::throw_pending_exception)); |
291 __ should_not_reach_here(); |
291 __ should_not_reach_here(); |
292 __ bind(L); |
292 __ bind(L); |
293 } |
293 } |
294 __ dispatch_next(state, step); |
294 if (continuation == NULL) { |
|
295 __ dispatch_next(state, step); |
|
296 } else { |
|
297 __ jump_to_entry(continuation); |
|
298 } |
295 return entry; |
299 return entry; |
296 } |
300 } |
297 |
301 |
298 address TemplateInterpreterGenerator::generate_result_handler_for( |
302 address TemplateInterpreterGenerator::generate_result_handler_for( |
299 BasicType type) { |
303 BasicType type) { |