about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-07-14 12:03:30 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-07-14 12:03:30 +0200
commit903ecd207d8d7cfb189973c8d1d0e3d1f9f982b3 (patch)
tree65fad0544fe4bdccd5dd393d561bfe2f833b19c4
parentd62e9652fcbcaad8fd5c83956d476eb11499a85f (diff)
downloadbox64-903ecd207d8d7cfb189973c8d1d0e3d1f9f982b3.tar.gz
box64-903ecd207d8d7cfb189973c8d1d0e3d1f9f982b3.zip
Added generic ARM64 build profile
-rw-r--r--.github/workflows/manual.yml1
-rw-r--r--.github/workflows/release.yml2
-rwxr-xr-xCMakeLists.txt8
-rwxr-xr-xdocs/COMPILE.md7
4 files changed, 15 insertions, 3 deletions
diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml
index 839f33b9..5009c0f6 100644
--- a/.github/workflows/manual.yml
+++ b/.github/workflows/manual.yml
@@ -19,6 +19,7 @@ on:
         - RPI4ARM64
         - SD845
         - TEGRAX1
+        - ARM64
       build_type:
         description: 'Build type'
         required: true
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4aa1a44d..079af934 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -27,7 +27,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        platform: [X64, OTHER_ARM, RISCV, RPI4ARM64, RK3326, RK3399, RK3588, PHYTIUM, SD845]
+        platform: [X64, OTHER_ARM, RISCV, RPI4ARM64, RK3326, RK3399, RK3588, PHYTIUM, SD845, ARM64]
         type: [Release, Trace]
         os: [ubuntu-latest]
         include:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c28d137e..e92a25e6 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,6 +19,7 @@ option(LARCH64 "Set to ON if targeting an Loongarch64 based device" ${LARCH64})
 option(RV64 "Set to ON if targeting an RISC-V RV64GC based device" ${RV64})
 option(PPC64LE "Set to ON if targeting an PowerPC 64 LE based device" ${PPC64LE})
 option(LX2160A "Set to ON if targeting an LX2160A based device" ${LX2160A})
+option(ARM64 "Set to ON if targeting a generic ARM64 based device" ${ARM64})
 option(USE_CCACHE "Set to ON to use ccache if present in the system" ${USE_CCACHE})
 option(HAVE_TRACE "Set to ON to have Trace ability (needs ZydisInfo library)" ${HAVE_TRACE})
 option(NOLOADADDR "Set to ON to avoid fixing the load address of Box64" OFF)
@@ -46,7 +47,7 @@ if(PPC64LE)
     set(RV64_DYNAREC OFF CACHE BOOL "")
     set(PAGE16K OFF CACHE BOOL "")
 endif()
-if(RK3399 OR RK3588 OR ODROIDN2 OR RPI3ARM64 OR RPI4ARM64 OR RK3326 OR TEGRAX1 OR PHYTIUM OR SD845 OR LX2160A OR M1)
+if(RK3399 OR RK3588 OR ODROIDN2 OR RPI3ARM64 OR RPI4ARM64 OR RK3326 OR TEGRAX1 OR PHYTIUM OR SD845 OR LX2160A OR M1 OR ARM64)
     set(LD80BITS OFF CACHE BOOL "")
     set(NOALIGN OFF CACHE BOOL "")
     set(ARM_DYNAREC ON CACHE BOOL "")
@@ -137,7 +138,7 @@ elseif(TEGRAX1)
     add_definitions(-pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a57+crypto)
     set(CMAKE_ASM_FLAGS  "-pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a57+crypto")
 elseif(PHYTIUM)
-    add_definitions(-DPHYSIUM)
+    add_definitions(-DPHYTIUM)
     add_definitions(-pipe -march=armv8.1-a+crc+simd+crypto)
     set(CMAKE_ASM_FLAGS  "-pipe -march=armv8.1-a+crc+simd+crypto+aes")
 elseif(SD845)
@@ -164,6 +165,9 @@ elseif(LX2160A)
     set(CMAKE_ASM_FLAGS  "-pipe -march=armv8-a+crypto+crc -mcpu=cortex-a72+crypto")
 elseif(SW64)
     add_definitions(-DSW64)
+elseif(ARM64)
+    add_definitions(-pipe -march=native)
+    set(CMAKE_ASM_FLAGS  "-pipe -march=armv8-a+crc+simd+crypto")
 elseif(ARM_DYNAREC)
     set(CMAKE_ASM_FLAGS  "-pipe -march=armv8-a+crc+simd+crypto")
 endif()
diff --git a/docs/COMPILE.md b/docs/COMPILE.md
index 275d5067..fe6c23dd 100755
--- a/docs/COMPILE.md
+++ b/docs/COMPILE.md
@@ -111,6 +111,13 @@ Using a 64bit OS:
 -D PHYTIUM=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo

 ```

 

+#### for a generic ARM64 machine

+

+Using a 64bit OS:

+```

+-D ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo

+```

+

 #### for M1

 

 Only test on Asahi for now, using the default "16K page" kernel