Skip to content

Commit

Permalink
8295009: RISC-V: Interpreter intrinsify Thread.currentThread()
Browse files Browse the repository at this point in the history
Reviewed-by: fyang, shade
  • Loading branch information
Yadong Wang authored and RealFYang committed Oct 16, 2022
1 parent e7d0ab2 commit d3781ac
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 4 deletions.
11 changes: 11 additions & 0 deletions src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp
Expand Up @@ -1442,6 +1442,17 @@ address TemplateInterpreterGenerator::generate_normal_entry(bool synchronized) {
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

Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/share/interpreter/abstractInterpreter.cpp
Expand Up @@ -133,7 +133,7 @@ AbstractInterpreter::MethodKind AbstractInterpreter::method_kind(const methodHan
case vmIntrinsics::_floatToRawIntBits: return java_lang_Float_floatToRawIntBits;
case vmIntrinsics::_longBitsToDouble: return java_lang_Double_longBitsToDouble;
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;
#endif
#endif // ZERO
Expand Down
Expand Up @@ -201,7 +201,7 @@ void TemplateInterpreterGenerator::generate_all() {
method_entry(java_lang_math_fmaF )
method_entry(java_lang_math_fmaD )
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)
#endif
AbstractInterpreter::initialize_method_handle_entries();
Expand Down Expand Up @@ -433,7 +433,7 @@ address TemplateInterpreterGenerator::generate_method_entry(
: // fall thru
case Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer
: 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
: entry_point = generate_currentThread(); break;
#endif
Expand Down
Expand Up @@ -94,7 +94,7 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator {
address generate_CRC32_update_entry();
address generate_CRC32_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();
#endif
#ifdef IA32
Expand Down

1 comment on commit d3781ac

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.