From: Janne Grunau Date: Tue, 18 Mar 2014 21:10:24 +0000 (+0100) Subject: aarch64: initial build support X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=943128a527d1b98a63017d58cd1fcf53aaffcb6e;p=x264 aarch64: initial build support --- diff --git a/Makefile b/Makefile index 773deeda..8bc7f9a8 100644 --- a/Makefile +++ b/Makefile @@ -123,6 +123,15 @@ OBJASM = $(ASMSRC:%.S=%.o) endif endif +# AArch64 NEON optims +ifeq ($(ARCH),AARCH64) +ifneq ($(AS),) +ASMSRC += +SRCS += +OBJASM = $(ASMSRC:%.S=%.o) +endif +endif + ifneq ($(HAVE_GETOPT_LONG),1) SRCCLI += extras/getopt.c endif diff --git a/configure b/configure index ebf737a7..fe4a9c23 100755 --- a/configure +++ b/configure @@ -684,6 +684,15 @@ case $host_cpu in AS="${AS-${CC}}" fi ;; + aarch64) + ARCH="AARCH64" + if [ "$SYS" = MACOSX ] ; then + AS="${AS-extras/gas-preprocessor.pl $CC}" + ASFLAGS="$ASFLAGS -DPREFIX" + else + AS="${AS-${CC}}" + fi + ;; s390|s390x) ARCH="S390" ;; @@ -767,7 +776,20 @@ if [ $asm = auto -a $ARCH = ARM ] ; then fi fi -if [ $asm = auto -a $ARCH = ARM ] ; then +if [ $asm = auto -a $ARCH = AARCH64 ] ; then + # set flags so neon is built by default + echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu|-arch)' || CFLAGS="$CFLAGS -arch arm64 -mfpu=neon" + + if cc_check '' '' '__asm__("cmeq v0.8h, v0.8h, #0");' ; then define HAVE_NEON + ASFLAGS="$ASFLAGS -c" + else + echo "no NEON support, try adding -mfpu=neon to CFLAGS" + echo "If you really want to run on such a CPU, configure with --disable-asm." + exit 1 + fi +fi + +if [ $asm = auto -a \( $ARCH = ARM -o $ARCH = AARCH64 \) ] ; then # check if the assembler supports '.func' (clang 3.5 does not) as_check ".func test${NL}.endfunc" && define HAVE_AS_FUNC 1 fi @@ -1318,7 +1340,7 @@ cat conftest.log rm conftest.log [ "$SRCPATH" != "." ] && ln -sf ${SRCPATH}/Makefile ./Makefile -mkdir -p common/{arm,ppc,x86} encoder extras filters/video input output tools +mkdir -p common/{aarch64,arm,ppc,x86} encoder extras filters/video input output tools echo echo "You can run 'make' or 'make fprofiled' now."