4 ms·
This seems like an awesome way of writing faster interpreters – i.e. not in assembly, but in C++ snippets you stitch together with a tool. I did peek at the de
by chubot 4y ago
This seems like an awesome way of writing faster interpreters – i.e. not in assembly, but in C++ snippets you stitch together with a tool.
I did peek at the deegen tool a bit, and it seems quite large? https://github.com/luajit-remake/luajit-remake/tree/master/deegen https://github.com/luajit-remake/luajit-remake/tree/master/d...
I would be interested in an overview of all the analysis it has to do, which as I understand is basically “automated Mike Pall”
FWIW I think this is the hand-written equivalent with LuaJIT’s dynasm tool: https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/vm_x64.dasc https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/vm_x64.dasc (just under 5000 lines)
Also there are several of these files with no apparent sharing, as you would get with deegen:
https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/vm_x86.dasc https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/vm_x86.dasc
https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/vm_ppc.dasc https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/vm_ppc.dasc