x86: make -march configurable

main
anna 3 years ago
parent d19e665d47
commit c620f2ae34
Signed by: fef
GPG Key ID: EC22E476DC2D3D84

@ -7,7 +7,7 @@ set(CMAKE_CROSSCOMPILING 1)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
if (CFG_X86_64)
set(CMAKE_SYSTEM_PROCESSOR x86-64)
set(_toolchain_common_flags "-m64 -march=x86-64")
set(_toolchain_common_flags "-m64 -march=${M_ARCH}")
set(_toolchain_triple x86_64-pc-none-elf)
set(_toolchain_bits 64)
else()

@ -1,5 +1,15 @@
# Copyright (C) 2021 fef <owo@fef.moe>. All rights reserved.
set(_amd64_march_options
"nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" "goldmont" "goldmont-plus"
"tremont" "nehalem" "corei7" "westmere" "sandybridge" "corei7-avx" "ivybridge" "core-avx-i"
"haswell" "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake"
"cannonlake" "icelake-client" "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4"
"znver1" "znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3"
)
set(BOOT_TYPE "bios" CACHE STRING "Bootloader type")
set_property(CACHE BOOT_TYPE PROPERTY STRINGS
"bios"
@ -8,6 +18,10 @@ set_property(CACHE BOOT_TYPE PROPERTY STRINGS
option(CFG_X86_64 "64-bit kernel (32-bit support is fundamentally broken)" ON)
if(CFG_X86_64)
set(X86_ARCH amd64)
set(M_ARCH "x86-64" CACHE STRING "Value for -march")
set_property(CACHE M_ARCH PROPERTY STRINGS ${_amd64_march_options})
else()
set(X86_ARCH i386)
set(M_ARCH "i686" CACHE STRING "Value for -march")
set_property(CACHE M_ARCH PROPERTY STRINGS "i686")
endif()

Loading…
Cancel
Save