From e27ac0f3a8b6436a7530ee5c5c514bfdfac4a558 Mon Sep 17 00:00:00 2001
From: Matthieu Bouron <matthieu.bouron@gmail.com>
Date: Fri, 28 Apr 2017 21:58:55 +0200
Subject: [PATCH] lavc/aarch64/simple_idct: fix iOS build without
gas-preprocessor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Separates macro arguments with commas and passes .4H/.8H as macro
arguments instead of 4H/8H (the later form being interpreted as an
hexadecimal value).
Fixes ticket #6324.
Suggested-by: Martin Storsjö <martin@martin.st>
---
libavcodec/aarch64/simple_idct_neon.S | 74 +++++++++++++++++------------------
1 file changed, 37 insertions(+), 37 deletions(-)
diff --git a/libavcodec/aarch64/simple_idct_neon.S b/libavcodec/aarch64/simple_idct_neon.S
index 52273420f9..92987985d2 100644
|
a
|
b
|
endconst
|
| 61 | 61 | br x10 |
| 62 | 62 | .endm |
| 63 | 63 | |
| 64 | | .macro smull1 a b c |
| | 64 | .macro smull1 a, b, c |
| 65 | 65 | smull \a, \b, \c |
| 66 | 66 | .endm |
| 67 | 67 | |
| 68 | | .macro smlal1 a b c |
| | 68 | .macro smlal1 a, b, c |
| 69 | 69 | smlal \a, \b, \c |
| 70 | 70 | .endm |
| 71 | 71 | |
| 72 | | .macro smlsl1 a b c |
| | 72 | .macro smlsl1 a, b, c |
| 73 | 73 | smlsl \a, \b, \c |
| 74 | 74 | .endm |
| 75 | 75 | |
| 76 | | .macro idct_col4_top y1 y2 y3 y4 i l |
| 77 | | smull\i v7.4S, \y3\().\l, z2 |
| 78 | | smull\i v16.4S, \y3\().\l, z6 |
| 79 | | smull\i v17.4S, \y2\().\l, z1 |
| | 76 | .macro idct_col4_top y1, y2, y3, y4, i, l |
| | 77 | smull\i v7.4S, \y3\l, z1 |
| | 78 | smull\i v16.4S, \y3\l, z6 |
| | 79 | smull\i v17.4S, \y2\l, z1 |
| 80 | 80 | add v19.4S, v23.4S, v7.4S |
| 81 | | smull\i v18.4S, \y2\().\l, z3 |
| | 81 | smull\i v18.4S, \y2\l, z3 |
| 82 | 82 | add v20.4S, v23.4S, v16.4S |
| 83 | | smull\i v5.4S, \y2\().\l, z5 |
| | 83 | smull\i v5.4S, \y2\l, z5 |
| 84 | 84 | sub v21.4S, v23.4S, v16.4S |
| 85 | | smull\i v6.4S, \y2\().\l, z7 |
| | 85 | smull\i v6.4S, \y2\l, z7 |
| 86 | 86 | sub v22.4S, v23.4S, v7.4S |
| 87 | 87 | |
| 88 | | smlal\i v17.4S, \y4\().\l, z3 |
| 89 | | smlsl\i v18.4S, \y4\().\l, z7 |
| 90 | | smlsl\i v5.4S, \y4\().\l, z1 |
| 91 | | smlsl\i v6.4S, \y4\().\l, z5 |
| | 88 | smlal\i v17.4S, \y4\l, z3 |
| | 89 | smlsl\i v18.4S, \y4\l, z7 |
| | 90 | smlsl\i v5.4S, \y4\l, z1 |
| | 91 | smlsl\i v6.4S, \y4\l, z5 |
| 92 | 92 | .endm |
| 93 | 93 | |
| 94 | | .macro idct_row4_neon y1 y2 y3 y4 pass |
| | 94 | .macro idct_row4_neon y1, y2, y3, y4, pass |
| 95 | 95 | ld1 {\y1\().2D-\y2\().2D}, [x2], #32 |
| 96 | 96 | movi v23.4S, #1<<2, lsl #8 |
| 97 | 97 | orr v5.16B, \y1\().16B, \y2\().16B |
| … |
… |
endconst
|
| 101 | 101 | mov x3, v5.D[1] |
| 102 | 102 | smlal v23.4S, \y1\().4H, z4 |
| 103 | 103 | |
| 104 | | idct_col4_top \y1 \y2 \y3 \y4 1 4H |
| | 104 | idct_col4_top \y1, \y2, \y3, \y4, 1, .4H |
| 105 | 105 | |
| 106 | 106 | cmp x3, #0 |
| 107 | 107 | beq \pass\()f |
| … |
… |
endconst
|
| 153 | 153 | trn2 \y4\().4S, v17.4S, v19.4S |
| 154 | 154 | .endm |
| 155 | 155 | |
| 156 | | .macro declare_idct_col4_neon i l |
| | 156 | .macro declare_idct_col4_neon i, l |
| 157 | 157 | function idct_col4_neon\i |
| 158 | 158 | dup v23.4H, z4c |
| 159 | 159 | .if \i == 1 |
| … |
… |
function idct_col4_neon\i
|
| 164 | 164 | .endif |
| 165 | 165 | smull v23.4S, v23.4H, z4 |
| 166 | 166 | |
| 167 | | idct_col4_top v24 v25 v26 v27 \i \l |
| | 167 | idct_col4_top v24, v25, v26, v27, \i, \l |
| 168 | 168 | |
| 169 | 169 | mov x4, v28.D[\i - 1] |
| 170 | 170 | mov x5, v29.D[\i - 1] |
| 171 | 171 | cmp x4, #0 |
| 172 | 172 | beq 1f |
| 173 | 173 | |
| 174 | | smull\i v7.4S, v28.\l, z4 |
| | 174 | smull\i v7.4S, v28\l, z4 |
| 175 | 175 | add v19.4S, v19.4S, v7.4S |
| 176 | 176 | sub v20.4S, v20.4S, v7.4S |
| 177 | 177 | sub v21.4S, v21.4S, v7.4S |
| … |
… |
function idct_col4_neon\i
|
| 181 | 181 | cmp x5, #0 |
| 182 | 182 | beq 2f |
| 183 | 183 | |
| 184 | | smlal\i v17.4S, v29.\l, z5 |
| 185 | | smlsl\i v18.4S, v29.\l, z1 |
| 186 | | smlal\i v5.4S, v29.\l, z7 |
| 187 | | smlal\i v6.4S, v29.\l, z3 |
| | 184 | smlal\i v17.4S, v29\l, z5 |
| | 185 | smlsl\i v18.4S, v29\l, z1 |
| | 186 | smlal\i v5.4S, v29\l, z7 |
| | 187 | smlal\i v6.4S, v29\l, z3 |
| 188 | 188 | |
| 189 | 189 | 2: mov x5, v31.D[\i - 1] |
| 190 | 190 | cmp x4, #0 |
| 191 | 191 | beq 3f |
| 192 | 192 | |
| 193 | | smull\i v7.4S, v30.\l, z6 |
| 194 | | smull\i v16.4S, v30.\l, z2 |
| | 193 | smull\i v7.4S, v30\l, z6 |
| | 194 | smull\i v16.4S, v30\l, z2 |
| 195 | 195 | add v19.4S, v19.4S, v7.4S |
| 196 | 196 | sub v22.4S, v22.4S, v7.4S |
| 197 | 197 | sub v20.4S, v20.4S, v16.4S |
| … |
… |
function idct_col4_neon\i
|
| 200 | 200 | 3: cmp x5, #0 |
| 201 | 201 | beq 4f |
| 202 | 202 | |
| 203 | | smlal\i v17.4S, v31.\l, z7 |
| 204 | | smlsl\i v18.4S, v31.\l, z5 |
| 205 | | smlal\i v5.4S, v31.\l, z3 |
| 206 | | smlsl\i v6.4S, v31.\l, z1 |
| | 203 | smlal\i v17.4S, v31\l, z7 |
| | 204 | smlsl\i v18.4S, v31\l, z5 |
| | 205 | smlal\i v5.4S, v31\l, z3 |
| | 206 | smlsl\i v6.4S, v31\l, z1 |
| 207 | 207 | |
| 208 | 208 | 4: addhn v7.4H, v19.4S, v17.4S |
| 209 | 209 | addhn2 v7.8H, v20.4S, v18.4S |
| … |
… |
function idct_col4_neon\i
|
| 219 | 219 | endfunc |
| 220 | 220 | .endm |
| 221 | 221 | |
| 222 | | declare_idct_col4_neon 1 4H |
| 223 | | declare_idct_col4_neon 2 8H |
| | 222 | declare_idct_col4_neon 1, .4H |
| | 223 | declare_idct_col4_neon 2, .8H |
| 224 | 224 | |
| 225 | 225 | function ff_simple_idct_put_neon, export=1 |
| 226 | 226 | idct_start x2 |
| 227 | 227 | |
| 228 | | idct_row4_neon v24 v25 v26 v27 1 |
| 229 | | idct_row4_neon v28 v29 v30 v31 2 |
| | 228 | idct_row4_neon v24, v25, v26, v27, 1 |
| | 229 | idct_row4_neon v28, v29, v30, v31, 2 |
| 230 | 230 | bl idct_col4_neon1 |
| 231 | 231 | |
| 232 | 232 | sqshrun v1.8B, v7.8H, #COL_SHIFT-16 |
| … |
… |
endfunc
|
| 263 | 263 | function ff_simple_idct_add_neon, export=1 |
| 264 | 264 | idct_start x2 |
| 265 | 265 | |
| 266 | | idct_row4_neon v24 v25 v26 v27 1 |
| 267 | | idct_row4_neon v28 v29 v30 v31 2 |
| | 266 | idct_row4_neon v24, v25, v26, v27, 1 |
| | 267 | idct_row4_neon v28, v29, v30, v31, 2 |
| 268 | 268 | bl idct_col4_neon1 |
| 269 | 269 | |
| 270 | 270 | sshr v1.8H, V7.8H, #COL_SHIFT-16 |
| … |
… |
function ff_simple_idct_neon, export=1
|
| 328 | 328 | idct_start x0 |
| 329 | 329 | |
| 330 | 330 | mov x2, x0 |
| 331 | | idct_row4_neon v24 v25 v26 v27 1 |
| 332 | | idct_row4_neon v28 v29 v30 v31 2 |
| | 331 | idct_row4_neon v24, v25, v26, v27, 1 |
| | 332 | idct_row4_neon v28, v29, v30, v31, 2 |
| 333 | 333 | add x2, x2, #-128 |
| 334 | 334 | bl idct_col4_neon1 |
| 335 | 335 | |