8295009: RISC-V: Interpreter intrinsify Thread.currentThread()
Reviewed-by: fyang, shade
This commit is contained in:
parent
e7d0ab227f
commit
d3781ac8a3
@ -1442,6 +1442,17 @@ address TemplateInterpreterGenerator::generate_normal_entry(bool synchronized) {
|
|||||||
return entry_point;
|
return entry_point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Method entry for java.lang.Thread.currentThread
|
||||||
|
address TemplateInterpreterGenerator::generate_currentThread() {
|
||||||
|
address entry_point = __ pc();
|
||||||
|
|
||||||
|
__ ld(x10, Address(xthread, JavaThread::vthread_offset()));
|
||||||
|
__ resolve_oop_handle(x10, t0, t1);
|
||||||
|
__ ret();
|
||||||
|
|
||||||
|
return entry_point;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Exceptions
|
// Exceptions
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ AbstractInterpreter::MethodKind AbstractInterpreter::method_kind(const methodHan
|
|||||||
case vmIntrinsics::_floatToRawIntBits: return java_lang_Float_floatToRawIntBits;
|
case vmIntrinsics::_floatToRawIntBits: return java_lang_Float_floatToRawIntBits;
|
||||||
case vmIntrinsics::_longBitsToDouble: return java_lang_Double_longBitsToDouble;
|
case vmIntrinsics::_longBitsToDouble: return java_lang_Double_longBitsToDouble;
|
||||||
case vmIntrinsics::_doubleToRawLongBits: return java_lang_Double_doubleToRawLongBits;
|
case vmIntrinsics::_doubleToRawLongBits: return java_lang_Double_doubleToRawLongBits;
|
||||||
#if defined(AMD64) || defined(AARCH64)
|
#if defined(AMD64) || defined(AARCH64) || defined(RISCV64)
|
||||||
case vmIntrinsics::_currentThread: return java_lang_Thread_currentThread;
|
case vmIntrinsics::_currentThread: return java_lang_Thread_currentThread;
|
||||||
#endif
|
#endif
|
||||||
#endif // ZERO
|
#endif // ZERO
|
||||||
|
@ -201,7 +201,7 @@ void TemplateInterpreterGenerator::generate_all() {
|
|||||||
method_entry(java_lang_math_fmaF )
|
method_entry(java_lang_math_fmaF )
|
||||||
method_entry(java_lang_math_fmaD )
|
method_entry(java_lang_math_fmaD )
|
||||||
method_entry(java_lang_ref_reference_get)
|
method_entry(java_lang_ref_reference_get)
|
||||||
#if defined(AMD64) || defined(AARCH64)
|
#if defined(AMD64) || defined(AARCH64) || defined(RISCV64)
|
||||||
method_entry(java_lang_Thread_currentThread)
|
method_entry(java_lang_Thread_currentThread)
|
||||||
#endif
|
#endif
|
||||||
AbstractInterpreter::initialize_method_handle_entries();
|
AbstractInterpreter::initialize_method_handle_entries();
|
||||||
@ -433,7 +433,7 @@ address TemplateInterpreterGenerator::generate_method_entry(
|
|||||||
: // fall thru
|
: // fall thru
|
||||||
case Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer
|
case Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer
|
||||||
: entry_point = generate_CRC32C_updateBytes_entry(kind); break;
|
: entry_point = generate_CRC32C_updateBytes_entry(kind); break;
|
||||||
#if defined(AMD64) || defined(AARCH64)
|
#if defined(AMD64) || defined(AARCH64) || defined(RISCV64)
|
||||||
case Interpreter::java_lang_Thread_currentThread
|
case Interpreter::java_lang_Thread_currentThread
|
||||||
: entry_point = generate_currentThread(); break;
|
: entry_point = generate_currentThread(); break;
|
||||||
#endif
|
#endif
|
||||||
|
@ -94,7 +94,7 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator {
|
|||||||
address generate_CRC32_update_entry();
|
address generate_CRC32_update_entry();
|
||||||
address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
|
address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
|
||||||
address generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind);
|
address generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind);
|
||||||
#if defined(AMD64) || defined(AARCH64)
|
#if defined(AMD64) || defined(AARCH64) || defined(RISCV64)
|
||||||
address generate_currentThread();
|
address generate_currentThread();
|
||||||
#endif
|
#endif
|
||||||
#ifdef IA32
|
#ifdef IA32
|
||||||
|
Loading…
x
Reference in New Issue
Block a user