| @@ -5,7 +5,7 @@ · 4 unmodified lines |
| 5 | * | 5 | * |
| 6 | * Ported from arm/hevcdsp_idct_neon.S by | 6 | * Ported from arm/hevcdsp_idct_neon.S by |
| 7 | * Copyright (c) 2020 Reimar Döffinger | 7 | * Copyright (c) 2020 Reimar Döffinger |
| 8 | * Copyright (c) 2020 J. Dekker | 8 | * Copyright (c) 2023 J. Dekker <jdek@itanimul.li> |
| 9 | * | 9 | * |
| 10 | * This file is part of FFmpeg. | 10 | * This file is part of FFmpeg. |
| 11 | * | 11 | * |
| @@ -38,13 +38,6 @@ const trans, align=4 · 26 unmodified lines |
| 38 | .short 31, 22, 13, 4 | 38 | .short 31, 22, 13, 4 |
| 39 | endconst | 39 | endconst |
| 40 | | 40 | |
| 41 | .macro clip2 in1, in2, min, max | | |
| 42 | smax \in1, \in1, \min | | |
| 43 | smax \in2, \in2, \min | | |
| 44 | smin \in1, \in1, \max | | |
| 45 | smin \in2, \in2, \max | | |
| 46 | .endm | | |
| 47 | | | |
| 48 | function ff_hevc_add_residual_4x4_8_neon, export=1 | 41 | function ff_hevc_add_residual_4x4_8_neon, export=1 |
| 49 | ld1 {v0.8h-v1.8h}, [x1] | 42 | ld1 {v0.8h-v1.8h}, [x1] |
| 50 | ld1 {v2.s}[0], [x0], x2 | 43 | ld1 {v2.s}[0], [x0], x2 |
| @@ -182,7 +175,7 @@ function hevc_add_residual_4x4_16_neon, export=0 · 131 unmodified lines |
| 182 | ld1 {v3.d}[1], [x12], x2 | 175 | ld1 {v3.d}[1], [x12], x2 |
| 183 | movi v4.8h, #0 | 176 | movi v4.8h, #0 |
| 184 | sqadd v1.8h, v1.8h, v3.8h | 177 | sqadd v1.8h, v1.8h, v3.8h |
| 185 | clip2 v0.8h, v1.8h, v4.8h, v21.8h | 178 | clip v4.8h, v21.8h, v0.8h, v1.8h |
| 186 | st1 {v0.d}[0], [x0], x2 | 179 | st1 {v0.d}[0], [x0], x2 |
| 187 | st1 {v0.d}[1], [x0], x2 | 180 | st1 {v0.d}[1], [x0], x2 |
| 188 | st1 {v1.d}[0], [x0], x2 | 181 | st1 {v1.d}[0], [x0], x2 |
| @@ -201,7 +194,7 @@ function hevc_add_residual_8x8_16_neon, export=0 · 12 unmodified lines |
| 201 | sqadd v0.8h, v0.8h, v2.8h | 194 | sqadd v0.8h, v0.8h, v2.8h |
| 202 | ld1 {v3.8h}, [x12] | 195 | ld1 {v3.8h}, [x12] |
| 203 | sqadd v1.8h, v1.8h, v3.8h | 196 | sqadd v1.8h, v1.8h, v3.8h |
| 204 | clip2 v0.8h, v1.8h, v4.8h, v21.8h | 197 | clip v4.8h, v21.8h, v0.8h, v1.8h |
| 205 | st1 {v0.8h}, [x0], x2 | 198 | st1 {v0.8h}, [x0], x2 |
| 206 | st1 {v1.8h}, [x12], x2 | 199 | st1 {v1.8h}, [x12], x2 |
| 207 | bne 1b | 200 | bne 1b |
| @@ -221,8 +214,7 @@ function hevc_add_residual_16x16_16_neon, export=0 · 13 unmodified lines |
| 221 | sqadd v1.8h, v1.8h, v17.8h | 214 | sqadd v1.8h, v1.8h, v17.8h |
| 222 | sqadd v2.8h, v2.8h, v18.8h | 215 | sqadd v2.8h, v2.8h, v18.8h |
| 223 | sqadd v3.8h, v3.8h, v19.8h | 216 | sqadd v3.8h, v3.8h, v19.8h |
| 224 | clip2 v0.8h, v1.8h, v20.8h, v21.8h | 217 | clip v20.8h, v21.8h, v0.8h, v1.8h, v2.8h, v3.8h |
| 225 | clip2 v2.8h, v3.8h, v20.8h, v21.8h | | |
| 226 | st1 {v0.8h-v1.8h}, [x0], x2 | 218 | st1 {v0.8h-v1.8h}, [x0], x2 |
| 227 | st1 {v2.8h-v3.8h}, [x12], x2 | 219 | st1 {v2.8h-v3.8h}, [x12], x2 |
| 228 | bne 1b | 220 | bne 1b |
| @@ -239,8 +231,7 @@ function hevc_add_residual_32x32_16_neon, export=0 · 10 unmodified lines |
| 239 | sqadd v1.8h, v1.8h, v17.8h | 231 | sqadd v1.8h, v1.8h, v17.8h |
| 240 | sqadd v2.8h, v2.8h, v18.8h | 232 | sqadd v2.8h, v2.8h, v18.8h |
| 241 | sqadd v3.8h, v3.8h, v19.8h | 233 | sqadd v3.8h, v3.8h, v19.8h |
| 242 | clip2 v0.8h, v1.8h, v20.8h, v21.8h | 234 | clip v20.8h, v21.8h, v0.8h, v1.8h, v2.8h, v3.8h |
| 243 | clip2 v2.8h, v3.8h, v20.8h, v21.8h | | |
| 244 | st1 {v0.8h-v3.8h}, [x0], x2 | 235 | st1 {v0.8h-v3.8h}, [x0], x2 |
| 245 | bne 1b | 236 | bne 1b |
| 246 | ret | 237 | ret |