< prev index next >

src/hotspot/cpu/aarch64/abstractInterpreter_aarch64.cpp

Print this page
rev 53735 : AArch64 support for ValueTypes


  30 #include "runtime/frame.inline.hpp"
  31 #include "utilities/align.hpp"
  32 #include "utilities/debug.hpp"
  33 #include "utilities/macros.hpp"
  34 
  35 
  36 int AbstractInterpreter::BasicType_as_index(BasicType type) {
  37   int i = 0;
  38   switch (type) {
  39     case T_BOOLEAN: i = 0; break;
  40     case T_CHAR   : i = 1; break;
  41     case T_BYTE   : i = 2; break;
  42     case T_SHORT  : i = 3; break;
  43     case T_INT    : i = 4; break;
  44     case T_LONG   : i = 5; break;
  45     case T_VOID   : i = 6; break;
  46     case T_FLOAT  : i = 7; break;
  47     case T_DOUBLE : i = 8; break;
  48     case T_OBJECT : i = 9; break;
  49     case T_ARRAY  : i = 9; break;

  50     default       : ShouldNotReachHere();
  51   }
  52   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers,
  53          "index out of bounds");
  54   return i;
  55 }
  56 
  57 // How much stack a method activation needs in words.
  58 int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
  59   const int entry_size = frame::interpreter_frame_monitor_size();
  60 
  61   // total overhead size: entry_size + (saved rfp thru expr stack
  62   // bottom).  be sure to change this if you add/subtract anything
  63   // to/from the overhead area
  64   const int overhead_size =
  65     -(frame::interpreter_frame_initial_sp_offset) + entry_size;
  66 
  67   const int stub_code = frame::entry_frame_after_call_words;
  68   const int method_stack = (method->max_locals() + method->max_stack()) *
  69                            Interpreter::stackElementWords;




  30 #include "runtime/frame.inline.hpp"
  31 #include "utilities/align.hpp"
  32 #include "utilities/debug.hpp"
  33 #include "utilities/macros.hpp"
  34 
  35 
  36 int AbstractInterpreter::BasicType_as_index(BasicType type) {
  37   int i = 0;
  38   switch (type) {
  39     case T_BOOLEAN: i = 0; break;
  40     case T_CHAR   : i = 1; break;
  41     case T_BYTE   : i = 2; break;
  42     case T_SHORT  : i = 3; break;
  43     case T_INT    : i = 4; break;
  44     case T_LONG   : i = 5; break;
  45     case T_VOID   : i = 6; break;
  46     case T_FLOAT  : i = 7; break;
  47     case T_DOUBLE : i = 8; break;
  48     case T_OBJECT : i = 9; break;
  49     case T_ARRAY  : i = 9; break;
  50     case T_VALUETYPE : i = 10; break;
  51     default       : ShouldNotReachHere();
  52   }
  53   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers,
  54          "index out of bounds");
  55   return i;
  56 }
  57 
  58 // How much stack a method activation needs in words.
  59 int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
  60   const int entry_size = frame::interpreter_frame_monitor_size();
  61 
  62   // total overhead size: entry_size + (saved rfp thru expr stack
  63   // bottom).  be sure to change this if you add/subtract anything
  64   // to/from the overhead area
  65   const int overhead_size =
  66     -(frame::interpreter_frame_initial_sp_offset) + entry_size;
  67 
  68   const int stub_code = frame::entry_frame_after_call_words;
  69   const int method_stack = (method->max_locals() + method->max_stack()) *
  70                            Interpreter::stackElementWords;


< prev index next >