< prev index next >

src/hotspot/cpu/x86/abstractInterpreter_x86.cpp

Print this page




 115     method->constants()->cache();
 116   *interpreter_frame->interpreter_frame_mirror_addr() =
 117     method->method_holder()->java_mirror();
 118 }
 119 
 120 #ifndef _LP64
 121 int AbstractInterpreter::BasicType_as_index(BasicType type) {
 122   int i = 0;
 123   switch (type) {
 124     case T_BOOLEAN: i = 0; break;
 125     case T_CHAR   : i = 1; break;
 126     case T_BYTE   : i = 2; break;
 127     case T_SHORT  : i = 3; break;
 128     case T_INT    : // fall through
 129     case T_LONG   : // fall through
 130     case T_VOID   : i = 4; break;
 131     case T_FLOAT  : i = 5; break;  // have to treat float and double separately for SSE
 132     case T_DOUBLE : i = 6; break;
 133     case T_OBJECT : // fall through
 134     case T_ARRAY  : i = 7; break;

 135     default       : ShouldNotReachHere();
 136   }
 137   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers, "index out of bounds");
 138   return i;
 139 }
 140 #else
 141 int AbstractInterpreter::BasicType_as_index(BasicType type) {
 142   int i = 0;
 143   switch (type) {
 144     case T_BOOLEAN: i = 0; break;
 145     case T_CHAR   : i = 1; break;
 146     case T_BYTE   : i = 2; break;
 147     case T_SHORT  : i = 3; break;
 148     case T_INT    : i = 4; break;
 149     case T_LONG   : i = 5; break;
 150     case T_VOID   : i = 6; break;
 151     case T_FLOAT  : i = 7; break;
 152     case T_DOUBLE : i = 8; break;
 153     case T_OBJECT : i = 9; break;
 154     case T_ARRAY  : i = 9; break;

 155     default       : ShouldNotReachHere();
 156   }
 157   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers,
 158          "index out of bounds");
 159   return i;
 160 }
 161 #endif // _LP64
 162 
 163 // How much stack a method activation needs in words.
 164 int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
 165   const int entry_size = frame::interpreter_frame_monitor_size();
 166 
 167   // total overhead size: entry_size + (saved rbp thru expr stack
 168   // bottom).  be sure to change this if you add/subtract anything
 169   // to/from the overhead area
 170   const int overhead_size =
 171     -(frame::interpreter_frame_initial_sp_offset) + entry_size;
 172 
 173 #ifndef _LP64
 174   const int stub_code = 4;  // see generate_call_stub


 115     method->constants()->cache();
 116   *interpreter_frame->interpreter_frame_mirror_addr() =
 117     method->method_holder()->java_mirror();
 118 }
 119 
 120 #ifndef _LP64
 121 int AbstractInterpreter::BasicType_as_index(BasicType type) {
 122   int i = 0;
 123   switch (type) {
 124     case T_BOOLEAN: i = 0; break;
 125     case T_CHAR   : i = 1; break;
 126     case T_BYTE   : i = 2; break;
 127     case T_SHORT  : i = 3; break;
 128     case T_INT    : // fall through
 129     case T_LONG   : // fall through
 130     case T_VOID   : i = 4; break;
 131     case T_FLOAT  : i = 5; break;  // have to treat float and double separately for SSE
 132     case T_DOUBLE : i = 6; break;
 133     case T_OBJECT : // fall through
 134     case T_ARRAY  : i = 7; break;
 135     case T_VALUETYPE : i = 8; break;
 136     default       : ShouldNotReachHere();
 137   }
 138   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers, "index out of bounds");
 139   return i;
 140 }
 141 #else
 142 int AbstractInterpreter::BasicType_as_index(BasicType type) {
 143   int i = 0;
 144   switch (type) {
 145     case T_BOOLEAN: i = 0; break;
 146     case T_CHAR   : i = 1; break;
 147     case T_BYTE   : i = 2; break;
 148     case T_SHORT  : i = 3; break;
 149     case T_INT    : i = 4; break;
 150     case T_LONG   : i = 5; break;
 151     case T_VOID   : i = 6; break;
 152     case T_FLOAT  : i = 7; break;
 153     case T_DOUBLE : i = 8; break;
 154     case T_OBJECT : i = 9; break;
 155     case T_ARRAY  : i = 9; break;
 156     case T_VALUETYPE : i = 10; break;
 157     default       : ShouldNotReachHere();
 158   }
 159   assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers,
 160          "index out of bounds");
 161   return i;
 162 }
 163 #endif // _LP64
 164 
 165 // How much stack a method activation needs in words.
 166 int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
 167   const int entry_size = frame::interpreter_frame_monitor_size();
 168 
 169   // total overhead size: entry_size + (saved rbp thru expr stack
 170   // bottom).  be sure to change this if you add/subtract anything
 171   // to/from the overhead area
 172   const int overhead_size =
 173     -(frame::interpreter_frame_initial_sp_offset) + entry_size;
 174 
 175 #ifndef _LP64
 176   const int stub_code = 4;  // see generate_call_stub
< prev index next >