[x264-devel] aarch64: initial build support
Janne Grunau
git at videolan.org
Tue Aug 26 18:23:11 CEST 2014
x264 | branch: master | Janne Grunau <janne-x264 at jannau.net> | Tue Mar 18 22:10:24 2014 +0100| [943128a527d1b98a63017d58cd1fcf53aaffcb6e] | committer: Fiona Glaser
aarch64: initial build support
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=943128a527d1b98a63017d58cd1fcf53aaffcb6e
---
Makefile | 9 +++++++++
configure | 26 ++++++++++++++++++++++++--
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 773deed..8bc7f9a 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 ebf737a..fe4a9c2 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."
More information about the x264-devel
mailing list