123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- From 868843d553c2659555050d0639d53d64a0e10abe 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/21] 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
|