Convert resume and retransopt to vasm
commitaf2aca7fa529d668740d1f91fe15c5f3cd89a743
authorEdwin Smith <smith@fb.com>
Fri, 17 Oct 2014 01:18:32 +0000 (16 18:18 -0700)
committerhhvm-bot <hhvm-bot@fb.com>
Mon, 20 Oct 2014 23:00:29 +0000 (20 16:00 -0700)
tree1f1ac4391f6b448fc0c115b92d255043f6af79a3
parentb7077791eaaecf7b4fd5e0104f806dd55a1e7e81
Convert resume and retransopt to vasm

Summary: resume and retransopt were simply macro operations that do a
service request by preparing a number of argumets, saving
vmsp and vmfp, then returning to enterTCHelper with a service
request opcode.

Add a RegMask argument to the ret{} instruction so we can exactly
model the lifetime of the return-value registers and service-request
argument registers.

This only ports enough of the old emitServiceReqWork functions to
support what was needed for resume and retransopt. Adding support
for ephemeral service requests will take a bit more fleshing out.

Reviewed By: @swtaarrs

Differential Revision: D1622304
14 files changed:
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/code-gen-helpers-x64.cpp
hphp/runtime/vm/jit/code-gen-helpers-x64.h
hphp/runtime/vm/jit/code-gen-x64.cpp
hphp/runtime/vm/jit/mc-generator.cpp
hphp/runtime/vm/jit/mc-generator.h
hphp/runtime/vm/jit/service-requests-x64.cpp
hphp/runtime/vm/jit/vasm-arm.cpp
hphp/runtime/vm/jit/vasm-check.cpp
hphp/runtime/vm/jit/vasm-llvm.cpp
hphp/runtime/vm/jit/vasm-print.cpp
hphp/runtime/vm/jit/vasm-x64.cpp
hphp/runtime/vm/jit/vasm-x64.h
hphp/runtime/vm/jit/vasm-xls.cpp