< prev index next >

src/hotspot/share/interpreter/templateInterpreterGenerator.cpp

Print this page
rev 50307 : [mq]: cont

*** 100,109 **** --- 100,126 ---- generate_return_entry_for(ftos, i, index_size), generate_return_entry_for(dtos, i, index_size), generate_return_entry_for(vtos, i, index_size) ); } + Interpreter::_return_entryX[0] = EntryPoint(); + for (int i = 1; i < Interpreter::number_of_return_entries; i++) { + address return_itos = generate_return_entry_for(itos, i, index_size, true); + Interpreter::_return_entryX[i] = + EntryPoint( + return_itos, + return_itos, + return_itos, + return_itos, + generate_return_entry_for(atos, i, index_size, true), + return_itos, + generate_return_entry_for(ltos, i, index_size, true), + generate_return_entry_for(ftos, i, index_size, true), + generate_return_entry_for(dtos, i, index_size, true), + generate_return_entry_for(vtos, i, index_size, true) + ); + } } { CodeletMark cm(_masm, "invoke return entry points"); // These states are in order specified in TosState, except btos/ztos/ctos/stos are // really the same as itos since there is no top of stack optimization for these types
*** 114,123 **** --- 131,141 ---- for (int i = 0; i < Interpreter::number_of_return_addrs; i++) { TosState state = states[i]; assert(state != ilgl, "states array is wrong above"); Interpreter::_invoke_return_entry[i] = generate_return_entry_for(state, invoke_length, sizeof(u2)); + Interpreter::_invoke_return_entryX[i] = generate_return_entry_for(state, invoke_length, sizeof(u2), true); Interpreter::_invokeinterface_return_entry[i] = generate_return_entry_for(state, invokeinterface_length, sizeof(u2)); Interpreter::_invokedynamic_return_entry[i] = generate_return_entry_for(state, invokedynamic_length, sizeof(u4)); } }
*** 225,234 **** --- 243,259 ---- method_entry(java_lang_Float_intBitsToFloat); method_entry(java_lang_Float_floatToRawIntBits); method_entry(java_lang_Double_longBitsToDouble); method_entry(java_lang_Double_doubleToRawLongBits); + method_entry(java_lang_continuation_getSP) + method_entry(java_lang_continuation_getFP) + method_entry(java_lang_continuation_getPC) + method_entry(java_lang_continuation_doContinue) + method_entry(java_lang_continuation_doYield) + method_entry(java_lang_continuation_runLevel) + #undef method_entry // Bytecodes set_entry_points_for_all_bytes();
*** 429,438 **** --- 454,475 ---- case Interpreter::java_lang_math_exp : // fall thru case Interpreter::java_lang_math_fmaD : // fall thru case Interpreter::java_lang_math_fmaF : entry_point = generate_math_entry(kind); break; case Interpreter::java_lang_ref_reference_get : entry_point = generate_Reference_get_entry(); break; + case Interpreter::java_lang_continuation_getSP + : entry_point = generate_Continuation_getSP_entry(); break; + case Interpreter::java_lang_continuation_getFP + : entry_point = generate_Continuation_getFP_entry(); break; + case Interpreter::java_lang_continuation_getPC + : entry_point = generate_Continuation_getPC_entry(); break; + case Interpreter::java_lang_continuation_doContinue + : entry_point = generate_Continuation_doContinue_entry(); break; + case Interpreter::java_lang_continuation_doYield + : entry_point = generate_Continuation_doYield_entry(); break; + case Interpreter::java_lang_continuation_runLevel + : entry_point = generate_Continuation_runLevel_entry(); break; case Interpreter::java_util_zip_CRC32_update : native = true; entry_point = generate_CRC32_update_entry(); break; case Interpreter::java_util_zip_CRC32_updateBytes : // fall thru case Interpreter::java_util_zip_CRC32_updateByteBuffer
< prev index next >