Implement "built_function" utility (runtime-generated assembly)

Similar to build_function_asm, but links without indirection.
Achieved by emitting code directly into a byte array.
This commit is contained in:
Nekotekina 2021-12-22 19:27:20 +03:00
parent 12e3c9e08b
commit dcd011048d
6 changed files with 126 additions and 7 deletions

View file

@ -160,7 +160,7 @@ DECLARE(spu_runtime::tr_all) = []
return reinterpret_cast<spu_function_t>(trptr);
}();
DECLARE(spu_runtime::g_gateway) = build_function_asm<spu_function_t>([](asmjit::X86Assembler& c, auto& args)
DECLARE(spu_runtime::g_gateway) = built_function<spu_function_t>([](asmjit::X86Assembler& c, auto& args)
{
// Gateway for SPU dispatcher, converts from native to GHC calling convention, also saves RSP value for spu_escape
using namespace asmjit;