Hasty Briefsbeta

Erlang ARM32 JIT is born

7 hours ago
  • #JIT
  • #ARM32
  • #BEAM
  • First milestone achieved in developing the ARM32 JIT for the BEAM, executing an Erlang function through JITted ARM32 machine code.
  • The Erlang function 'hello:start/2' was compiled and executed, calling the 'erlang:halt/2' BIF with an error code of 42.
  • The project is funded by the Erlang Ecosystem Foundation and supported by its Embedded Working Group.
  • All code is available on GitHub at https://github.com/stritzinger/otp/tree/arm32-jit.
  • The BEAM JIT leverages the AsmJit library to emit machine code instructions and includes shared fragments and the 'erts_beamasm' module for process execution management.
  • The 'hello.erl' module was modified to be the first and only preloaded module, simplifying initial testing.
  • The ARM32 assembly dump reveals tagged values, such as the small integer 42, which is represented with a specific tagging scheme for quick recognition during pattern matching.