Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
578a16e
AArch64: initial commit
pguyot Jul 20, 2025
da6876c
AArch64: get rid of patch_* helpers, fix warnings
pguyot Jul 21, 2025
dd974b3
AArch64: call_only_or_schedule_next_and_label_relocation_test
pguyot Jul 21, 2025
672084d
AArch64: rename and_/3 and fix bitmask with a new test
pguyot Jul 21, 2025
c8565b4
AArch64: implement get_list_test/0
pguyot Jul 21, 2025
5db500b
AArch64: implement is_integer_test/0
pguyot Jul 21, 2025
7ac2d42
AArch64: implement is_boolean_test/0
pguyot Jul 21, 2025
f77ca83
AArch64: change order to match assembly and use unimplemented for uni…
pguyot Jul 21, 2025
58b4476
AArch64: call_fun_test/0 and optimization of a condition
pguyot Jul 21, 2025
908cc2c
AArch64: move_to_vm_register
pguyot Jul 21, 2025
5f80c42
AArch64: move_array_element
pguyot Jul 22, 2025
5c68597
AArch64: further tests
pguyot Jul 22, 2025
7fdde44
AArch64: Fix encoding of tst instruction
pguyot Jul 24, 2025
9f55c43
AArch64: handle mmap specificities of Apple Silicon
pguyot Jul 24, 2025
41f4b62
AArch64: enable Jit on arm64
pguyot Jul 24, 2025
9bd6597
AArch64: precompile to AArch64
pguyot Jul 24, 2025
8e657fd
AArch64: add ldr with fp reg
pguyot Jul 24, 2025
6628e69
AArch64: multiply
pguyot Jul 24, 2025
45ca9ff
AArch64: set_bs, rewrite_cp_offset
pguyot Jul 24, 2025
25830c3
AArch64: run CI tests on macOS
pguyot Aug 18, 2025
2177e1d
AArch64: implement missing functions and workaround for 64 bits integers
pguyot Aug 18, 2025
702691a
AArch64: fix mmap usage on macOS
pguyot Aug 19, 2025
25299ef
AArch64: Fix bug in remaining reductions handling
pguyot Aug 22, 2025
6975546
AArch64: factorize and increase coverage
pguyot Aug 22, 2025
d02317e
AArch64: increase coverage and use cbz/tbz/tbnz
pguyot Aug 23, 2025
64405fa
AArch64: support aarch64 on Linux
pguyot Aug 24, 2025
e47176b
AArch64: static assert offsets
pguyot Aug 24, 2025
976956c
AArch64: use SCRATCH_REG macro and fix the list
pguyot Aug 24, 2025
d848b71
AArch64: fix register usage with if_block_cond
pguyot Sep 7, 2025
5b5c3d9
AArch64: add get_array_element with {free, Reg}
pguyot Sep 7, 2025
0b921c7
AArch64: add move_to_native_register/2,3 with {x_reg, extra}
pguyot Sep 7, 2025
8a5beac
AArch64: move labels to backend states
pguyot Sep 20, 2025
123dfa1
AArch64: optimize jump_to_label with known labels
pguyot Sep 20, 2025
a2294da
AArch64: add move_to_vm_register test with fp_reg
pguyot Sep 20, 2025
15edf94
AArch64: add continuation entry point to save registers
pguyot Sep 20, 2025
15ee20a
AArch64: remove unused move_to_native_register/3 with fpu
pguyot Aug 30, 2025
4d7a02a
AArch64: remove entirely usage of FPU
pguyot Aug 30, 2025
d1f8cb3
AArch64: fix tests after primitive renumbering
pguyot Sep 20, 2025
61285ff
AArch64: use binutils helper for asm tests
pguyot Sep 17, 2025
2f7279c
AArch64: improvement and complete coverage of asm functions
pguyot Sep 19, 2025
dae94d0
AArch64: fix assembler for some instructions and tests
pguyot Sep 21, 2025
47ae139
AArch64: add specs, docs and fix move_to_array_element/5
pguyot Oct 2, 2025
3b9ddf3
AArch64: Small fixes inspired by LLM Review
pguyot Oct 2, 2025
2c8ce53
AArch64: simplify to_hrl usage with precompiled tests
pguyot Oct 2, 2025
f6e35af
AArch64: use macro for WORD_SIZE
pguyot Oct 2, 2025
49a40a2
AArch64: fix link to AAPCS64
pguyot Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/build-and-test-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ jobs:
otp: "28"
cmake_opts_other: "-DAVM_DISABLE_JIT=OFF"

- os: "macos-14"
otp: "28"
cmake_opts_other: "-DAVM_DISABLE_JIT=OFF"

- os: "macos-15"
otp: "28"
cmake_opts_other: "-DAVM_DISABLE_JIT=OFF"

steps:
# Setup
- name: "Checkout repo"
Expand Down
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
if (NOT AVM_DISABLE_JIT)
set(AVM_JIT_TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
endif()
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm64|aarch64$")
if (NOT AVM_DISABLE_JIT)
set(AVM_JIT_TARGET_ARCH "aarch64")
endif()
else()
if (NOT AVM_DISABLE_JIT)
message("JIT is not supported on ${CMAKE_SYSTEM_PROCESSOR}")
Expand Down
1 change: 1 addition & 0 deletions libs/jit/include/jit.hrl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
-define(JIT_FORMAT_VERSION, 1).

-define(JIT_ARCH_X86_64, 1).
-define(JIT_ARCH_AARCH64, 2).

-define(JIT_VARIANT_PIC, 1).

Expand Down
2 changes: 2 additions & 0 deletions libs/jit/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ set(ERLANG_MODULES
jit_precompile
jit_stream_binary
jit_stream_mmap
jit_aarch64
jit_aarch64_asm
jit_x86_64
jit_x86_64_asm
)
Expand Down
Loading
Loading