View | Details | Raw Unified | Return to bug 196591
Collapse All | Expand All

(-)files/patch-common_arm_asm.S (+40 lines)
Added Link Here
1
--- common/arm/asm.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/asm.S
3
@@ -40,6 +40,12 @@
4
 #   define ELF @
5
 #endif
6
 
7
+#if HAVE_AS_FUNC
8
+#   define FUNC
9
+#else
10
+#   define FUNC @
11
+#endif
12
+
13
 .macro require8, val=1
14
 ELF     .eabi_attribute 24, \val
15
 .endm
16
@@ -49,17 +55,22 @@ ELF     .eabi_attribute 25, \val
17
 .endm
18
 
19
 .macro function name, export=1
20
+    .macro endfunc
21
+ELF     .size   \name, . - \name
22
+FUNC    .endfunc
23
+        .purgem endfunc
24
+    .endm
25
         .align  2
26
 .if \export == 1
27
         .global EXTERN_ASM\name
28
 ELF     .hidden EXTERN_ASM\name
29
 ELF     .type   EXTERN_ASM\name, %function
30
-        .func   EXTERN_ASM\name
31
+FUNC    .func   EXTERN_ASM\name
32
 EXTERN_ASM\name:
33
 .else
34
 ELF     .hidden \name
35
 ELF     .type   \name, %function
36
-        .func   \name
37
+FUNC    .func   \name
38
 \name:
39
 .endif
40
 .endm
(-)files/patch-common_arm_cpu-a.S (+34 lines)
Added Link Here
1
--- common/arm/cpu-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/cpu-a.S
3
@@ -33,7 +33,7 @@
4
 function x264_cpu_neon_test
5
     vadd.i16    q0, q0, q0
6
     bx          lr
7
-.endfunc
8
+endfunc
9
 
10
 // return: 0 on success
11
 //         1 if counters were already enabled
12
@@ -49,14 +49,14 @@ function x264_cpu_enable_armv7_counter, 
13
     mov         r2, #1 << 31                // enable cycle counter
14
     mcr         p15, 0, r2, c9, c12, 1      // write CNTENS
15
     bx          lr
16
-.endfunc
17
+endfunc
18
 
19
 function x264_cpu_disable_armv7_counter, export=0
20
     mrc         p15, 0, r0, c9, c12, 0      // read PMNC
21
     bic         r0, r0, #1                  // disable counters
22
     mcr         p15, 0, r0, c9, c12, 0      // write PMNC
23
     bx          lr
24
-.endfunc
25
+endfunc
26
 
27
 
28
 .macro READ_TIME r
29
@@ -106,4 +106,4 @@ average_loop:
30
     cmp         r0, #10
31
     movgt       r0, #0
32
     pop         {r4-r6,pc}
33
-.endfunc
34
+endfunc
(-)files/patch-common_arm_deblock-a.S (+205 lines)
Added Link Here
1
--- common/arm/dct-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/dct-a.S
3
@@ -82,7 +82,7 @@ function x264_dct4x4dc_neon
4
     vrhadd.s16      d3,  d6,  d7
5
     vst1.64         {d0-d3}, [r0,:128]
6
     bx              lr
7
-.endfunc
8
+endfunc
9
 
10
 function x264_idct4x4dc_neon
11
     vld1.64         {d0-d3}, [r0,:128]
12
@@ -94,7 +94,7 @@ function x264_idct4x4dc_neon
13
     HADAMARD        2, sumsub, d3, d2, d6, d7
14
     vst1.64         {d0-d3}, [r0,:128]
15
     bx              lr
16
-.endfunc
17
+endfunc
18
 
19
 
20
 .macro DCT_1D d0 d1 d2 d3  d4 d5 d6 d7
21
@@ -129,7 +129,7 @@ function x264_sub4x4_dct_neon
22
     DCT_1D          d4, d5, d6, d7, d0, d1, d2, d3
23
     vst1.64         {d4-d7}, [r0,:128]
24
     bx              lr
25
-.endfunc
26
+endfunc
27
 
28
 function x264_sub8x4_dct_neon, export=0
29
     vld1.64         {d0}, [r1,:64], r3
30
@@ -165,7 +165,7 @@ function x264_sub8x4_dct_neon, export=0
31
     vst1.64         {d4-d5}, [r0,:128]!
32
     vst1.64         {d6-d7}, [r0,:128]!
33
     bx              lr
34
-.endfunc
35
+endfunc
36
 
37
 function x264_sub8x8_dct_neon
38
     push            {lr}
39
@@ -174,7 +174,7 @@ function x264_sub8x8_dct_neon
40
     bl              x264_sub8x4_dct_neon
41
     pop             {lr}
42
     b               x264_sub8x4_dct_neon
43
-.endfunc
44
+endfunc
45
 
46
 function x264_sub16x16_dct_neon
47
     push            {lr}
48
@@ -195,7 +195,7 @@ function x264_sub16x16_dct_neon
49
     bl              x264_sub8x4_dct_neon
50
     pop             {lr}
51
     b               x264_sub8x4_dct_neon
52
-.endfunc
53
+endfunc
54
 
55
 
56
 .macro DCT8_1D type
57
@@ -279,7 +279,7 @@ function x264_sub8x8_dct8_neon
58
     vst1.64         {d24-d27}, [r0,:128]!
59
     vst1.64         {d28-d31}, [r0,:128]!
60
     bx              lr
61
-.endfunc
62
+endfunc
63
 
64
 function x264_sub16x16_dct8_neon
65
     push            {lr}
66
@@ -294,7 +294,7 @@ function x264_sub16x16_dct8_neon
67
     sub             r1,  r1,  #FENC_STRIDE*8 - 8
68
     sub             r2,  r2,  #FDEC_STRIDE*8 - 8
69
     b               X(x264_sub8x8_dct8_neon)
70
-.endfunc
71
+endfunc
72
 
73
 
74
 // First part of IDCT (minus final SUMSUB_BA)
75
@@ -336,7 +336,7 @@ function x264_add4x4_idct_neon
76
     vst1.32         {d2[1]}, [r0,:32], r2
77
     vst1.32         {d2[0]}, [r0,:32], r2
78
     bx              lr
79
-.endfunc
80
+endfunc
81
 
82
 function x264_add8x4_idct_neon, export=0
83
     vld1.64         {d0-d3}, [r1,:128]!
84
@@ -376,7 +376,7 @@ function x264_add8x4_idct_neon, export=0
85
     vst1.32         {d2}, [r0,:64], r2
86
     vst1.32         {d3}, [r0,:64], r2
87
     bx              lr
88
-.endfunc
89
+endfunc
90
 
91
 function x264_add8x8_idct_neon
92
     mov             r2, #FDEC_STRIDE
93
@@ -384,7 +384,7 @@ function x264_add8x8_idct_neon
94
     bl              x264_add8x4_idct_neon
95
     mov             lr, ip
96
     b               x264_add8x4_idct_neon
97
-.endfunc
98
+endfunc
99
 
100
 function x264_add16x16_idct_neon
101
     mov             r2, #FDEC_STRIDE
102
@@ -401,7 +401,7 @@ function x264_add16x16_idct_neon
103
     bl              x264_add8x4_idct_neon
104
     mov             lr, ip
105
     b               x264_add8x4_idct_neon
106
-.endfunc
107
+endfunc
108
 
109
 
110
 .macro IDCT8_1D type
111
@@ -498,7 +498,7 @@ function x264_add8x8_idct8_neon
112
     vst1.64         {d6}, [r0,:64], r2
113
     vst1.64         {d7}, [r0,:64], r2
114
     bx              lr
115
-.endfunc
116
+endfunc
117
 
118
 function x264_add16x16_idct8_neon
119
     mov             ip,  lr
120
@@ -510,7 +510,7 @@ function x264_add16x16_idct8_neon
121
     sub             r0,  r0,  #8*FDEC_STRIDE-8
122
     mov             lr,  ip
123
     b               X(x264_add8x8_idct8_neon)
124
-.endfunc
125
+endfunc
126
 
127
 
128
 function x264_add8x8_idct_dc_neon
129
@@ -562,7 +562,7 @@ function x264_add8x8_idct_dc_neon
130
     vst1.64         {d6}, [r0,:64], r2
131
     vst1.64         {d7}, [r0,:64], r2
132
     bx              lr
133
-.endfunc
134
+endfunc
135
 
136
 .macro ADD16x4_IDCT_DC dc
137
     vld1.64         {d16-d17}, [r0,:128], r3
138
@@ -610,7 +610,7 @@ function x264_add16x16_idct_dc_neon
139
     ADD16x4_IDCT_DC d2
140
     ADD16x4_IDCT_DC d3
141
     bx              lr
142
-.endfunc
143
+endfunc
144
 
145
 function x264_sub8x8_dct_dc_neon
146
     mov             r3,  #FENC_STRIDE
147
@@ -658,7 +658,7 @@ function x264_sub8x8_dct_dc_neon
148
     vpadd.s16       d0,  d0,  d1
149
     vst1.64         {d0}, [r0,:64]
150
     bx              lr
151
-.endfunc
152
+endfunc
153
 
154
 
155
 function x264_zigzag_scan_4x4_frame_neon
156
@@ -671,4 +671,4 @@ function x264_zigzag_scan_4x4_frame_neon
157
     vtbl.8      d7, {d2-d3}, d19
158
     vst1.64     {d4-d7},   [r0,:128]
159
     bx          lr
160
-.endfunc
161
+endfunc
Added Link Here
1
--- common/arm/deblock-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/deblock-a.S
3
@@ -142,7 +142,7 @@ function x264_deblock_v_luma_neon
4
 
5
     align_pop_regs
6
     bx              lr
7
-.endfunc
8
+endfunc
9
 
10
 function x264_deblock_h_luma_neon
11
     h264_loop_filter_start
12
@@ -194,7 +194,7 @@ function x264_deblock_h_luma_neon
13
 
14
     align_pop_regs
15
     bx              lr
16
-.endfunc
17
+endfunc
18
 
19
 .macro h264_loop_filter_chroma
20
     vdup.8          q11, r2         // alpha
21
@@ -255,7 +255,7 @@ function x264_deblock_v_chroma_neon
22
     vst2.8          {d0, d1},  [r0,:128], r1
23
 
24
     bx              lr
25
-.endfunc
26
+endfunc
27
 
28
 function x264_deblock_h_chroma_neon
29
     h264_loop_filter_start
30
@@ -303,7 +303,7 @@ function x264_deblock_h_chroma_neon
31
     vst1.8          {d3},  [r0], r1
32
 
33
     bx              lr
34
-.endfunc
35
+endfunc
36
 
37
 function x264_deblock_strength_neon
38
     ldr             ip,  [sp]
39
@@ -409,4 +409,4 @@ lists:
40
 
41
     vst1.8          {q8}, [r3,:128]     @ bs[0]
42
     bx              lr
43
-.endfunc
44
+endfunc
(-)files/patch-common_arm_mc-a.S (+386 lines)
Added Link Here
1
--- common/arm/mc-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/mc-a.S
3
@@ -50,7 +50,7 @@ function x264_prefetch_ref_arm
4
     pld         [r3, r1, lsl #1]
5
     pld         [r3, r2]
6
     bx          lr
7
-.endfunc
8
+endfunc
9
 
10
 // void prefetch_fenc( uint8_t *pix_y,  intptr_t stride_y,
11
 //                     uint8_t *pix_uv, intptr_t stride_uv, int mb_x )
12
@@ -76,7 +76,7 @@ function x264_prefetch_fenc_arm
13
     pld         [ip]
14
     pld         [ip, r3]
15
     pop         {pc}
16
-.endfunc
17
+endfunc
18
 
19
 
20
 // void *x264_memcpy_aligned( void *dst, const void *src, size_t n )
21
@@ -85,7 +85,7 @@ function x264_memcpy_aligned_neon
22
     movrel      ip,  memcpy_table
23
     and         r3,  r3,  #0xc
24
     ldr         pc,  [ip, r3]
25
-.endfunc
26
+endfunc
27
 
28
 .macro MEMCPY_ALIGNED srcalign dstalign
29
 function memcpy_aligned_\dstalign\()_\srcalign\()_neon, export=0
30
@@ -127,7 +127,7 @@ function memcpy_aligned_\dstalign\()_\sr
31
     vst1.64     {d0}, [r3,:64]!
32
 .endif
33
     bx          lr
34
-.endfunc
35
+endfunc
36
 .endm
37
 
38
 MEMCPY_ALIGNED 16, 16
39
@@ -156,7 +156,7 @@ memzero_loop:
40
 .endr
41
     bgt         memzero_loop
42
     bx          lr
43
-.endfunc
44
+endfunc
45
 
46
 
47
 // void pixel_avg( uint8_t *dst,  intptr_t dst_stride,
48
@@ -175,7 +175,7 @@ function x264_pixel_avg_\w\()x\h\()_neon
49
     cmp         ip,  #0
50
     bge         x264_pixel_avg_weight_w\w\()_add_add_neon
51
     b           x264_pixel_avg_weight_w\w\()_sub_add_neon     // weight < 0
52
-.endfunc
53
+endfunc
54
 .endm
55
 
56
 AVGH  4, 2
57
@@ -253,7 +253,7 @@ function x264_pixel_avg_weight_w4_\ext\(
58
     vst1.32         {d1[0]}, [r0,:32], r1
59
     bgt             1b
60
     pop             {r4-r6,pc}
61
-.endfunc
62
+endfunc
63
 
64
 function x264_pixel_avg_weight_w8_\ext\()_neon, export=0
65
     load_weights_\ext
66
@@ -277,7 +277,7 @@ function x264_pixel_avg_weight_w8_\ext\(
67
     vst1.64         {d3}, [r0,:64], r1
68
     bgt             1b
69
     pop             {r4-r6,pc}
70
-.endfunc
71
+endfunc
72
 
73
 function x264_pixel_avg_weight_w16_\ext\()_neon, export=0
74
     load_weights_\ext
75
@@ -297,7 +297,7 @@ function x264_pixel_avg_weight_w16_\ext\
76
     vst1.64         {d2-d3}, [r0,:128], r1
77
     bgt             1b
78
     pop             {r4-r6,pc}
79
-.endfunc
80
+endfunc
81
 .endm
82
 
83
 AVG_WEIGHT add_add
84
@@ -316,7 +316,7 @@ function x264_pixel_avg_w4_neon, export=
85
     vst1.32     {d1[0]}, [r0,:32], r1
86
     bgt         x264_pixel_avg_w4_neon
87
     pop         {r4-r6,pc}
88
-.endfunc
89
+endfunc
90
 
91
 function x264_pixel_avg_w8_neon, export=0
92
     subs        lr,  lr,  #4
93
@@ -338,7 +338,7 @@ function x264_pixel_avg_w8_neon, export=
94
     vst1.64     {d3}, [r0,:64], r1
95
     bgt         x264_pixel_avg_w8_neon
96
     pop         {r4-r6,pc}
97
-.endfunc
98
+endfunc
99
 
100
 function x264_pixel_avg_w16_neon, export=0
101
     subs        lr,  lr,  #4
102
@@ -360,7 +360,7 @@ function x264_pixel_avg_w16_neon, export
103
     vst1.64     {d6-d7}, [r0,:128], r1
104
     bgt         x264_pixel_avg_w16_neon
105
     pop         {r4-r6,pc}
106
-.endfunc
107
+endfunc
108
 
109
 
110
 function x264_pixel_avg2_w4_neon
111
@@ -379,7 +379,7 @@ avg2_w4_loop:
112
     vst1.32     {d1[0]}, [r0,:32], r1
113
     bgt         avg2_w4_loop
114
     pop         {pc}
115
-.endfunc
116
+endfunc
117
 
118
 function x264_pixel_avg2_w8_neon
119
     ldr         ip,  [sp, #4]
120
@@ -397,7 +397,7 @@ avg2_w8_loop:
121
     vst1.64     {d1}, [r0,:64], r1
122
     bgt         avg2_w8_loop
123
     pop         {pc}
124
-.endfunc
125
+endfunc
126
 
127
 function x264_pixel_avg2_w16_neon
128
     ldr         ip,  [sp, #4]
129
@@ -415,7 +415,7 @@ avg2_w16_loop:
130
     vst1.64     {d4-d5}, [r0,:128], r1
131
     bgt         avg2_w16_loop
132
     pop         {pc}
133
-.endfunc
134
+endfunc
135
 
136
 function x264_pixel_avg2_w20_neon
137
     ldr         ip,  [sp, #4]
138
@@ -438,7 +438,7 @@ avg2_w20_loop:
139
     vst1.32     {d6[0]},  [r0,:32], r1
140
     bgt         avg2_w20_loop
141
     pop         {pc}
142
-.endfunc
143
+endfunc
144
 
145
 
146
 .macro weight_prologue type
147
@@ -499,7 +499,7 @@ weight20_loop:
148
     vst1.32     {d20[1]},  [r0,:32], r1
149
     bgt         weight20_loop
150
     pop         {r4-r5,pc}
151
-.endfunc
152
+endfunc
153
 
154
 function x264_mc_weight_w16_neon
155
     weight_prologue full
156
@@ -531,7 +531,7 @@ weight16_loop:
157
     vst1.8      {d18-d19}, [r0,:128], r1
158
     bgt         weight16_loop
159
     pop         {r4-r5,pc}
160
-.endfunc
161
+endfunc
162
 
163
 function x264_mc_weight_w8_neon
164
     weight_prologue full
165
@@ -553,7 +553,7 @@ weight8_loop:
166
     vst1.8      {d18}, [r0,:64], r1
167
     bgt         weight8_loop
168
     pop         {r4-r5,pc}
169
-.endfunc
170
+endfunc
171
 
172
 function x264_mc_weight_w4_neon
173
     weight_prologue full
174
@@ -572,7 +572,7 @@ weight4_loop:
175
     vst1.32     {d16[1]}, [r0,:32], r1
176
     bgt         weight4_loop
177
     pop         {r4-r5,pc}
178
-.endfunc
179
+endfunc
180
 
181
 function x264_mc_weight_w20_nodenom_neon
182
     weight_prologue nodenom
183
@@ -609,7 +609,7 @@ weight20_nodenom_loop:
184
     vst1.32     {d20[1]},  [r0,:32], r1
185
     bgt         weight20_nodenom_loop
186
     pop         {r4-r5,pc}
187
-.endfunc
188
+endfunc
189
 
190
 function x264_mc_weight_w16_nodenom_neon
191
     weight_prologue nodenom
192
@@ -637,7 +637,7 @@ weight16_nodenom_loop:
193
     vst1.8      {d18-d19}, [r0,:128], r1
194
     bgt         weight16_nodenom_loop
195
     pop         {r4-r5,pc}
196
-.endfunc
197
+endfunc
198
 
199
 function x264_mc_weight_w8_nodenom_neon
200
     weight_prologue nodenom
201
@@ -657,7 +657,7 @@ weight8_nodenom_loop:
202
     vst1.8      {d17}, [r0,:64], r1
203
     bgt         weight8_nodenom_loop
204
     pop         {r4-r5,pc}
205
-.endfunc
206
+endfunc
207
 
208
 function x264_mc_weight_w4_nodenom_neon
209
     weight_prologue nodenom
210
@@ -675,7 +675,7 @@ weight4_nodenom_loop:
211
     vst1.32     {d16[1]}, [r0,:32], r1
212
     bgt         weight4_nodenom_loop
213
     pop         {r4-r5,pc}
214
-.endfunc
215
+endfunc
216
 
217
 .macro weight_simple_prologue
218
     push        {lr}
219
@@ -699,7 +699,7 @@ weight20_\name\()_loop:
220
     vst1.8      {d19-d21}, [r0,:64], r1
221
     bgt         weight20_\name\()_loop
222
     pop         {pc}
223
-.endfunc
224
+endfunc
225
 
226
 function x264_mc_weight_w16_\name\()_neon
227
     weight_simple_prologue
228
@@ -713,7 +713,7 @@ weight16_\name\()_loop:
229
     vst1.8      {d18-d19}, [r0,:128], r1
230
     bgt         weight16_\name\()_loop
231
     pop         {pc}
232
-.endfunc
233
+endfunc
234
 
235
 function x264_mc_weight_w8_\name\()_neon
236
     weight_simple_prologue
237
@@ -726,7 +726,7 @@ weight8_\name\()_loop:
238
     vst1.8      {d17}, [r0,:64], r1
239
     bgt         weight8_\name\()_loop
240
     pop         {pc}
241
-.endfunc
242
+endfunc
243
 
244
 function x264_mc_weight_w4_\name\()_neon
245
     weight_simple_prologue
246
@@ -739,7 +739,7 @@ weight4_\name\()_loop:
247
     vst1.32     {d17[0]}, [r0,:32], r1
248
     bgt         weight4_\name\()_loop
249
     pop         {pc}
250
-.endfunc
251
+endfunc
252
 .endm
253
 
254
 weight_simple offsetadd, vqadd.u8
255
@@ -761,7 +761,7 @@ copy_w4_loop:
256
     vst1.32     {d3[0]}, [r0,:32], r1
257
     bgt         copy_w4_loop
258
     bx          lr
259
-.endfunc
260
+endfunc
261
 
262
 function x264_mc_copy_w8_neon
263
     ldr         ip,  [sp]
264
@@ -777,7 +777,7 @@ copy_w8_loop:
265
     vst1.32     {d3}, [r0,:64], r1
266
     bgt         copy_w8_loop
267
     bx          lr
268
-.endfunc
269
+endfunc
270
 
271
 function x264_mc_copy_w16_neon
272
     ldr         ip,  [sp]
273
@@ -793,7 +793,7 @@ copy_w16_loop:
274
     vst1.32     {d6-d7}, [r0,:128], r1
275
     bgt         copy_w16_loop
276
     bx          lr
277
-.endfunc
278
+endfunc
279
 
280
 function x264_mc_copy_w16_aligned_neon
281
     ldr         ip,  [sp]
282
@@ -809,7 +809,7 @@ copy_w16_aligned_loop:
283
     vst1.32     {d6-d7}, [r0,:128], r1
284
     bgt         copy_w16_aligned_loop
285
     bx          lr
286
-.endfunc
287
+endfunc
288
 
289
 
290
 // void x264_mc_chroma_neon( uint8_t *dst, intptr_t i_dst_stride,
291
@@ -1159,7 +1159,7 @@ mc_chroma_w8:
292
     vpop            {d8-d11}
293
     pop             {r4-r8, pc}
294
 
295
-.endfunc
296
+endfunc
297
 
298
 
299
 // hpel_filter_v( uint8_t *dst, uint8_t *src, int16_t *buf, intptr_t stride, int width )
300
@@ -1200,7 +1200,7 @@ filter_v_loop:
301
     vst1.64         {d0-d1},   [r0,:128]!
302
     bgt             filter_v_loop
303
     pop             {pc}
304
-.endfunc
305
+endfunc
306
 
307
 // hpel_filter_c( uint8_t *dst, int16_t *buf, int width );
308
 function x264_hpel_filter_c_neon
309
@@ -1285,7 +1285,7 @@ filter_c_loop:
310
     vst1.64         {d30-d31}, [r0,:128]!
311
     bgt             filter_c_loop
312
     bx              lr
313
-.endfunc
314
+endfunc
315
 
316
 // hpel_filter_h( uint8_t *dst, uint8_t *src, int width );
317
 function x264_hpel_filter_h_neon
318
@@ -1372,7 +1372,7 @@ filter_h_loop:
319
     vst1.64         {d6-d7}, [r0,:128]!
320
     bgt             filter_h_loop
321
     bx              lr
322
-.endfunc
323
+endfunc
324
 
325
 
326
 // frame_init_lowres_core( uint8_t *src0, uint8_t *dst0, uint8_t *dsth, uint8_t *dstv,
327
@@ -1464,7 +1464,7 @@ lowres_xloop_end:
328
 
329
     vpop            {d8-d15}
330
     pop             {r4-r10,pc}
331
-.endfunc
332
+endfunc
333
 
334
 function x264_load_deinterleave_chroma_fdec_neon
335
     mov             ip,  #FDEC_STRIDE/2
336
@@ -1477,7 +1477,7 @@ function x264_load_deinterleave_chroma_f
337
     bgt             1b
338
 
339
     bx              lr
340
-.endfunc
341
+endfunc
342
 
343
 function x264_load_deinterleave_chroma_fenc_neon
344
     mov             ip,  #FENC_STRIDE/2
345
@@ -1490,7 +1490,7 @@ function x264_load_deinterleave_chroma_f
346
     bgt             1b
347
 
348
     bx              lr
349
-.endfunc
350
+endfunc
351
 
352
 function x264_plane_copy_deinterleave_neon
353
     push            {r4-r7, lr}
354
@@ -1516,7 +1516,7 @@ block:
355
     bgt             block
356
 
357
     pop             {r4-r7, pc}
358
-.endfunc
359
+endfunc
360
 
361
 function x264_plane_copy_deinterleave_rgb_neon
362
     push            {r4-r8, r10, r11, lr}
363
@@ -1568,7 +1568,7 @@ block4:
364
     bgt             block4
365
 
366
     pop             {r4-r8, r10, r11, pc}
367
-.endfunc
368
+endfunc
369
 
370
 function x264_plane_copy_interleave_neon
371
     push            {r4-r7, lr}
372
@@ -1595,7 +1595,7 @@ blocki:
373
     bgt             blocki
374
 
375
     pop             {r4-r7, pc}
376
-.endfunc
377
+endfunc
378
 
379
 function x264_store_interleave_chroma_neon
380
     push            {lr}
381
@@ -1609,4 +1609,4 @@ function x264_store_interleave_chroma_ne
382
     bgt             1b
383
 
384
     pop             {pc}
385
-.endfunc
386
+endfunc
(-)files/patch-common_arm_pixel-a.S (+275 lines)
Added Link Here
1
--- common/arm/pixel-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/pixel-a.S
3
@@ -29,10 +29,12 @@
4
 .section .rodata
5
 .align 4
6
 
7
-.rept 16 .byte 0xff
8
+.rept 16
9
+        .byte 0xff
10
 .endr
11
 mask_ff:
12
-.rept 16 .byte 0
13
+.rept 16
14
+        .byte 0
15
 .endr
16
 
17
 mask_ac4:
18
@@ -60,7 +62,7 @@ function x264_pixel_sad_4x\h\()_armv6
19
 .endr
20
     usada8      r0, r6, lr, ip
21
     pop         {r4-r6,pc}
22
-.endfunc
23
+endfunc
24
 .endm
25
 
26
 SAD4_ARMV6 4
27
@@ -137,7 +139,7 @@ function x264_pixel_sad\name\()_\w\()x\h
28
     vpaddl.u16  d0,  d0
29
     vmov.u32    r0,  d0[0]
30
     bx          lr
31
-.endfunc
32
+endfunc
33
 .endm
34
 
35
 SAD_FUNC  4,  4
36
@@ -222,7 +224,7 @@ function x264_pixel_sad_aligned_\w\()x\h
37
     vpaddl.u16  d0,  d0
38
     vmov.u32    r0,  d0[0]
39
     bx          lr
40
-.endfunc
41
+endfunc
42
 .endm
43
 
44
 SAD_FUNC_DUAL  8,  4
45
@@ -368,7 +370,7 @@ function x264_pixel_sad_x\x\()_\w\()x\h\
46
     vst1.32     {d0-d1}, [r7]
47
 .endif
48
     pop         {r6-r7,pc}
49
-.endfunc
50
+endfunc
51
 .endm
52
 
53
 SAD_X_FUNC  3, 4,  4
54
@@ -477,7 +479,7 @@ function x264_pixel_ssd_\w\()x\h\()_neon
55
     vpadd.s32   d0, d0, d0
56
     vmov.32     r0, d0[0]
57
     bx          lr
58
-.endfunc
59
+endfunc
60
 .endm
61
 
62
 SSD_FUNC   4, 4
63
@@ -517,7 +519,7 @@ function x264_pixel_var_8x8_neon
64
     vld1.64         {d26}, [r0,:64], r1
65
     VAR_SQR_SUM     q2,  q10,  q15, d26
66
     b               x264_var_end
67
-.endfunc
68
+endfunc
69
 
70
 function x264_pixel_var_8x16_neon
71
     vld1.64         {d16}, [r0,:64], r1
72
@@ -549,7 +551,7 @@ function x264_pixel_var_8x16_neon
73
 2:
74
     VAR_SQR_SUM     q2,  q13,  q15, d22
75
     b               x264_var_end
76
-.endfunc
77
+endfunc
78
 
79
 function x264_pixel_var_16x16_neon
80
     vld1.64         {d16-d17}, [r0,:128], r1
81
@@ -573,7 +575,7 @@ var16_loop:
82
     VAR_SQR_SUM     q1,  q12,  q14, d18
83
     VAR_SQR_SUM     q2,  q13,  q15, d19
84
     bgt             var16_loop
85
-.endfunc
86
+endfunc
87
 
88
 function x264_var_end, export=0
89
     vpaddl.u16      q8,  q14
90
@@ -588,7 +590,7 @@ function x264_var_end, export=0
91
 
92
     vmov            r0,  r1,  d0
93
     bx              lr
94
-.endfunc
95
+endfunc
96
 
97
 .macro DIFF_SUM diff da db lastdiff
98
     vld1.64         {\da}, [r0,:64], r1
99
@@ -633,7 +635,7 @@ function x264_pixel_var2_8x8_neon
100
     mul             r0,  r0,  r0
101
     sub             r0,  r1,  r0,  lsr #6
102
     bx              lr
103
-.endfunc
104
+endfunc
105
 
106
 function x264_pixel_var2_8x16_neon
107
     vld1.64         {d16}, [r0,:64], r1
108
@@ -677,7 +679,7 @@ function x264_pixel_var2_8x16_neon
109
     mul             r0,  r0,  r0
110
     sub             r0,  r1,  r0,  lsr #7
111
     bx              lr
112
-.endfunc
113
+endfunc
114
 
115
 .macro LOAD_DIFF_8x4 q0 q1 q2 q3
116
     vld1.32     {d1}, [r2], r3
117
@@ -714,7 +716,7 @@ function x264_pixel_satd_4x4_neon
118
     HORIZ_ADD   d0,  d0,  d1
119
     vmov.32     r0,  d0[0]
120
     bx          lr
121
-.endfunc
122
+endfunc
123
 
124
 function x264_pixel_satd_4x8_neon
125
     vld1.32     {d1[]},  [r2], r3
126
@@ -741,7 +743,7 @@ function x264_pixel_satd_4x8_neon
127
     vsubl.u8    q3,  d6,  d7
128
     SUMSUB_AB   q10, q11, q2,  q3
129
     b           x264_satd_4x8_8x4_end_neon
130
-.endfunc
131
+endfunc
132
 
133
 function x264_pixel_satd_8x4_neon
134
     vld1.64     {d1}, [r2], r3
135
@@ -758,7 +760,7 @@ function x264_pixel_satd_8x4_neon
136
     vld1.64     {d6}, [r0,:64], r1
137
     vsubl.u8    q3,  d6,  d7
138
     SUMSUB_AB   q10, q11, q2,  q3
139
-.endfunc
140
+endfunc
141
 
142
 function x264_satd_4x8_8x4_end_neon, export=0
143
     vadd.s16    q0,  q8,  q10
144
@@ -785,7 +787,7 @@ function x264_satd_4x8_8x4_end_neon, exp
145
     HORIZ_ADD   d0,  d0,  d1
146
     vmov.32     r0,  d0[0]
147
     bx          lr
148
-.endfunc
149
+endfunc
150
 
151
 function x264_pixel_satd_8x8_neon
152
     mov         ip,  lr
153
@@ -799,7 +801,7 @@ function x264_pixel_satd_8x8_neon
154
     mov         lr,  ip
155
     vmov.32     r0,  d0[0]
156
     bx          lr
157
-.endfunc
158
+endfunc
159
 
160
 function x264_pixel_satd_8x16_neon
161
     vpush       {d8-d11}
162
@@ -821,7 +823,7 @@ function x264_pixel_satd_8x16_neon
163
     mov         lr,  ip
164
     vmov.32     r0,  d0[0]
165
     bx          lr
166
-.endfunc
167
+endfunc
168
 
169
 function x264_satd_8x8_neon, export=0
170
     LOAD_DIFF_8x4 q8,  q9,  q10, q11
171
@@ -841,7 +843,7 @@ function x264_satd_8x8_neon, export=0
172
     SUMSUB_AB   q9,  q11, q1,  q3
173
     vld1.64     {d0}, [r0,:64], r1
174
     vsubl.u8    q15, d0,  d1
175
-.endfunc
176
+endfunc
177
 
178
 // one vertical hadamard pass and two horizontal
179
 function x264_satd_8x4v_8x8h_neon, export=0
180
@@ -870,7 +872,7 @@ function x264_satd_8x4v_8x8h_neon, expor
181
     vmax.s16    q14, q8,  q10
182
     vmax.s16    q15, q9,  q11
183
     bx          lr
184
-.endfunc
185
+endfunc
186
 
187
 function x264_pixel_satd_16x8_neon
188
     vpush       {d8-d11}
189
@@ -892,7 +894,7 @@ function x264_pixel_satd_16x8_neon
190
     mov         lr,  ip
191
     vmov.32     r0,  d0[0]
192
     bx          lr
193
-.endfunc
194
+endfunc
195
 
196
 function x264_pixel_satd_16x16_neon
197
     vpush       {d8-d11}
198
@@ -926,7 +928,7 @@ function x264_pixel_satd_16x16_neon
199
     mov         lr,  ip
200
     vmov.32     r0,  d0[0]
201
     bx          lr
202
-.endfunc
203
+endfunc
204
 
205
 function x264_satd_16x4_neon, export=0
206
     vld1.64     {d2-d3}, [r2], r3
207
@@ -950,7 +952,7 @@ function x264_satd_16x4_neon, export=0
208
     SUMSUB_AB   q2,  q3,  q10, q11
209
     SUMSUB_ABCD q8,  q10, q9,  q11, q0,  q2,  q1,  q3
210
     b           x264_satd_8x4v_8x8h_neon
211
-.endfunc
212
+endfunc
213
 
214
 
215
 function x264_pixel_sa8d_8x8_neon
216
@@ -963,7 +965,7 @@ function x264_pixel_sa8d_8x8_neon
217
     add             r0,  r0,  #1
218
     lsr             r0,  r0,  #1
219
     bx              lr
220
-.endfunc
221
+endfunc
222
 
223
 function x264_pixel_sa8d_16x16_neon
224
     vpush           {d8-d11}
225
@@ -995,7 +997,7 @@ function x264_pixel_sa8d_16x16_neon
226
     add             r0,  r0,  #1
227
     lsr             r0,  r0,  #1
228
     bx              lr
229
-.endfunc
230
+endfunc
231
 
232
 .macro HADAMARD4_V r1, r2, r3, r4, t1, t2, t3, t4
233
     SUMSUB_ABCD \t1, \t2, \t3, \t4, \r1, \r2, \r3, \r4
234
@@ -1058,7 +1060,7 @@ function x264_sa8d_8x8_neon, export=0
235
     vadd.i16        q8,  q8,  q9
236
     vadd.i16        q9,  q10, q11
237
     bx              lr
238
-.endfunc
239
+endfunc
240
 
241
 
242
 .macro HADAMARD_AC w h
243
@@ -1094,7 +1096,7 @@ function x264_pixel_hadamard_ac_\w\()x\h
244
     lsr             r0,  r0,  #1
245
     lsr             r1,  r1,  #2
246
     bx              lr
247
-.endfunc
248
+endfunc
249
 .endm
250
 
251
 HADAMARD_AC  8, 8
252
@@ -1189,7 +1191,7 @@ function x264_hadamard_ac_8x8_neon, expo
253
     vadd.s16        q2,  q2,  q14
254
     vpadal.u16      q5,  q2
255
     bx              lr
256
-.endfunc
257
+endfunc
258
 
259
 
260
 .macro SSIM_ITER n ssa s12 ssb lastssa lasts12 lastssb da db dnext
261
@@ -1243,7 +1245,7 @@ function x264_pixel_ssim_4x4x2_core_neon
262
 
263
     vst4.32     {d0-d3}, [ip]
264
     bx          lr
265
-.endfunc
266
+endfunc
267
 
268
 // FIXME: see about doing 16x16 -> 32 bit multiplies for s1/s2
269
 function x264_pixel_ssim_end4_neon
270
@@ -1314,4 +1316,4 @@ ssim_skip:
271
     vpadd.f32   d0,  d0,  d0
272
     vmov.32     r0,  d0[0]
273
     bx          lr
274
-.endfunc
275
+endfunc
(-)files/patch-common_arm_predict-a.S (+242 lines)
Added Link Here
1
--- common/arm/predict-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/predict-a.S
3
@@ -77,7 +77,7 @@ function x264_predict_4x4_h_armv6
4
     add     ip, ip, ip, lsl #16
5
     str     ip, [r0, #3*FDEC_STRIDE]
6
     bx      lr
7
-.endfunc
8
+endfunc
9
 
10
 function x264_predict_4x4_v_armv6
11
     ldr     r1,  [r0, #0 - 1 * FDEC_STRIDE]
12
@@ -86,7 +86,7 @@ function x264_predict_4x4_v_armv6
13
     str     r1,  [r0, #0 + 2 * FDEC_STRIDE]
14
     str     r1,  [r0, #0 + 3 * FDEC_STRIDE]
15
     bx      lr
16
-.endfunc
17
+endfunc
18
 
19
 function x264_predict_4x4_dc_armv6
20
     mov     ip, #0
21
@@ -109,7 +109,7 @@ function x264_predict_4x4_dc_armv6
22
     str     r1, [r0, #2*FDEC_STRIDE]
23
     str     r1, [r0, #3*FDEC_STRIDE]
24
     bx      lr
25
-.endfunc
26
+endfunc
27
 
28
 function x264_predict_4x4_dc_top_neon
29
     mov         r12, #FDEC_STRIDE
30
@@ -124,7 +124,7 @@ function x264_predict_4x4_dc_top_neon
31
     vst1.32     d1[0], [r0,:32], r12
32
     vst1.32     d1[0], [r0,:32], r12
33
     bx          lr
34
-.endfunc
35
+endfunc
36
 
37
 // return a1 = (a1+2*b1+c1+2)>>2  a2 = (a2+2*b2+c2+2)>>2
38
 .macro PRED4x4_LOWPASS a1 b1 c1 a2 b2 c2 pb_1
39
@@ -167,7 +167,7 @@ function x264_predict_4x4_ddr_armv6
40
     add     r5, r5, r4, lsr #8
41
     str     r5, [r0, #3*FDEC_STRIDE]
42
     pop     {r4-r6,pc}
43
-.endfunc
44
+endfunc
45
 
46
 function x264_predict_4x4_ddl_neon
47
     sub         r0, #FDEC_STRIDE
48
@@ -186,7 +186,7 @@ function x264_predict_4x4_ddl_neon
49
     vst1.32     {d2[0]}, [r0,:32], ip
50
     vst1.32     {d3[0]}, [r0,:32], ip
51
     bx          lr
52
-.endfunc
53
+endfunc
54
 
55
 function x264_predict_8x8_dc_neon
56
     mov     ip, #0
57
@@ -210,7 +210,7 @@ function x264_predict_8x8_dc_neon
58
     vst1.64 {d0}, [r0,:64], ip
59
 .endr
60
     pop    {r4-r5,pc}
61
-.endfunc
62
+endfunc
63
 
64
 function x264_predict_8x8_h_neon
65
     add         r1, r1, #7
66
@@ -233,7 +233,7 @@ function x264_predict_8x8_h_neon
67
     vst1.64     {d6}, [r0,:64], ip
68
     vst1.64     {d7}, [r0,:64], ip
69
     bx          lr
70
-.endfunc
71
+endfunc
72
 
73
 function x264_predict_8x8_v_neon
74
     add         r1, r1, #16
75
@@ -243,7 +243,7 @@ function x264_predict_8x8_v_neon
76
     vst1.8      {d0}, [r0,:64], r12
77
 .endr
78
     bx          lr
79
-.endfunc
80
+endfunc
81
 
82
 function x264_predict_8x8_ddl_neon
83
     add         r1, #16
84
@@ -271,7 +271,7 @@ function x264_predict_8x8_ddl_neon
85
     vst1.8      d2, [r0,:64], r12
86
     vst1.8      d1, [r0,:64], r12
87
     bx          lr
88
-.endfunc
89
+endfunc
90
 
91
 function x264_predict_8x8_ddr_neon
92
     vld1.8      {d0-d3}, [r1,:128]
93
@@ -301,7 +301,7 @@ function x264_predict_8x8_ddr_neon
94
     vst1.8      {d4}, [r0,:64], r12
95
     vst1.8      {d5}, [r0,:64], r12
96
     bx          lr
97
-.endfunc
98
+endfunc
99
 
100
 function x264_predict_8x8_vl_neon
101
     add         r1, #16
102
@@ -332,7 +332,7 @@ function x264_predict_8x8_vl_neon
103
     vst1.8      {d3}, [r0,:64], r12
104
     vst1.8      {d2}, [r0,:64], r12
105
     bx          lr
106
-.endfunc
107
+endfunc
108
 
109
 function x264_predict_8x8_vr_neon
110
     add         r1, #8
111
@@ -364,7 +364,7 @@ function x264_predict_8x8_vr_neon
112
     vst1.8      {d6}, [r0,:64], r12
113
     vst1.8      {d3}, [r0,:64], r12
114
     bx          lr
115
-.endfunc
116
+endfunc
117
 
118
 function x264_predict_8x8_hd_neon
119
     mov         r12, #FDEC_STRIDE
120
@@ -397,7 +397,7 @@ function x264_predict_8x8_hd_neon
121
     vst1.8      {d16}, [r0,:64], r12
122
 
123
     bx          lr
124
-.endfunc
125
+endfunc
126
 
127
 function x264_predict_8x8_hu_neon
128
     mov         r12, #FDEC_STRIDE
129
@@ -430,7 +430,7 @@ function x264_predict_8x8_hu_neon
130
     vst1.8      {d7}, [r0,:64], r12
131
     vst1.8      {d17}, [r0,:64]
132
     bx          lr
133
-.endfunc
134
+endfunc
135
 
136
 function x264_predict_8x8c_dc_top_neon
137
     sub         r2,  r0,  #FDEC_STRIDE
138
@@ -443,7 +443,7 @@ function x264_predict_8x8c_dc_top_neon
139
     vdup.8      d0,  d0[0]
140
     vtrn.32     d0,  d1
141
     b           pred8x8_dc_end
142
-.endfunc
143
+endfunc
144
 
145
 function x264_predict_8x8c_dc_left_neon
146
     mov         r1,  #FDEC_STRIDE
147
@@ -455,7 +455,7 @@ function x264_predict_8x8c_dc_left_neon
148
     vdup.8      d1,  d0[1]
149
     vdup.8      d0,  d0[0]
150
     b           pred8x8_dc_end
151
-.endfunc
152
+endfunc
153
 
154
 function x264_predict_8x8c_dc_neon
155
     sub         r2,  r0,  #FDEC_STRIDE
156
@@ -481,7 +481,7 @@ pred8x8_dc_end:
157
     vst1.8      {d1}, [r2,:64], r1
158
 .endr
159
     bx          lr
160
-.endfunc
161
+endfunc
162
 
163
 function x264_predict_8x8c_h_neon
164
     sub         r1, r0, #1
165
@@ -493,7 +493,7 @@ function x264_predict_8x8c_h_neon
166
     vst1.64     {d2}, [r0,:64], ip
167
 .endr
168
     bx          lr
169
-.endfunc
170
+endfunc
171
 
172
 function x264_predict_8x8c_v_neon
173
     sub         r0, r0, #FDEC_STRIDE
174
@@ -503,7 +503,7 @@ function x264_predict_8x8c_v_neon
175
     vst1.64     {d0}, [r0,:64], ip
176
 .endr
177
     bx          lr
178
-.endfunc
179
+endfunc
180
 
181
 function x264_predict_8x8c_p_neon
182
     sub         r3,  r0,  #FDEC_STRIDE
183
@@ -556,7 +556,7 @@ function x264_predict_8x8c_p_neon
184
     subs        r3,  r3,  #1
185
     bne         1b
186
     bx          lr
187
-.endfunc
188
+endfunc
189
 
190
 
191
 function x264_predict_16x16_dc_top_neon
192
@@ -567,7 +567,7 @@ function x264_predict_16x16_dc_top_neon
193
     vrshrn.u16  d0,  q0,  #4
194
     vdup.8      q0,  d0[0]
195
     b           pred16x16_dc_end
196
-.endfunc
197
+endfunc
198
 
199
 function x264_predict_16x16_dc_left_neon
200
     mov         r1,  #FDEC_STRIDE
201
@@ -578,7 +578,7 @@ function x264_predict_16x16_dc_left_neon
202
     vrshrn.u16  d0,  q0,  #4
203
     vdup.8      q0,  d0[0]
204
     b           pred16x16_dc_end
205
-.endfunc
206
+endfunc
207
 
208
 function x264_predict_16x16_dc_neon
209
     sub         r3, r0, #FDEC_STRIDE
210
@@ -616,7 +616,7 @@ pred16x16_dc_end:
211
     vst1.64     {d0-d1}, [r0,:128], r1
212
 .endr
213
     bx          lr
214
-.endfunc
215
+endfunc
216
 
217
 function x264_predict_16x16_h_neon
218
     sub         r1, r0, #1
219
@@ -630,7 +630,7 @@ function x264_predict_16x16_h_neon
220
     vst1.64     {d2-d3}, [r0,:128], ip
221
 .endr
222
     bx          lr
223
-.endfunc
224
+endfunc
225
 
226
 function x264_predict_16x16_v_neon
227
     sub         r0, r0, #FDEC_STRIDE
228
@@ -640,7 +640,7 @@ function x264_predict_16x16_v_neon
229
     vst1.64     {d0-d1}, [r0,:128], ip
230
 .endr
231
     bx          lr
232
-.endfunc
233
+endfunc
234
 
235
 function x264_predict_16x16_p_neon
236
     sub         r3,  r0,  #FDEC_STRIDE
237
@@ -697,4 +697,4 @@ function x264_predict_16x16_p_neon
238
     subs        r3,  r3,  #1
239
     bne         1b
240
     bx          lr
241
-.endfunc
242
+endfunc
(-)files/patch-common_arm_quant-a.S (+98 lines)
Added Link Here
1
--- common/arm/quant-a.S.orig	2014-08-27 20:45:08 UTC
2
+++ common/arm/quant-a.S
3
@@ -80,7 +80,7 @@ function x264_quant_2x2_dc_neon
4
     vsub.s16    d3,  d3,  d0
5
     vst1.64     {d3}, [r0,:64]
6
     QUANT_END   d3
7
-.endfunc
8
+endfunc
9
 
10
 // quant_4x4_dc( int16_t dct[16], int mf, int bias )
11
 function x264_quant_4x4_dc_neon
12
@@ -92,7 +92,7 @@ function x264_quant_4x4_dc_neon
13
     QUANT_TWO   q0,  q0,  d4,  d5,  d4,  d5,  q0
14
     vorr        d0,  d0,  d1
15
     QUANT_END   d0
16
-.endfunc
17
+endfunc
18
 
19
 // quant_4x4( int16_t dct[16], uint16_t mf[16], uint16_t bias[16] )
20
 function x264_quant_4x4_neon
21
@@ -104,7 +104,7 @@ function x264_quant_4x4_neon
22
     QUANT_TWO   q0,  q1,  d4,  d5,  d6,  d7, q0
23
     vorr        d0,  d0,  d1
24
     QUANT_END   d0
25
-.endfunc
26
+endfunc
27
 
28
 // quant_4x4x4( int16_t dct[4][16], uint16_t mf[16], uint16_t bias[16] )
29
 function x264_quant_4x4x4_neon
30
@@ -145,7 +145,7 @@ function x264_quant_4x4x4_neon
31
     orrne       r0,  #8
32
     vpop        {d8-d15}
33
     bx          lr
34
-.endfunc
35
+endfunc
36
 
37
 // quant_8x8( int16_t dct[64], uint16_t mf[64], uint16_t bias[64] )
38
 function x264_quant_8x8_neon
39
@@ -165,7 +165,7 @@ function x264_quant_8x8_neon
40
 .endr
41
     vorr        d0,  d0,  d1
42
     QUANT_END   d0
43
-.endfunc
44
+endfunc
45
 
46
 .macro DEQUANT_START mf_size offset dc=no
47
     mov         r3,  #0x2b
48
@@ -257,7 +257,7 @@ dequant_\size\()_rshift_loop:
49
     bgt         dequant_\size\()_rshift_loop
50
 .endif
51
     bx          lr
52
-.endfunc
53
+endfunc
54
 .endm
55
 
56
 DEQUANT 4x4, 4
57
@@ -307,7 +307,7 @@ dequant_4x4_dc_rshift:
58
     vmovn.s32   d3,  q13
59
     vst1.16     {d0-d3},   [r0,:128]
60
     bx          lr
61
-.endfunc
62
+endfunc
63
 
64
 
65
 // int coeff_last( int16_t *l )
66
@@ -319,7 +319,7 @@ function x264_coeff_last4_arm
67
     lsrs        r2,  r2,  #16
68
     addne       r0,  r0,  #1
69
     bx          lr
70
-.endfunc
71
+endfunc
72
 
73
 function x264_coeff_last8_arm
74
     ldrd        r2,  r3,  [r0, #8]
75
@@ -333,7 +333,7 @@ function x264_coeff_last8_arm
76
     lsrs        r2,  r2,  #16
77
     addne       r0,  r0,  #1
78
     bx          lr
79
-.endfunc
80
+endfunc
81
 
82
 .macro COEFF_LAST_1x size
83
 function x264_coeff_last\size\()_neon
84
@@ -358,7 +358,7 @@ function x264_coeff_last\size\()_neon
85
     subslt      r0,  r3,  r0,  lsr #2
86
     movlt       r0,  #0
87
     bx          lr
88
-.endfunc
89
+endfunc
90
 .endm
91
 
92
 COEFF_LAST_1x 15
93
@@ -407,4 +407,4 @@ function x264_coeff_last64_neon
94
     subslt      r0,  ip,  r0
95
     movlt       r0,  #0
96
     bx          lr
97
-.endfunc
98
+endfunc
(-)files/patch-configure (-9 / +75 lines)
Lines 1-20 Link Here
1
From 9463ec0004f1bddc49c05ed8e38430a4ce1738fb Mon Sep 17 00:00:00 2001
1
--- configure.orig	2014-08-27 22:45:08.000000000 +0200
2
From: Janne Grunau <janne-x264@jannau.net>
2
+++ configure	2015-01-07 13:42:20.868702616 +0100
3
Date: Sun, 20 Jul 2014 13:40:28 +0200
3
@@ -197,8 +197,9 @@
4
Subject: [PATCH] arm/ppc: use $CC as default assembler
4
 
5
5
 as_check() {
6
--- configure.orig	2014-08-27 20:45:08 UTC
6
     log_check "whether $AS supports $1"
7
+++ configure
7
-    echo "$1" > conftest.asm
8
@@ -648,7 +648,7 @@ case $host_cpu in
8
-    if $AS conftest.asm $ASFLAGS $2 -o conftest.o >conftest.log 2>&1; then
9
+    echo "$1" > conftest$AS_EXT
10
+    as_cmd="$AS conftest$AS_EXT $ASFLAGS $2 -o conftest.o"
11
+    if $as_cmd >conftest.log 2>&1; then
12
         res=$?
13
         log_ok
14
     else
15
@@ -206,12 +207,12 @@
16
         log_fail
17
         log_msg "Failed commandline was:"
18
         log_msg "--------------------------------------------------"
19
-        log_msg "$AS conftest.asm $ASFLAGS $2 -o conftest.o"
20
+        log_msg "$as_cmd"
21
         cat conftest.log >> config.log
22
         log_msg "--------------------------------------------------"
23
         log_msg "Failed program was:"
24
         log_msg "--------------------------------------------------"
25
-        cat conftest.asm >> config.log
26
+        cat conftest$AS_EXT >> config.log
27
         log_msg "--------------------------------------------------"
28
     fi
29
     return $res
30
@@ -302,10 +303,13 @@
31
 cross_prefix=""
32
 
33
 EXE=""
34
+AS_EXT=".S"
35
+NL="
36
+"
37
 
38
 # list of all preprocessor HAVE values we can define
39
 CONFIG_HAVE="MALLOC_H ALTIVEC ALTIVEC_H MMX ARMV6 ARMV6T2 NEON BEOSTHREAD POSIXTHREAD WIN32THREAD THREAD LOG2F SWSCALE \
40
-             LAVF FFMS GPAC AVS GPL VECTOREXT INTERLACED CPU_COUNT OPENCL THP LSMASH X86_INLINE_ASM"
41
+             LAVF FFMS GPAC AVS GPL VECTOREXT INTERLACED CPU_COUNT OPENCL THP LSMASH X86_INLINE_ASM AS_FUNC"
42
 
43
 # parse options
44
 
45
@@ -586,6 +590,7 @@
46
     i*86)
47
         ARCH="X86"
48
         AS="yasm"
49
+        AS_EXT=".asm"
50
         ASFLAGS="$ASFLAGS -O2 -DARCH_X86_64=0 -I\$(SRCPATH)/common/x86/"
51
         if [ $compiler = GNU ]; then
52
             if [[ "$asm" == auto && "$CFLAGS" != *-march* ]]; then
53
@@ -626,6 +631,7 @@
54
     x86_64)
55
         ARCH="X86_64"
56
         AS="yasm"
57
+        AS_EXT=".asm"
58
         ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
59
         [ $compiler = GNU ] && CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
60
         if [ "$SYS" = MACOSX ]; then
61
@@ -648,7 +654,8 @@
9
         ARCH="PPC"
62
         ARCH="PPC"
10
         if [ $asm = auto ] ; then
63
         if [ $asm = auto ] ; then
11
             define HAVE_ALTIVEC
64
             define HAVE_ALTIVEC
12
-            AS="${AS-${cross_prefix}gcc}"
65
-            AS="${AS-${cross_prefix}gcc}"
13
+            AS="${AS-${CC}}"
66
+            AS="${AS-${CC}}"
67
+            AS_EXT=".c"
14
             if [ $SYS = MACOSX ] ; then
68
             if [ $SYS = MACOSX ] ; then
15
                 CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
69
                 CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
16
             else
70
             else
17
@@ -674,7 +674,7 @@ case $host_cpu in
71
@@ -674,7 +681,7 @@
18
                 LDFLAGS="$LDFLAGS -arch armv7"
72
                 LDFLAGS="$LDFLAGS -arch armv7"
19
             fi
73
             fi
20
         else
74
         else
Lines 23-25 Subject: [PATCH] arm/ppc: use $CC as default assembler Link Here
23
         fi
77
         fi
24
         ;;
78
         ;;
25
     s390|s390x)
79
     s390|s390x)
80
@@ -760,6 +767,11 @@
81
     fi
82
 fi
83
 
84
+if [ $asm = auto -a $ARCH = ARM ] ; then
85
+    # check if the assembler supports '.func' (clang 3.5 does not)
86
+    as_check ".func test${NL}.endfunc" && define HAVE_AS_FUNC 1
87
+fi
88
+
89
 [ $asm = no ] && AS=""
90
 [ "x$AS" = x ] && asm="no" || asm="yes"
91
 

Return to bug 196591