|
@@ -0,0 +1,111 @@
|
|
|
+From 648dae663d74c71bdbb8c2d9e31185f81dd672a0 Mon Sep 17 00:00:00 2001
|
|
|
+From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
|
|
|
+Date: Mon, 12 Sep 2016 17:04:05 +0200
|
|
|
+Subject: [PATCH 18/18] deinterlace-merge-arm64: fix linking on appleOS
|
|
|
+
|
|
|
+---
|
|
|
+ modules/arm_neon/asm64.S | 46 ++++++++++++++++++++++++++
|
|
|
+ modules/video_filter/deinterlace/merge_arm64.S | 14 ++++----
|
|
|
+ 2 files changed, 52 insertions(+), 8 deletions(-)
|
|
|
+ create mode 100644 modules/arm_neon/asm64.S
|
|
|
+
|
|
|
+diff --git a/modules/arm_neon/asm64.S b/modules/arm_neon/asm64.S
|
|
|
+new file mode 100644
|
|
|
+index 0000000..d778163
|
|
|
+--- /dev/null
|
|
|
++++ b/modules/arm_neon/asm64.S
|
|
|
+@@ -0,0 +1,46 @@
|
|
|
++ //*****************************************************************************
|
|
|
++ // asm.S : defines and macros
|
|
|
++ //*****************************************************************************
|
|
|
++ // Copyright (C) 2012 David Geldreich <david.geldreich at free.fr>
|
|
|
++ // Copyright (C) 2016 Felix Paul Kühne <fkuehne at videolan.org>
|
|
|
++ //
|
|
|
++ // This program is free software; you can redistribute it and/or modify
|
|
|
++ // it under the terms of the GNU Lesser General Public License as published by
|
|
|
++ // the Free Software Foundation; either version 2.1 of the License, or
|
|
|
++ // (at your option) any later version.
|
|
|
++ //
|
|
|
++ // This program is distributed in the hope that it will be useful,
|
|
|
++ // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
++ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
++ // GNU Lesser General Public License for more details.
|
|
|
++ //
|
|
|
++ // You should have received a copy of the GNU Lesser General Public License
|
|
|
++ // along with this program; if not, write to the Free Software Foundation,
|
|
|
++ // Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
|
|
++ //****************************************************************************/
|
|
|
++
|
|
|
++#ifdef __APPLE__
|
|
|
++# define EXTERN_ASM _
|
|
|
++#else
|
|
|
++# define EXTERN_ASM
|
|
|
++#endif
|
|
|
++
|
|
|
++# define ELF
|
|
|
++
|
|
|
++.macro function name, export=0
|
|
|
++ .macro endfunc
|
|
|
++ .size \name, . - \name
|
|
|
++ .endfunc
|
|
|
++ .purgem endfunc
|
|
|
++ .endm
|
|
|
++ .text
|
|
|
++ .align 2
|
|
|
++ .if \export
|
|
|
++ .global EXTERN_ASM\name
|
|
|
++EXTERN_ASM\name:
|
|
|
++ .endif
|
|
|
++ .type \name, %function
|
|
|
++ .func \name
|
|
|
++\name:
|
|
|
++.endm
|
|
|
++
|
|
|
+diff --git a/modules/video_filter/deinterlace/merge_arm64.S b/modules/video_filter/deinterlace/merge_arm64.S
|
|
|
+index ad898a3..27b662d 100644
|
|
|
+--- a/modules/video_filter/deinterlace/merge_arm64.S
|
|
|
++++ b/modules/video_filter/deinterlace/merge_arm64.S
|
|
|
+@@ -19,6 +19,8 @@
|
|
|
+ // Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
|
|
+ //****************************************************************************/
|
|
|
+
|
|
|
++#include "../../arm_neon/asm64.S"
|
|
|
++
|
|
|
+ .text
|
|
|
+
|
|
|
+ #define DEST x0
|
|
|
+@@ -26,11 +28,8 @@
|
|
|
+ #define SRC2 x2
|
|
|
+ #define SIZE x3
|
|
|
+
|
|
|
+- .align 2
|
|
|
+- .global merge8_arm64_neon
|
|
|
+- .type merge8_arm64_neon, %function
|
|
|
+ // NOTE: Offset and pitch must be multiple of 16-bytes in VLC.
|
|
|
+-merge8_arm64_neon:
|
|
|
++function merge8_arm64_neon, export=1
|
|
|
+ ands x5, SIZE, #~63
|
|
|
+ b.eq 2f
|
|
|
+ mov x10, #64
|
|
|
+@@ -65,11 +64,9 @@ merge8_arm64_neon:
|
|
|
+ st1 {v0.16b}, [DEST]
|
|
|
+ 4:
|
|
|
+ ret
|
|
|
++endfunc
|
|
|
+
|
|
|
+- .align 2
|
|
|
+- .global merge16_arm64_neon
|
|
|
+- .type merge16_arm64_neon, %function
|
|
|
+-merge16_arm64_neon:
|
|
|
++function merge16_arm64_neon, export=1
|
|
|
+ ands x5, SIZE, #~63
|
|
|
+ b.eq 2f
|
|
|
+ 1:
|
|
|
+@@ -100,3 +97,4 @@ merge16_arm64_neon:
|
|
|
+ st1 {v0.8h}, [DEST]
|
|
|
+ 4:
|
|
|
+ ret
|
|
|
++endfunc
|
|
|
+--
|
|
|
+2.9.3
|
|
|
+
|