Enable dav1d SIMD on more architectures

This commit is contained in:
Basilisk-Dev 2026-05-11 10:16:34 -04:00 committed by wuggy
commit ad1bfb30d5
19 changed files with 402 additions and 20 deletions

View file

@ -0,0 +1,65 @@
; Mozilla build configuration for bundled dav1d x86 assembly.
%define private_prefix dav1d
%ifndef ARCH_X86_64
%ifidn __OUTPUT_FORMAT__,elf64
%define ARCH_X86_64 1
%elifidn __OUTPUT_FORMAT__,macho64
%define ARCH_X86_64 1
%elifidn __OUTPUT_FORMAT__,win64
%define ARCH_X86_64 1
%elifidn __OUTPUT_FORMAT__,x64
%define ARCH_X86_64 1
%else
%define ARCH_X86_64 0
%endif
%endif
%ifndef ARCH_X86_32
%if ARCH_X86_64
%define ARCH_X86_32 0
%else
%define ARCH_X86_32 1
%endif
%endif
%ifndef STACK_ALIGNMENT
%if ARCH_X86_64
%define STACK_ALIGNMENT 16
%elifidn __OUTPUT_FORMAT__,elf
%define STACK_ALIGNMENT 16
%elifidn __OUTPUT_FORMAT__,elf32
%define STACK_ALIGNMENT 16
%elifidn __OUTPUT_FORMAT__,macho
%define STACK_ALIGNMENT 16
%elifidn __OUTPUT_FORMAT__,macho32
%define STACK_ALIGNMENT 16
%else
%define STACK_ALIGNMENT 4
%endif
%endif
%ifndef PIC
%ifidn __OUTPUT_FORMAT__,win32
%define PIC 0
%else
%define PIC 1
%endif
%endif
%ifndef FORCE_VEX_ENCODING
%define FORCE_VEX_ENCODING 0
%endif
%ifidn __OUTPUT_FORMAT__,win32
%if ARCH_X86_32
%define PREFIX 1
%endif
%elifidn __OUTPUT_FORMAT__,macho
%define PREFIX 1
%elifidn __OUTPUT_FORMAT__,macho32
%define PREFIX 1
%elifidn __OUTPUT_FORMAT__,macho64
%define PREFIX 1
%endif

View file

@ -36,7 +36,10 @@
# define ARCH_LOONGARCH64 0
#endif
#if defined(__powerpc64__) && defined(_LITTLE_ENDIAN)
#if defined(__powerpc64__) && \
(defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || \
(defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__))
# define ARCH_PPC64LE 1
#else
# define ARCH_PPC64LE 0
@ -58,13 +61,37 @@
#define CONFIG_16BPC 1
#define CONFIG_LOG 0
#define CONFIG_MACOS_KPERF 0
#if ARCH_LOONGARCH64
#if ARCH_AARCH64 || ARCH_ARM || ARCH_LOONGARCH64 || ARCH_PPC64LE || ARCH_X86
# define HAVE_ASM 1
#else
# define HAVE_ASM 0
#endif
#define TRIM_DSP_FUNCTIONS 0
#define HAVE_AS_FUNC 0
#if ARCH_AARCH64
# define HAVE_AS_ARCH_DIRECTIVE 1
# define AS_ARCH_LEVEL armv8-a
# define HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE 1
# define HAVE_AS_ARCHEXT_I8MM_DIRECTIVE 1
# define HAVE_AS_ARCHEXT_SVE_DIRECTIVE 1
# define HAVE_AS_ARCHEXT_SVE2_DIRECTIVE 1
# define HAVE_DOTPROD 1
# define HAVE_I8MM 1
# define HAVE_SVE 1
# define HAVE_SVE2 1
#else
# define HAVE_AS_ARCH_DIRECTIVE 0
# define HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE 0
# define HAVE_AS_ARCHEXT_I8MM_DIRECTIVE 0
# define HAVE_AS_ARCHEXT_SVE_DIRECTIVE 0
# define HAVE_AS_ARCHEXT_SVE2_DIRECTIVE 0
# define HAVE_DOTPROD 0
# define HAVE_I8MM 0
# define HAVE_SVE 0
# define HAVE_SVE2 0
#endif
#define HAVE_ALIGNED_ALLOC 0
#define HAVE_DLSYM 0
#define HAVE_ELF_AUX_INFO 0