Convert bindcall to vasm
Summary: Do bindcall using vasm, by converting emitBindCall to emit the
mainline vasm code to set up and call, and also generate the
REQ_BIND_CALL service request stub at codegen time. The stub
generation is done using a self-contained vasm unit, which we
lower to asm during codegen time.
Removed the Vout& vfrozen param from CodeGenerator, since it
was dead, but also pass in CodeBlock& frozen, since we need it
to generate the ephemeral service request stub. This would cause
an assert if vmain were actually pointing to frozen (marked Unused),
however we never do that.
Also, refactor x64::emitServiceReqImpl() to take a CodeBlock.
The tricky pointer manipulation is all for generating ephemeral
service request stubs, and it's simpler to just pass in a mutable
CodeBlock, which has meaningful base, frontier, and capacity members.
Reviewed By: @swtaarrs
Differential Revision:
D1625531