Clarify desired input state of resume helpers and audit their usage
commit03732453e30451d432573f79e134a63bceb5002e
authorJan Oravec <jan@fb.com>
Tue, 22 Mar 2022 21:42:21 +0000 (22 14:42 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 22 Mar 2022 21:42:21 +0000 (22 14:42 -0700)
tree57ee172596963abcb3fbcd0489239006fdc0e9e9
parent12d0c42d1bd5d94732b7fbb3989ad80b20345198
Clarify desired input state of resume helpers and audit their usage

Summary:
There was a weird distinction between resumeHelper* and interpHelper* that the
former accepted interpreter-like context, while the latter TC-like context.

In some cases this worked just by an accident because of an extra VM reg sync.
However, func entries will soon have a significant distinction and it won't be
possible to satisfy both contexts at the same time.

Create both an interp and a TC version for each of them and audit their usage.

In general, *FromInterp stubs should never be used in the same context as
*FromTC stubs or translation addresses. This is still being violated by the
handleResume() function itself and will be addressed by the next diff.

Reviewed By: ricklavoie

Differential Revision: D34886903

fbshipit-source-id: e6edaec5a88dd65a8195ff86baffddb9490b06fb
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/event-hook.cpp
hphp/runtime/vm/jit/service-request-handlers.cpp
hphp/runtime/vm/jit/service-requests.h
hphp/runtime/vm/jit/srcdb.cpp
hphp/runtime/vm/jit/unique-stubs.cpp
hphp/runtime/vm/jit/unique-stubs.h
hphp/runtime/vm/jit/unwind-itanium.cpp