Ticket #6324: 0001-lavc-aarch64-simple_idct-fix-iOS-build-without-gas-p.patch

File 0001-lavc-aarch64-simple_idct-fix-iOS-build-without-gas-p.patch, 6.4 KB (added by mateo, 9 years ago)
  • libavcodec/aarch64/simple_idct_neon.S

    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  
    6161        br              x10
    6262.endm
    6363
    64 .macro smull1 a b c
     64.macro smull1 a, b, c
    6565        smull           \a, \b, \c
    6666.endm
    6767
    68 .macro smlal1 a b c
     68.macro smlal1 a, b, c
    6969        smlal           \a, \b, \c
    7070.endm
    7171
    72 .macro smlsl1 a b c
     72.macro smlsl1 a, b, c
    7373        smlsl           \a, \b, \c
    7474.endm
    7575
    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
    8080        add             v19.4S, v23.4S, v7.4S
    81         smull\i         v18.4S, \y2\().\l, z3
     81        smull\i         v18.4S, \y2\l, z3
    8282        add             v20.4S, v23.4S, v16.4S
    83         smull\i         v5.4S,  \y2\().\l, z5
     83        smull\i         v5.4S,  \y2\l, z5
    8484        sub             v21.4S, v23.4S, v16.4S
    85         smull\i         v6.4S,  \y2\().\l, z7
     85        smull\i         v6.4S,  \y2\l, z7
    8686        sub             v22.4S, v23.4S, v7.4S
    8787
    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
    9292.endm
    9393
    94 .macro idct_row4_neon y1 y2 y3 y4 pass
     94.macro idct_row4_neon y1, y2, y3, y4, pass
    9595        ld1             {\y1\().2D-\y2\().2D}, [x2], #32
    9696        movi            v23.4S, #1<<2, lsl #8
    9797        orr             v5.16B, \y1\().16B, \y2\().16B
    endconst  
    101101        mov             x3, v5.D[1]
    102102        smlal           v23.4S, \y1\().4H, z4
    103103
    104         idct_col4_top   \y1 \y2 \y3 \y4 1 4H
     104        idct_col4_top   \y1, \y2, \y3, \y4, 1, .4H
    105105
    106106        cmp             x3, #0
    107107        beq             \pass\()f
    endconst  
    153153        trn2            \y4\().4S, v17.4S, v19.4S
    154154.endm
    155155
    156 .macro declare_idct_col4_neon i l
     156.macro declare_idct_col4_neon i, l
    157157function idct_col4_neon\i
    158158        dup             v23.4H, z4c
    159159.if \i == 1
    function idct_col4_neon\i  
    164164.endif
    165165        smull           v23.4S, v23.4H, z4
    166166
    167         idct_col4_top   v24 v25 v26 v27 \i \l
     167        idct_col4_top   v24, v25, v26, v27, \i, \l
    168168
    169169        mov             x4, v28.D[\i - 1]
    170170        mov             x5, v29.D[\i - 1]
    171171        cmp             x4, #0
    172172        beq             1f
    173173
    174         smull\i         v7.4S,  v28.\l, z4
     174        smull\i         v7.4S,  v28\l, z4
    175175        add             v19.4S, v19.4S, v7.4S
    176176        sub             v20.4S, v20.4S, v7.4S
    177177        sub             v21.4S, v21.4S, v7.4S
    function idct_col4_neon\i  
    181181        cmp             x5, #0
    182182        beq             2f
    183183
    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
    188188
    1891892:      mov             x5, v31.D[\i - 1]
    190190        cmp             x4, #0
    191191        beq             3f
    192192
    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
    195195        add             v19.4S, v19.4S, v7.4S
    196196        sub             v22.4S, v22.4S, v7.4S
    197197        sub             v20.4S, v20.4S, v16.4S
    function idct_col4_neon\i  
    2002003:      cmp             x5, #0
    201201        beq             4f
    202202
    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
    207207
    2082084:      addhn           v7.4H, v19.4S, v17.4S
    209209        addhn2          v7.8H, v20.4S, v18.4S
    function idct_col4_neon\i  
    219219endfunc
    220220.endm
    221221
    222 declare_idct_col4_neon 1 4H
    223 declare_idct_col4_neon 2 8H
     222declare_idct_col4_neon 1, .4H
     223declare_idct_col4_neon 2, .8H
    224224
    225225function ff_simple_idct_put_neon, export=1
    226226        idct_start      x2
    227227
    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
    230230        bl              idct_col4_neon1
    231231
    232232        sqshrun         v1.8B,  v7.8H, #COL_SHIFT-16
    endfunc  
    263263function ff_simple_idct_add_neon, export=1
    264264        idct_start      x2
    265265
    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
    268268        bl              idct_col4_neon1
    269269
    270270        sshr            v1.8H, V7.8H, #COL_SHIFT-16
    function ff_simple_idct_neon, export=1  
    328328        idct_start      x0
    329329
    330330        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
    333333        add             x2, x2, #-128
    334334        bl              idct_col4_neon1
    335335