3 ms·
Re: “it seems it only support x86 and x86_64” Probably because it uses DynASM and I believe only those platforms are supported. https://luajit.org/dynasm.html
by alberth 6y ago
Re: “it seems it only support x86 and x86_64”
Probably because it uses DynASM and I believe only those platforms are supported.
https://luajit.org/dynasm.html https://luajit.org/dynasm.html
- Rochus 6y ago> Probably because it uses DynASM I had a look at https://github.com/asmjit/asmjit/tree/master/src/asmjit https://github.com/asmjit/asmjit/tree/master/src/asmjit and didn't find any indication that DynASM is used. Anyway, DynASM and LuaJIT are available for many different architectures, not only x86 and x86_64.
- alberth 6y agoThis link has more detail https://github.com/erlang/otp/pull/2745#issuecomment-691482132 https://github.com/erlang/otp/pull/2745#issuecomment-6914821... “ LLVM is much slower at generating code when compared to asmjit. LLVM can do a lot more, but it's main purpose is not to be a JIT compiler. With asmjit we get full control over all the register allocation and can do a lot of simplifications when generating code. On the downside we don't get any of LLVMs built-in optimizations. We also considered using dynasm, but found the tooling that comes with asmjit to be better. “
- Rochus 6y agoThis quote from your reference gives the answer: We also considered using dynasm, but found the tooling that comes with asmjit to be better. EDIT: But it still gives no answer why they preferred asmjit in favour of other solutions than LLVM or DynASM (where the latter is just an assembler which helps to integrate with C code, not a platform abstraction like LLVM or others).