Skip to content

Commit

Permalink
Merge pull request eclipse-openj9#17244 from babsingh/fix_mh_inls_jit…
Browse files Browse the repository at this point in the history
…StackFrameFlags

Reset jitStackFrameFlags ASAP in OJDK MH INLs
  • Loading branch information
gacholio committed Apr 22, 2023
2 parents bf214ec + c22bda1 commit 78a79a0
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions runtime/vm/BytecodeInterpreter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8975,7 +8975,7 @@ class INTERPRETER_CLASS
invokeBasic(REGISTER_ARGS_LIST)
{
VM_BytecodeAction rc = GOTO_RUN_METHOD;
bool fromJIT = J9_ARE_ANY_BITS_SET(_currentThread->jitStackFrameFlags, J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
bool fromJIT = J9_ARE_ANY_BITS_SET(jitStackFrameFlags(REGISTER_ARGS, 0), J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
UDATA mhReceiverIndex = 0;

if (fromJIT) {
Expand Down Expand Up @@ -9004,7 +9004,6 @@ class INTERPRETER_CLASS
_sendMethod = (J9Method *)(UDATA)J9OBJECT_U64_LOAD(_currentThread, memberName, _vm->vmtargetOffset);

if (fromJIT) {
_currentThread->jitStackFrameFlags = 0;
VM_JITInterface::restoreJITReturnAddress(_currentThread, _sp, (void *)_literals);
rc = j2iTransition(REGISTER_ARGS);
}
Expand All @@ -9016,7 +9015,7 @@ class INTERPRETER_CLASS
linkToStaticSpecial(REGISTER_ARGS_LIST)
{
VM_BytecodeAction rc = GOTO_RUN_METHOD;
bool fromJIT = J9_ARE_ANY_BITS_SET(_currentThread->jitStackFrameFlags, J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
bool fromJIT = J9_ARE_ANY_BITS_SET(jitStackFrameFlags(REGISTER_ARGS, 0), J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
J9ROMMethod *romMethod = NULL;
UDATA methodArgCount = 0;

Expand Down Expand Up @@ -9073,7 +9072,6 @@ class INTERPRETER_CLASS
memmove(_sp, _sp + stackOffset, methodArgCount * sizeof(UDATA));
_sp[methodArgCount] = (UDATA)memberNameObject;

_currentThread->jitStackFrameFlags = 0;
VM_JITInterface::restoreJITReturnAddress(_currentThread, _sp, (void *)_literals);
rc = j2iTransition(REGISTER_ARGS);
}
Expand All @@ -9093,7 +9091,7 @@ class INTERPRETER_CLASS
linkToVirtual(REGISTER_ARGS_LIST)
{
VM_BytecodeAction rc = GOTO_RUN_METHOD;
bool fromJIT = J9_ARE_ANY_BITS_SET(_currentThread->jitStackFrameFlags, J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
bool fromJIT = J9_ARE_ANY_BITS_SET(jitStackFrameFlags(REGISTER_ARGS, 0), J9_SSF_JIT_NATIVE_TRANSITION_FRAME);

/* Pop memberNameObject from the stack. */
j9object_t memberNameObject = *(j9object_t *)_sp++;
Expand Down Expand Up @@ -9192,7 +9190,6 @@ class INTERPRETER_CLASS
memmove(_sp, _sp + 1, methodArgCount * sizeof(UDATA));
_sp[methodArgCount] = (UDATA)memberNameObject;

_currentThread->jitStackFrameFlags = 0;
VM_JITInterface::restoreJITReturnAddress(_currentThread, _sp, (void *)_literals);
rc = j2iTransition(REGISTER_ARGS);
}
Expand All @@ -9204,7 +9201,7 @@ class INTERPRETER_CLASS
linkToInterface(REGISTER_ARGS_LIST)
{
VM_BytecodeAction rc = GOTO_RUN_METHOD;
bool fromJIT = J9_ARE_ANY_BITS_SET(_currentThread->jitStackFrameFlags, J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
bool fromJIT = J9_ARE_ANY_BITS_SET(jitStackFrameFlags(REGISTER_ARGS, 0), J9_SSF_JIT_NATIVE_TRANSITION_FRAME);
J9JNIMethodID *methodID = NULL;
J9ROMMethod *romMethod = NULL;
UDATA methodArgCount = 0;
Expand Down Expand Up @@ -9303,7 +9300,6 @@ class INTERPRETER_CLASS
memmove(_sp, _sp + 1, methodArgCount * sizeof(UDATA));
_sp[methodArgCount] = (UDATA)memberNameObject;

_currentThread->jitStackFrameFlags = 0;
VM_JITInterface::restoreJITReturnAddress(_currentThread, _sp, (void *)_literals);
rc = j2iTransition(REGISTER_ARGS);
}
Expand Down

0 comments on commit 78a79a0

Please sign in to comment.