Commit 553939eb authored by Carola Nitz's avatar Carola Nitz

Patches: removed arm related patches that have been merged into libvlc

parent bd1635f9
From adc38e3281becb0b96d87df7f37b47be9e6b9df0 Mon Sep 17 00:00:00 2001
From: David Geldreich <david.geldreich@free.fr>
Date: Fri, 20 Apr 2012 16:41:19 +0200
Subject: [PATCH 01/15] arm_neon: added function macro to handle the underscore
prefix for the iOS ARM ABI
---
modules/arm_neon/asm.S | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 modules/arm_neon/asm.S
diff --git a/modules/arm_neon/asm.S b/modules/arm_neon/asm.S
new file mode 100644
index 0000000000..d853255fec
--- /dev/null
+++ b/modules/arm_neon/asm.S
@@ -0,0 +1,49 @@
+@*****************************************************************************
+@ asm.S : defines and macros
+@*****************************************************************************
+@ Copyright (C) 2012 David Geldreich <david.geldreich at free.fr>
+@
+@ This program is free software; you can redistribute it and/or modify
+@ it under the terms of the GNU General Public License as published by
+@ the Free Software Foundation; either version 2 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 General Public License for more details.
+@
+@ You should have received a copy of the GNU 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
+
+#ifdef __ELF__
+# define ELF
+#else
+# define ELF @
+#endif
+
+.macro function name, export=0
+ .macro endfunc
+ELF .size \name, . - \name
+ .endfunc
+ .purgem endfunc
+ .endm
+ .text
+ .align 2
+ .if \export
+ .global EXTERN_ASM\name
+EXTERN_ASM\name:
+ .endif
+ELF .type \name, %function
+ .func \name
+\name:
+.endm
+
--
2.15.1
From 26f1d48e8cec53109d6bb2c0aab44f63353a74c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Fri, 10 Aug 2012 16:02:07 +0200
Subject: [PATCH 02/15] deinterlace/merge: use a macro to fix compilation for
iOS
---
modules/video_filter/deinterlace/merge_arm.S | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/modules/video_filter/deinterlace/merge_arm.S b/modules/video_filter/deinterlace/merge_arm.S
index dd779029ae..03e5042b28 100644
--- a/modules/video_filter/deinterlace/merge_arm.S
+++ b/modules/video_filter/deinterlace/merge_arm.S
@@ -18,6 +18,8 @@
@ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
@****************************************************************************/
+#include "../../arm_neon/asm.S"
+
.syntax unified
.arm
.arch armv6
@@ -29,11 +31,8 @@
#define SRC2 r2
#define SIZE r3
- .align 2
- .global merge8_arm_neon
- .type merge8_arm_neon, %function
@ NOTE: Offset and pitch must be multiple of 16-bytes in VLC.
-merge8_arm_neon:
+function merge8_arm_neon, export=1
cmp SIZE, #64
blo 2f
1:
@@ -70,11 +69,9 @@ merge8_arm_neon:
vhadd.u8 q0, q0, q8
vst1.u8 {q0}, [DEST,:128]!
bx lr
+endfunc
- .align 2
- .global merge16_arm_neon
- .type merge16_arm_neon, %function
-merge16_arm_neon:
+function merge16_arm_neon, export=1
cmp SIZE, #64
blo 2f
1:
@@ -111,11 +108,9 @@ merge16_arm_neon:
vhadd.u16 q0, q0, q8
vst1.u16 {q0}, [DEST,:128]!
bx lr
+endfunc
- .align 2
- .global merge8_armv6
- .type merge8_armv6, %function
-merge8_armv6:
+function merge8_armv6, export=1
push {r4-r9,lr}
1:
pld [SRC1, #64]
@@ -133,11 +128,9 @@ merge8_armv6:
stm DEST!, {r6-r7}
popeq {r4-r9,pc}
b 1b
+endfunc
- .align 2
- .global merge16_armv6
- .type merge16_armv6, %function
-merge16_armv6:
+function merge16_armv6, export=1
push {r4-r9,lr}
1:
pld [SRC1, #64]
@@ -155,3 +148,4 @@ merge16_armv6:
stm DEST!, {r6-r7}
popeq {r4-r9,pc}
b 1b
+endfunc
--
2.15.1
From 3c4f8c60437c4561d762682d5baebce97426e2ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Wed, 10 Dec 2014 22:14:55 +0100
Subject: [PATCH 04/15] arm_neon: fix iOS linking
---
modules/arm_neon/amplify.S | 7 ++---
modules/arm_neon/simple_channel_mixer.S | 46 +++++++++++++--------------------
2 files changed, 22 insertions(+), 31 deletions(-)
diff --git a/modules/arm_neon/amplify.S b/modules/arm_neon/amplify.S
index 5938118378..42f0d004d8 100644
--- a/modules/arm_neon/amplify.S
+++ b/modules/arm_neon/amplify.S
@@ -18,6 +18,8 @@
@ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
@****************************************************************************/
+#include "asm.S"
+
.syntax unified
.arm
.fpu neon
@@ -27,9 +29,7 @@
#define SRC r1
#define SIZE r2
.align 2
- .global amplify_float_arm_neon
- .type amplify_float_arm_neon, %function
-amplify_float_arm_neon:
+function amplify_float_arm_neon, export=1
cmp SIZE, #0
bxeq lr
#ifdef __ARM_PCS
@@ -79,3 +79,4 @@ amplify_float_arm_neon:
4: vst1.f32 {d20-d21}, [DST,:128]!
5: vst1.f32 {d16-d17}, [DST,:128]!
bx lr
+endfunc
diff --git a/modules/arm_neon/simple_channel_mixer.S b/modules/arm_neon/simple_channel_mixer.S
index a94ae8539f..54b43a79e3 100644
--- a/modules/arm_neon/simple_channel_mixer.S
+++ b/modules/arm_neon/simple_channel_mixer.S
@@ -19,6 +19,8 @@
@ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
@****************************************************************************/
+#include "asm.S"
+
.fpu neon
.text
.align 2
@@ -34,9 +36,7 @@ coeff_7to2:
.float 0.5
.float 0.25
.float 0.25
- .global convert_7_x_to_2_0_neon_asm
- .type convert_7_x_to_2_0_neon_asm, %function
-convert_7_x_to_2_0_neon_asm:
+function convert_7_x_to_2_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_7to2
@@ -63,6 +63,7 @@ convert_7_x_to_2_0_neon_asm:
bne 0b
pop {r4,pc}
+endfunc
coeff_5to2:
@@ -70,9 +71,7 @@ coeff_5to2:
.float 0.5
.float 0.33
.float 0.33
- .global convert_5_x_to_2_0_neon_asm
- .type convert_5_x_to_2_0_neon_asm, %function
-convert_5_x_to_2_0_neon_asm:
+function convert_5_x_to_2_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_5to2
@@ -95,14 +94,13 @@ convert_5_x_to_2_0_neon_asm:
bne 0b
pop {r4,pc}
+endfunc
coeff_4to2:
.float 0.5
.float 0.5
- .global convert_4_0_to_2_0_neon_asm
- .type convert_4_0_to_2_0_neon_asm, %function
-convert_4_0_to_2_0_neon_asm:
+function convert_4_0_to_2_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_4to2
@@ -119,14 +117,12 @@ convert_4_0_to_2_0_neon_asm:
bne 0b
pop {r4,pc}
-
+endfunc
coeff_3to2:
.float 0.5
.float 0.5
- .global convert_3_x_to_2_0_neon_asm
- .type convert_3_x_to_2_0_neon_asm, %function
-convert_3_x_to_2_0_neon_asm:
+function convert_3_x_to_2_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_3to2
@@ -147,16 +143,14 @@ convert_3_x_to_2_0_neon_asm:
bne 0b
pop {r4,pc}
-
+endfunc
coeff_7to1:
.float 0.25
.float 0.25
.float 0.125
.float 0.125
- .global convert_7_x_to_1_0_neon_asm
- .type convert_7_x_to_1_0_neon_asm, %function
-convert_7_x_to_1_0_neon_asm:
+function convert_7_x_to_1_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_7to1
@@ -181,6 +175,7 @@ convert_7_x_to_1_0_neon_asm:
bne 0b
pop {r4,pc}
+endfunc
coeff_5to1:
@@ -188,9 +183,7 @@ coeff_5to1:
.float 0.25
.float 0.16666667
.float 0.16666667
- .global convert_5_x_to_1_0_neon_asm
- .type convert_5_x_to_1_0_neon_asm, %function
-convert_5_x_to_1_0_neon_asm:
+function convert_5_x_to_1_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_5to1
@@ -212,16 +205,14 @@ convert_5_x_to_1_0_neon_asm:
bne 0b
pop {r4,pc}
-
+endfunc
coeff_7to4:
.float 0.5
.float 0.5
.float 0.16666667
.float 0.16666667
- .global convert_7_x_to_4_0_neon_asm
- .type convert_7_x_to_4_0_neon_asm, %function
-convert_7_x_to_4_0_neon_asm:
+function convert_7_x_to_4_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_7to4
@@ -247,14 +238,12 @@ convert_7_x_to_4_0_neon_asm:
bne 0b
pop {r4,pc}
-
+endfunc
coeff_5to4:
.float 0.5
.float 0.5
- .global convert_5_x_to_4_0_neon_asm
- .type convert_5_x_to_4_0_neon_asm, %function
-convert_5_x_to_4_0_neon_asm:
+function convert_5_x_to_4_0_neon_asm, export=1
push {r4,lr}
adr COEFF, coeff_5to4
@@ -277,3 +266,4 @@ convert_5_x_to_4_0_neon_asm:
bne 0b
pop {r4,pc}
+endfunc
--
2.15.1
From f45aeb40a46a370c2d52d039a507ef8d90229d09 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 07/15] 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 0000000000..d77816312b
--- /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 db19e54caf..63c04d3fdd 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
@@ -64,11 +63,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:
@@ -99,3 +96,4 @@ merge16_arm64_neon:
st1 {v0.8h}, [DEST]
4:
ret
+endfunc
--
2.15.1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment