< prev index next >

src/cpu/aarch64/vm/abstractInterpreter_aarch64.cpp

Print this page
rev 12379 : 8162338: AArch64: Intrinsify fused mac operations
Reviewed-by:


  48     case T_ARRAY  : i = 9; break;
  49     default       : ShouldNotReachHere();
  50   }
  51   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers,
  52          "index out of bounds");
  53   return i;
  54 }
  55 
  56 // These should never be compiled since the interpreter will prefer
  57 // the compiled version to the intrinsic version.
  58 bool AbstractInterpreter::can_be_compiled(methodHandle m) {
  59   switch (method_kind(m)) {
  60     case Interpreter::java_lang_math_sin     : // fall thru
  61     case Interpreter::java_lang_math_cos     : // fall thru
  62     case Interpreter::java_lang_math_tan     : // fall thru
  63     case Interpreter::java_lang_math_abs     : // fall thru
  64     case Interpreter::java_lang_math_log     : // fall thru
  65     case Interpreter::java_lang_math_log10   : // fall thru
  66     case Interpreter::java_lang_math_sqrt    : // fall thru
  67     case Interpreter::java_lang_math_pow     : // fall thru
  68     case Interpreter::java_lang_math_exp     :


  69       return false;
  70     default:
  71       return true;
  72   }
  73 }
  74 
  75 // How much stack a method activation needs in words.
  76 int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
  77   const int entry_size = frame::interpreter_frame_monitor_size();
  78 
  79   // total overhead size: entry_size + (saved rfp thru expr stack
  80   // bottom).  be sure to change this if you add/subtract anything
  81   // to/from the overhead area
  82   const int overhead_size =
  83     -(frame::interpreter_frame_initial_sp_offset) + entry_size;
  84 
  85   const int stub_code = frame::entry_frame_after_call_words;
  86   const int method_stack = (method->max_locals() + method->max_stack()) *
  87                            Interpreter::stackElementWords;
  88   return (overhead_size + method_stack + stub_code);




  48     case T_ARRAY  : i = 9; break;
  49     default       : ShouldNotReachHere();
  50   }
  51   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers,
  52          "index out of bounds");
  53   return i;
  54 }
  55 
  56 // These should never be compiled since the interpreter will prefer
  57 // the compiled version to the intrinsic version.
  58 bool AbstractInterpreter::can_be_compiled(methodHandle m) {
  59   switch (method_kind(m)) {
  60     case Interpreter::java_lang_math_sin     : // fall thru
  61     case Interpreter::java_lang_math_cos     : // fall thru
  62     case Interpreter::java_lang_math_tan     : // fall thru
  63     case Interpreter::java_lang_math_abs     : // fall thru
  64     case Interpreter::java_lang_math_log     : // fall thru
  65     case Interpreter::java_lang_math_log10   : // fall thru
  66     case Interpreter::java_lang_math_sqrt    : // fall thru
  67     case Interpreter::java_lang_math_pow     : // fall thru
  68     case Interpreter::java_lang_math_exp     : // fall thru
  69     case Interpreter::java_lang_math_fmaD    : // fall thru
  70     case Interpreter::java_lang_math_fmaF    :
  71       return false;
  72     default:
  73       return true;
  74   }
  75 }
  76 
  77 // How much stack a method activation needs in words.
  78 int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
  79   const int entry_size = frame::interpreter_frame_monitor_size();
  80 
  81   // total overhead size: entry_size + (saved rfp thru expr stack
  82   // bottom).  be sure to change this if you add/subtract anything
  83   // to/from the overhead area
  84   const int overhead_size =
  85     -(frame::interpreter_frame_initial_sp_offset) + entry_size;
  86 
  87   const int stub_code = frame::entry_frame_after_call_words;
  88   const int method_stack = (method->max_locals() + method->max_stack()) *
  89                            Interpreter::stackElementWords;
  90   return (overhead_size + method_stack + stub_code);


< prev index next >