add x86_64 asm build flag where supported
Some checks failed
Extension Template / Linux (<submodule_version>) (push) Has been cancelled
Extension Template / MacOS (<submodule_version>) (push) Has been cancelled
Extension Template / Windows (<submodule_version>) (push) Has been cancelled
Main Extension Distribution Pipeline / Build extension binaries (push) Has been cancelled
Main Extension Distribution Pipeline / Code Quality Check (push) Has been cancelled

This commit is contained in:
Craig Raw 2026-03-05 08:17:52 +02:00
parent 21548e1a60
commit a84dc44b31

View File

@ -21,11 +21,23 @@ set(EXTENSION_SOURCES
# Add necessary preprocessor definitions for secp256k1
add_definitions(-DECMULT_WINDOW_SIZE=15)
add_definitions(-DECMULT_GEN_PRECISION_BITS=4)
add_definitions(-DUSE_FIELD_10X26)
add_definitions(-DUSE_SCALAR_8X32)
add_definitions(-DENABLE_MODULE_ECDH)
add_definitions(-DENABLE_MODULE_EXTRAKEYS)
# Enable x86_64 inline assembly for optimized scalar multiplication
# (same check as libsecp256k1's cmake/CheckX86_64Assembly.cmake)
include(CheckCSourceCompiles)
check_c_source_compiles("
#include <stdint.h>
int main() {
uint64_t a = 11, tmp;
__asm__ __volatile__(\"movq $0x100000000,%1; mulq %%rsi\" : \"+a\"(a) : \"S\"(tmp) : \"cc\", \"%rdx\");
}
" HAVE_X86_64_ASM)
if(HAVE_X86_64_ASM)
add_definitions(-DUSE_ASM_X86_64=1)
endif()
# Windows-specific definitions for static linking
if(WIN32)
add_definitions(-DSECP256K1_STATIC)