Replace REQ_RETRANSLATE_OPT with a regular C++ call via ustub
commit02d81e183d6f066954265f8a4ccb04d10e646ea3
authorJan Oravec <jan@fb.com>
Tue, 11 May 2021 17:59:03 +0000 (11 10:59 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 11 May 2021 18:00:13 +0000 (11 11:00 -0700)
treef523d0e0972dfffc3fbd386075f865c42e8fccb0
parent64638c800905a047504454e13708f1aa48e2dd67
Replace REQ_RETRANSLATE_OPT with a regular C++ call via ustub

Summary:
REQ_RETRANSLATE_OPT uses large inline service request stubs. Instead of
emitting a plenty of code populating a generic service request structure,
set a couple of registers (usually to zero) and jmp to a unique stub that
handles the call to handleRetranslateOpt().

Results in smaller function entry translations when retranslate all is off,
plus unblocks further simplification of the service request logic.

Reviewed By: ricklavoie, oulgen

Differential Revision: D28345015

fbshipit-source-id: 133358e1f8c5bf223f3de0d78b93f6ebf99f13cb
14 files changed:
hphp/runtime/vm/jit/irlower-branch.cpp
hphp/runtime/vm/jit/service-request-handlers.cpp
hphp/runtime/vm/jit/service-request-handlers.h
hphp/runtime/vm/jit/service-requests.cpp
hphp/runtime/vm/jit/service-requests.h
hphp/runtime/vm/jit/unique-stubs.cpp
hphp/runtime/vm/jit/unique-stubs.h
hphp/runtime/vm/jit/vasm-arm.cpp
hphp/runtime/vm/jit/vasm-cost.cpp
hphp/runtime/vm/jit/vasm-info.cpp
hphp/runtime/vm/jit/vasm-instr.cpp
hphp/runtime/vm/jit/vasm-instr.h
hphp/runtime/vm/jit/vasm-internal-inl.h
hphp/runtime/vm/jit/vasm-internal.cpp