< prev index next >

src/share/vm/interpreter/templateInterpreterGenerator.cpp

Print this page




 222       { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
 223         Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
 224         Interpreter::update_cds_entry_table(Interpreter::kind); \
 225       }
 226 
 227       // all non-native method kinds
 228       method_entry(zerolocals)
 229       method_entry(zerolocals_synchronized)
 230       method_entry(empty)
 231       method_entry(accessor)
 232       method_entry(abstract)
 233       method_entry(java_lang_math_sin  )
 234       method_entry(java_lang_math_cos  )
 235       method_entry(java_lang_math_tan  )
 236       method_entry(java_lang_math_abs  )
 237       method_entry(java_lang_math_sqrt )
 238       method_entry(java_lang_math_log  )
 239       method_entry(java_lang_math_log10)
 240       method_entry(java_lang_math_exp  )
 241       method_entry(java_lang_math_pow  )




 242       method_entry(java_lang_ref_reference_get)
 243 
 244       AbstractInterpreter::initialize_method_handle_entries();
 245 
 246       // all native method kinds (must be one contiguous block)
 247       Interpreter::_native_entry_begin = Interpreter::code()->code_end();
 248       method_entry(native)
 249       method_entry(native_synchronized)
 250       Interpreter::_native_entry_end = Interpreter::code()->code_end();
 251 
 252       if (UseCRC32Intrinsics) {
 253         method_entry(java_util_zip_CRC32_update)
 254         method_entry(java_util_zip_CRC32_updateBytes)
 255         method_entry(java_util_zip_CRC32_updateByteBuffer)
 256       }
 257 
 258       if (UseCRC32CIntrinsics) {
 259         method_entry(java_util_zip_CRC32C_updateBytes)
 260         method_entry(java_util_zip_CRC32C_updateDirectByteBuffer)
 261       }


 428   bool synchronized = false;
 429   address entry_point = NULL;
 430 
 431   switch (kind) {
 432   case Interpreter::zerolocals             :                                          break;
 433   case Interpreter::zerolocals_synchronized:                synchronized = true;      break;
 434   case Interpreter::native                 : native = true;                           break;
 435   case Interpreter::native_synchronized    : native = true; synchronized = true;      break;
 436   case Interpreter::empty                  : break;
 437   case Interpreter::accessor               : break;
 438   case Interpreter::abstract               : entry_point = generate_abstract_entry(); break;
 439 
 440   case Interpreter::java_lang_math_sin     : // fall thru
 441   case Interpreter::java_lang_math_cos     : // fall thru
 442   case Interpreter::java_lang_math_tan     : // fall thru
 443   case Interpreter::java_lang_math_abs     : // fall thru
 444   case Interpreter::java_lang_math_log     : // fall thru
 445   case Interpreter::java_lang_math_log10   : // fall thru
 446   case Interpreter::java_lang_math_sqrt    : // fall thru
 447   case Interpreter::java_lang_math_pow     : // fall thru
 448   case Interpreter::java_lang_math_exp     : entry_point = generate_math_entry(kind);      break;


 449   case Interpreter::java_lang_ref_reference_get
 450                                            : entry_point = generate_Reference_get_entry(); break;
 451   case Interpreter::java_util_zip_CRC32_update
 452                                            : native = true; entry_point = generate_CRC32_update_entry();  break;
 453   case Interpreter::java_util_zip_CRC32_updateBytes
 454                                            : // fall thru
 455   case Interpreter::java_util_zip_CRC32_updateByteBuffer
 456                                            : native = true; entry_point = generate_CRC32_updateBytes_entry(kind); break;
 457   case Interpreter::java_util_zip_CRC32C_updateBytes
 458                                            : // fall thru
 459   case Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer
 460                                            : entry_point = generate_CRC32C_updateBytes_entry(kind); break;
 461 #ifdef IA32
 462   // On x86_32 platforms, a special entry is generated for the following four methods.
 463   // On other platforms the normal entry is used to enter these methods.
 464   case Interpreter::java_lang_Float_intBitsToFloat
 465                                            : native = true; entry_point = generate_Float_intBitsToFloat_entry(); break;
 466   case Interpreter::java_lang_Float_floatToRawIntBits
 467                                            : native = true; entry_point = generate_Float_floatToRawIntBits_entry(); break;
 468   case Interpreter::java_lang_Double_longBitsToDouble




 222       { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
 223         Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
 224         Interpreter::update_cds_entry_table(Interpreter::kind); \
 225       }
 226 
 227       // all non-native method kinds
 228       method_entry(zerolocals)
 229       method_entry(zerolocals_synchronized)
 230       method_entry(empty)
 231       method_entry(accessor)
 232       method_entry(abstract)
 233       method_entry(java_lang_math_sin  )
 234       method_entry(java_lang_math_cos  )
 235       method_entry(java_lang_math_tan  )
 236       method_entry(java_lang_math_abs  )
 237       method_entry(java_lang_math_sqrt )
 238       method_entry(java_lang_math_log  )
 239       method_entry(java_lang_math_log10)
 240       method_entry(java_lang_math_exp  )
 241       method_entry(java_lang_math_pow  )
 242       if (UseFMA) {
 243         method_entry(java_lang_math_fmaF  )
 244         method_entry(java_lang_math_fmaD  )
 245       }
 246       method_entry(java_lang_ref_reference_get)
 247 
 248       AbstractInterpreter::initialize_method_handle_entries();
 249 
 250       // all native method kinds (must be one contiguous block)
 251       Interpreter::_native_entry_begin = Interpreter::code()->code_end();
 252       method_entry(native)
 253       method_entry(native_synchronized)
 254       Interpreter::_native_entry_end = Interpreter::code()->code_end();
 255 
 256       if (UseCRC32Intrinsics) {
 257         method_entry(java_util_zip_CRC32_update)
 258         method_entry(java_util_zip_CRC32_updateBytes)
 259         method_entry(java_util_zip_CRC32_updateByteBuffer)
 260       }
 261 
 262       if (UseCRC32CIntrinsics) {
 263         method_entry(java_util_zip_CRC32C_updateBytes)
 264         method_entry(java_util_zip_CRC32C_updateDirectByteBuffer)
 265       }


 432   bool synchronized = false;
 433   address entry_point = NULL;
 434 
 435   switch (kind) {
 436   case Interpreter::zerolocals             :                                          break;
 437   case Interpreter::zerolocals_synchronized:                synchronized = true;      break;
 438   case Interpreter::native                 : native = true;                           break;
 439   case Interpreter::native_synchronized    : native = true; synchronized = true;      break;
 440   case Interpreter::empty                  : break;
 441   case Interpreter::accessor               : break;
 442   case Interpreter::abstract               : entry_point = generate_abstract_entry(); break;
 443 
 444   case Interpreter::java_lang_math_sin     : // fall thru
 445   case Interpreter::java_lang_math_cos     : // fall thru
 446   case Interpreter::java_lang_math_tan     : // fall thru
 447   case Interpreter::java_lang_math_abs     : // fall thru
 448   case Interpreter::java_lang_math_log     : // fall thru
 449   case Interpreter::java_lang_math_log10   : // fall thru
 450   case Interpreter::java_lang_math_sqrt    : // fall thru
 451   case Interpreter::java_lang_math_pow     : // fall thru
 452   case Interpreter::java_lang_math_exp     : // fall thru
 453   case Interpreter::java_lang_math_fmaD    : // fall thru
 454   case Interpreter::java_lang_math_fmaF     : entry_point = generate_math_entry(kind);      break;
 455   case Interpreter::java_lang_ref_reference_get
 456                                            : entry_point = generate_Reference_get_entry(); break;
 457   case Interpreter::java_util_zip_CRC32_update
 458                                            : native = true; entry_point = generate_CRC32_update_entry();  break;
 459   case Interpreter::java_util_zip_CRC32_updateBytes
 460                                            : // fall thru
 461   case Interpreter::java_util_zip_CRC32_updateByteBuffer
 462                                            : native = true; entry_point = generate_CRC32_updateBytes_entry(kind); break;
 463   case Interpreter::java_util_zip_CRC32C_updateBytes
 464                                            : // fall thru
 465   case Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer
 466                                            : entry_point = generate_CRC32C_updateBytes_entry(kind); break;
 467 #ifdef IA32
 468   // On x86_32 platforms, a special entry is generated for the following four methods.
 469   // On other platforms the normal entry is used to enter these methods.
 470   case Interpreter::java_lang_Float_intBitsToFloat
 471                                            : native = true; entry_point = generate_Float_intBitsToFloat_entry(); break;
 472   case Interpreter::java_lang_Float_floatToRawIntBits
 473                                            : native = true; entry_point = generate_Float_floatToRawIntBits_entry(); break;
 474   case Interpreter::java_lang_Double_longBitsToDouble


< prev index next >