390 // determine code generation flags
391 bool synchronized = false;
392 address entry_point = NULL;
393
394 switch (kind) {
395 case Interpreter::zerolocals : break;
396 case Interpreter::zerolocals_synchronized: synchronized = true; break;
397 case Interpreter::native : entry_point = ((InterpreterGenerator*)this)->generate_native_entry(false); break;
398 case Interpreter::native_synchronized : entry_point = ((InterpreterGenerator*)this)->generate_native_entry(true); break;
399 case Interpreter::empty : entry_point = ((InterpreterGenerator*)this)->generate_empty_entry(); break;
400 case Interpreter::accessor : entry_point = ((InterpreterGenerator*)this)->generate_accessor_entry(); break;
401 case Interpreter::abstract : entry_point = ((InterpreterGenerator*)this)->generate_abstract_entry(); break;
402 case Interpreter::method_handle : entry_point = ((InterpreterGenerator*)this)->generate_method_handle_entry(); break;
403 case Interpreter::java_lang_math_sin : break;
404 case Interpreter::java_lang_math_cos : break;
405 case Interpreter::java_lang_math_tan : break;
406 case Interpreter::java_lang_math_sqrt : break;
407 case Interpreter::java_lang_math_abs : break;
408 case Interpreter::java_lang_math_log : break;
409 case Interpreter::java_lang_math_log10 : break;
410 default : ShouldNotReachHere(); break;
411 }
412
413 if (entry_point) return entry_point;
414
415 return ((InterpreterGenerator*)this)->generate_normal_entry(synchronized);
416 }
417
418
419 bool AbstractInterpreter::can_be_compiled(methodHandle m) {
420 // No special entry points that preclude compilation
421 return true;
422 }
423
424 // This method tells the deoptimizer how big an interpreted frame must be:
425 int AbstractInterpreter::size_activation(methodOop method,
426 int tempcount,
427 int popframe_extra_args,
428 int moncount,
429 int callee_param_count,
|
390 // determine code generation flags
391 bool synchronized = false;
392 address entry_point = NULL;
393
394 switch (kind) {
395 case Interpreter::zerolocals : break;
396 case Interpreter::zerolocals_synchronized: synchronized = true; break;
397 case Interpreter::native : entry_point = ((InterpreterGenerator*)this)->generate_native_entry(false); break;
398 case Interpreter::native_synchronized : entry_point = ((InterpreterGenerator*)this)->generate_native_entry(true); break;
399 case Interpreter::empty : entry_point = ((InterpreterGenerator*)this)->generate_empty_entry(); break;
400 case Interpreter::accessor : entry_point = ((InterpreterGenerator*)this)->generate_accessor_entry(); break;
401 case Interpreter::abstract : entry_point = ((InterpreterGenerator*)this)->generate_abstract_entry(); break;
402 case Interpreter::method_handle : entry_point = ((InterpreterGenerator*)this)->generate_method_handle_entry(); break;
403 case Interpreter::java_lang_math_sin : break;
404 case Interpreter::java_lang_math_cos : break;
405 case Interpreter::java_lang_math_tan : break;
406 case Interpreter::java_lang_math_sqrt : break;
407 case Interpreter::java_lang_math_abs : break;
408 case Interpreter::java_lang_math_log : break;
409 case Interpreter::java_lang_math_log10 : break;
410 case Interpreter::java_lang_ref_reference_get
411 : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break;
412 default : ShouldNotReachHere(); break;
413 }
414
415 if (entry_point) return entry_point;
416
417 return ((InterpreterGenerator*)this)->generate_normal_entry(synchronized);
418 }
419
420
421 bool AbstractInterpreter::can_be_compiled(methodHandle m) {
422 // No special entry points that preclude compilation
423 return true;
424 }
425
426 // This method tells the deoptimizer how big an interpreted frame must be:
427 int AbstractInterpreter::size_activation(methodOop method,
428 int tempcount,
429 int popframe_extra_args,
430 int moncount,
431 int callee_param_count,
|