Commit fe793f50 authored by Rico Tzschichholz's avatar Rico Tzschichholz

New upstream version 0.155.2917+git0a84d98

parent e80e4ac5
This diff is collapsed.
/*****************************************************************************
* asm-offsets.c: check asm offsets for aarch64
*****************************************************************************
* Copyright (C) 2014-2017 x264 project
* Copyright (C) 2014-2018 x264 project
*
* Authors: Janne Grunau <janne-x264@jannau.net>
*
......
/*****************************************************************************
* asm-offsets.h: asm offsets for aarch64
*****************************************************************************
* Copyright (C) 2014-2017 x264 project
* Copyright (C) 2014-2018 x264 project
*
* Authors: Janne Grunau <janne-x264@jannau.net>
*
......
/*****************************************************************************
* asm.S: AArch64 utility macros
*****************************************************************************
* Copyright (C) 2008-2017 x264 project
* Copyright (C) 2008-2018 x264 project
*
* Authors: Mans Rullgard <mans@mansr.com>
* David Conrad <lessen42@gmail.com>
......@@ -27,12 +27,27 @@
#include "config.h"
#define GLUE(a, b) a ## b
#define JOIN(a, b) GLUE(a, b)
#ifdef PREFIX
# define EXTERN_ASM _
# define BASE _x264_
# define SYM_PREFIX _
#else
# define BASE x264_
# define SYM_PREFIX
#endif
#ifdef BIT_DEPTH
# define EXTERN_ASM JOIN(JOIN(BASE, BIT_DEPTH), _)
#else
# define EXTERN_ASM
# define EXTERN_ASM BASE
#endif
#define X(s) JOIN(EXTERN_ASM, s)
#define X264(s) JOIN(BASE, s)
#define EXT(s) JOIN(SYM_PREFIX, s)
#ifdef __ELF__
# define ELF
#else
......@@ -53,7 +68,11 @@
.macro function name, export=0, align=2
.macro endfunc
.if \export
ELF .size EXTERN_ASM\name, . - EXTERN_ASM\name
.else
ELF .size \name, . - \name
.endif
FUNC .endfunc
.purgem endfunc
.endm
......@@ -94,10 +113,6 @@ MACH .const_data
#endif
.endm
#define GLUE(a, b) a ## b
#define JOIN(a, b) GLUE(a, b)
#define X(s) JOIN(EXTERN_ASM, s)
#define FDEC_STRIDE 32
#define FENC_STRIDE 16
......
/*****************************************************************************
* bitstream-a.S: aarch64 bitstream functions
*****************************************************************************
* Copyright (C) 2014-2017 x264 project
* Copyright (C) 2014-2018 x264 project
*
* Authors: Janne Grunau <janne-x264@jannau.net>
*
......@@ -25,7 +25,7 @@
#include "asm.S"
function x264_nal_escape_neon, export=1
function nal_escape_neon, export=1
movi v0.16b, #0xff
movi v4.16b, #4
mov w3, #3
......
/*****************************************************************************
* bitstream.h: aarch64 bitstream functions
*****************************************************************************
* Copyright (C) 2017-2018 x264 project
*
* Authors: Anton Mitrofanov <BugMaster@narod.ru>
*
* 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 02111, USA.
*
* This program is also available under a commercial proprietary license.
* For more information, contact us at licensing@x264.com.
*****************************************************************************/
#ifndef X264_AARCH64_BITSTREAM_H
#define X264_AARCH64_BITSTREAM_H
#define x264_nal_escape_neon x264_template(nal_escape_neon)
uint8_t *x264_nal_escape_neon( uint8_t *dst, uint8_t *src, uint8_t *end );
#endif
/*****************************************************************************
* cabac-a.S: aarch64 cabac
*****************************************************************************
* Copyright (C) 2014-2017 x264 project
* Copyright (C) 2014-2018 x264 project
*
* Authors: Janne Grunau <janne-x264@jannau.net>
*
......@@ -29,9 +29,9 @@
// w11 holds x264_cabac_t.i_low
// w12 holds x264_cabac_t.i_range
function x264_cabac_encode_decision_asm, export=1
movrel x8, X(x264_cabac_range_lps)
movrel x9, X(x264_cabac_transition)
function cabac_encode_decision_asm, export=1
movrel x8, X264(cabac_range_lps)
movrel x9, X264(cabac_transition)
add w10, w1, #CABAC_STATE
ldrb w3, [x0, x10] // i_state
ldr w12, [x0, #CABAC_I_RANGE]
......@@ -82,10 +82,10 @@ cabac_putbyte:
1:
ldr x7, [x0, #CABAC_P]
asr w5, w4, #8 // carry
ldrb w8, [x7, #-1]
ldurb w8, [x7, #-1]
add w8, w8, w5
sub w5, w5, #1
strb w8, [x7, #-1]
sturb w8, [x7, #-1]
cbz w6, 3f
2:
subs w6, w6, #1
......@@ -101,7 +101,7 @@ cabac_putbyte:
ret
endfunc
function x264_cabac_encode_bypass_asm, export=1
function cabac_encode_bypass_asm, export=1
ldr w12, [x0, #CABAC_I_RANGE]
ldr w11, [x0, #CABAC_I_LOW]
ldr w2, [x0, #CABAC_I_QUEUE]
......@@ -114,7 +114,7 @@ function x264_cabac_encode_bypass_asm, export=1
ret
endfunc
function x264_cabac_encode_terminal_asm, export=1
function cabac_encode_terminal_asm, export=1
ldr w12, [x0, #CABAC_I_RANGE]
ldr w11, [x0, #CABAC_I_LOW]
sub w12, w12, #2
......
/****************************************************************************
* dct-a.S: aarch64 transform and zigzag
*****************************************************************************
* Copyright (C) 2009-2017 x264 project
* Copyright (C) 2009-2018 x264 project
*
* Authors: David Conrad <lessen42@gmail.com>
* Janne Grunau <janne-x264@jannau.net>
......@@ -79,7 +79,7 @@ endconst
.endm
function x264_dct4x4dc_neon, export=1
function dct4x4dc_neon, export=1
ld1 {v0.4h,v1.4h,v2.4h,v3.4h}, [x0]
movi v31.4h, #1
SUMSUB_AB v4.4h, v5.4h, v0.4h, v1.4h
......@@ -102,7 +102,7 @@ function x264_dct4x4dc_neon, export=1
ret
endfunc
function x264_idct4x4dc_neon, export=1
function idct4x4dc_neon, export=1
ld1 {v0.4h,v1.4h,v2.4h,v3.4h}, [x0]
SUMSUB_AB v4.4h, v5.4h, v0.4h, v1.4h
SUMSUB_AB v6.4h, v7.4h, v2.4h, v3.4h
......@@ -131,7 +131,7 @@ endfunc
sub \v3, \v7, \v5
.endm
function x264_sub4x4_dct_neon, export=1
function sub4x4_dct_neon, export=1
mov x3, #FENC_STRIDE
mov x4, #FDEC_STRIDE
ld1 {v0.s}[0], [x1], x3
......@@ -154,7 +154,7 @@ function x264_sub4x4_dct_neon, export=1
ret
endfunc
function x264_sub8x4_dct_neon
function sub8x4_dct_neon
ld1 {v0.8b}, [x1], x3
ld1 {v1.8b}, [x2], x4
usubl v16.8h, v0.8b, v1.8b
......@@ -193,34 +193,34 @@ function x264_sub8x4_dct_neon
ret
endfunc
function x264_sub8x8_dct_neon, export=1
function sub8x8_dct_neon, export=1
mov x5, x30
mov x3, #FENC_STRIDE
mov x4, #FDEC_STRIDE
bl x264_sub8x4_dct_neon
bl sub8x4_dct_neon
mov x30, x5
b x264_sub8x4_dct_neon
b sub8x4_dct_neon
endfunc
function x264_sub16x16_dct_neon, export=1
function sub16x16_dct_neon, export=1
mov x5, x30
mov x3, #FENC_STRIDE
mov x4, #FDEC_STRIDE
bl x264_sub8x4_dct_neon
bl x264_sub8x4_dct_neon
bl sub8x4_dct_neon
bl sub8x4_dct_neon
sub x1, x1, #8*FENC_STRIDE-8
sub x2, x2, #8*FDEC_STRIDE-8
bl x264_sub8x4_dct_neon
bl x264_sub8x4_dct_neon
bl sub8x4_dct_neon
bl sub8x4_dct_neon
sub x1, x1, #8
sub x2, x2, #8
bl x264_sub8x4_dct_neon
bl x264_sub8x4_dct_neon
bl sub8x4_dct_neon
bl sub8x4_dct_neon
sub x1, x1, #8*FENC_STRIDE-8
sub x2, x2, #8*FDEC_STRIDE-8
bl x264_sub8x4_dct_neon
bl sub8x4_dct_neon
mov x30, x5
b x264_sub8x4_dct_neon
b sub8x4_dct_neon
endfunc
......@@ -255,7 +255,7 @@ endfunc
SUMSUB_SHR2 2, v3.8h, v5.8h, v30.8h, v29.8h, v20.8h, v21.8h
.endm
function x264_sub8x8_dct8_neon, export=1
function sub8x8_dct8_neon, export=1
mov x3, #FENC_STRIDE
mov x4, #FDEC_STRIDE
ld1 {v16.8b}, [x1], x3
......@@ -292,19 +292,19 @@ function x264_sub8x8_dct8_neon, export=1
ret
endfunc
function x264_sub16x16_dct8_neon, export=1
function sub16x16_dct8_neon, export=1
mov x7, x30
bl X(x264_sub8x8_dct8_neon)
bl X(sub8x8_dct8_neon)
sub x1, x1, #FENC_STRIDE*8 - 8
sub x2, x2, #FDEC_STRIDE*8 - 8
bl X(x264_sub8x8_dct8_neon)
bl X(sub8x8_dct8_neon)
sub x1, x1, #8
sub x2, x2, #8
bl X(x264_sub8x8_dct8_neon)
bl X(sub8x8_dct8_neon)
mov x30, x7
sub x1, x1, #FENC_STRIDE*8 - 8
sub x2, x2, #FDEC_STRIDE*8 - 8
b X(x264_sub8x8_dct8_neon)
b X(sub8x8_dct8_neon)
endfunc
......@@ -317,7 +317,7 @@ endfunc
add \d6, \d6, \d1
.endm
function x264_add4x4_idct_neon, export=1
function add4x4_idct_neon, export=1
mov x2, #FDEC_STRIDE
ld1 {v0.4h,v1.4h,v2.4h,v3.4h}, [x1]
......@@ -357,7 +357,7 @@ function x264_add4x4_idct_neon, export=1
ret
endfunc
function x264_add8x4_idct_neon, export=1
function add8x4_idct_neon, export=1
ld1 {v0.8h,v1.8h}, [x1], #32
ld1 {v2.8h,v3.8h}, [x1], #32
transpose v20.2d, v21.2d, v0.2d, v2.2d
......@@ -398,29 +398,29 @@ function x264_add8x4_idct_neon, export=1
ret
endfunc
function x264_add8x8_idct_neon, export=1
function add8x8_idct_neon, export=1
mov x2, #FDEC_STRIDE
mov x5, x30
bl X(x264_add8x4_idct_neon)
bl X(add8x4_idct_neon)
mov x30, x5
b X(x264_add8x4_idct_neon)
b X(add8x4_idct_neon)
endfunc
function x264_add16x16_idct_neon, export=1
function add16x16_idct_neon, export=1
mov x2, #FDEC_STRIDE
mov x5, x30
bl X(x264_add8x4_idct_neon)
bl X(x264_add8x4_idct_neon)
bl X(add8x4_idct_neon)
bl X(add8x4_idct_neon)
sub x0, x0, #8*FDEC_STRIDE-8
bl X(x264_add8x4_idct_neon)
bl X(x264_add8x4_idct_neon)
bl X(add8x4_idct_neon)
bl X(add8x4_idct_neon)
sub x0, x0, #8
bl X(x264_add8x4_idct_neon)
bl X(x264_add8x4_idct_neon)
bl X(add8x4_idct_neon)
bl X(add8x4_idct_neon)
sub x0, x0, #8*FDEC_STRIDE-8
bl X(x264_add8x4_idct_neon)
bl X(add8x4_idct_neon)
mov x30, x5
b X(x264_add8x4_idct_neon)
b X(add8x4_idct_neon)
endfunc
.macro IDCT8_1D type
......@@ -446,7 +446,7 @@ endfunc
SUMSUB_AB v19.8h, v20.8h, v2.8h, v20.8h
.endm
function x264_add8x8_idct8_neon, export=1
function add8x8_idct8_neon, export=1
mov x2, #FDEC_STRIDE
ld1 {v16.8h,v17.8h}, [x1], #32
ld1 {v18.8h,v19.8h}, [x1], #32
......@@ -503,19 +503,19 @@ function x264_add8x8_idct8_neon, export=1
ret
endfunc
function x264_add16x16_idct8_neon, export=1
function add16x16_idct8_neon, export=1
mov x7, x30
bl X(x264_add8x8_idct8_neon)
bl X(add8x8_idct8_neon)
sub x0, x0, #8*FDEC_STRIDE-8
bl X(x264_add8x8_idct8_neon)
bl X(add8x8_idct8_neon)
sub x0, x0, #8
bl X(x264_add8x8_idct8_neon)
bl X(add8x8_idct8_neon)
sub x0, x0, #8*FDEC_STRIDE-8
mov x30, x7
b X(x264_add8x8_idct8_neon)
b X(add8x8_idct8_neon)
endfunc
function x264_add8x8_idct_dc_neon, export=1
function add8x8_idct_dc_neon, export=1
mov x2, #FDEC_STRIDE
ld1 {v16.4h}, [x1]
ld1 {v0.8b}, [x0], x2
......@@ -605,7 +605,7 @@ endfunc
st1 {v7.16b}, [x2], x3
.endm
function x264_add16x16_idct_dc_neon, export=1
function add16x16_idct_dc_neon, export=1
mov x2, x0
mov x3, #FDEC_STRIDE
......@@ -640,7 +640,7 @@ endfunc
add \dst\().8h, \dst\().8h, \t3\().8h
.endm
function x264_sub8x8_dct_dc_neon, export=1
function sub8x8_dct_dc_neon, export=1
mov x3, #FENC_STRIDE
mov x4, #FDEC_STRIDE
......@@ -660,7 +660,7 @@ function x264_sub8x8_dct_dc_neon, export=1
ret
endfunc
function x264_sub8x16_dct_dc_neon, export=1
function sub8x16_dct_dc_neon, export=1
mov x3, #FENC_STRIDE
mov x4, #FDEC_STRIDE
sub4x4x2_dct_dc v0, v16, v17, v18, v19, v20, v21, v22, v23
......@@ -689,7 +689,7 @@ function x264_sub8x16_dct_dc_neon, export=1
ret
endfunc
function x264_zigzag_interleave_8x8_cavlc_neon, export=1
function zigzag_interleave_8x8_cavlc_neon, export=1
mov x3, #7
movi v31.4s, #1
ld4 {v0.8h,v1.8h,v2.8h,v3.8h}, [x1], #64
......@@ -718,7 +718,7 @@ function x264_zigzag_interleave_8x8_cavlc_neon, export=1
ret
endfunc
function x264_zigzag_scan_4x4_frame_neon, export=1
function zigzag_scan_4x4_frame_neon, export=1
movrel x2, scan4x4_frame
ld1 {v0.16b,v1.16b}, [x1]
ld1 {v16.16b,v17.16b}, [x2]
......@@ -729,7 +729,7 @@ function x264_zigzag_scan_4x4_frame_neon, export=1
endfunc
.macro zigzag_sub_4x4 f ac
function x264_zigzag_sub_4x4\ac\()_\f\()_neon, export=1
function zigzag_sub_4x4\ac\()_\f\()_neon, export=1
mov x9, #FENC_STRIDE
mov x4, #FDEC_STRIDE
movrel x5, sub4x4_\f
......@@ -772,7 +772,7 @@ zigzag_sub_4x4 field, ac
zigzag_sub_4x4 frame
zigzag_sub_4x4 frame, ac
function x264_zigzag_scan_4x4_field_neon, export=1
function zigzag_scan_4x4_field_neon, export=1
movrel x2, scan4x4_field
ld1 {v0.8h,v1.8h}, [x1]
ld1 {v16.16b}, [x2]
......@@ -781,7 +781,7 @@ function x264_zigzag_scan_4x4_field_neon, export=1
ret
endfunc
function x264_zigzag_scan_8x8_frame_neon, export=1
function zigzag_scan_8x8_frame_neon, export=1
movrel x2, scan8x8_frame
ld1 {v0.8h,v1.8h}, [x1], #32
ld1 {v2.8h,v3.8h}, [x1], #32
......@@ -841,7 +841,7 @@ const scan8x8_frame, align=5
.byte T(7,5), T(7,6), T(6,7), T(7,7)
endconst
function x264_zigzag_scan_8x8_field_neon, export=1
function zigzag_scan_8x8_field_neon, export=1
movrel x2, scan8x8_field
ld1 {v0.8h,v1.8h}, [x1], #32
ld1 {v2.8h,v3.8h}, [x1], #32
......@@ -868,7 +868,7 @@ function x264_zigzag_scan_8x8_field_neon, export=1
endfunc
.macro zigzag_sub8x8 f
function x264_zigzag_sub_8x8_\f\()_neon, export=1
function zigzag_sub_8x8_\f\()_neon, export=1
movrel x4, sub8x8_\f
mov x5, #FENC_STRIDE
mov x6, #FDEC_STRIDE
......
/*****************************************************************************
* dct.h: aarch64 transform and zigzag
*****************************************************************************
* Copyright (C) 2009-2017 x264 project
* Copyright (C) 2009-2018 x264 project
*
* Authors: David Conrad <lessen42@gmail.com>
* Janne Grunau <janne-x264@jannau.net>
......@@ -27,41 +27,68 @@
#ifndef X264_AARCH64_DCT_H
#define X264_AARCH64_DCT_H
#define x264_dct4x4dc_neon x264_template(dct4x4dc_neon)
void x264_dct4x4dc_neon( int16_t d[16] );
#define x264_idct4x4dc_neon x264_template(idct4x4dc_neon)
void x264_idct4x4dc_neon( int16_t d[16] );
#define x264_sub4x4_dct_neon x264_template(sub4x4_dct_neon)
void x264_sub4x4_dct_neon( int16_t dct[16], uint8_t *pix1, uint8_t *pix2 );
#define x264_sub8x8_dct_neon x264_template(sub8x8_dct_neon)
void x264_sub8x8_dct_neon( int16_t dct[4][16], uint8_t *pix1, uint8_t *pix2 );
#define x264_sub16x16_dct_neon x264_template(sub16x16_dct_neon)
void x264_sub16x16_dct_neon( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
#define x264_add4x4_idct_neon x264_template(add4x4_idct_neon)
void x264_add4x4_idct_neon( uint8_t *p_dst, int16_t dct[16] );
#define x264_add8x8_idct_neon x264_template(add8x8_idct_neon)
void x264_add8x8_idct_neon( uint8_t *p_dst, int16_t dct[4][16] );
#define x264_add16x16_idct_neon x264_template(add16x16_idct_neon)
void x264_add16x16_idct_neon( uint8_t *p_dst, int16_t dct[16][16] );
#define x264_add8x8_idct_dc_neon x264_template(add8x8_idct_dc_neon)
void x264_add8x8_idct_dc_neon( uint8_t *p_dst, int16_t dct[4] );
#define x264_add16x16_idct_dc_neon x264_template(add16x16_idct_dc_neon)
void x264_add16x16_idct_dc_neon( uint8_t *p_dst, int16_t dct[16] );
#define x264_sub8x8_dct_dc_neon x264_template(sub8x8_dct_dc_neon)
void x264_sub8x8_dct_dc_neon( int16_t dct[4], uint8_t *pix1, uint8_t *pix2 );
#define x264_sub8x16_dct_dc_neon x264_template(sub8x16_dct_dc_neon)
void x264_sub8x16_dct_dc_neon( int16_t dct[8], uint8_t *pix1, uint8_t *pix2 );
#define x264_sub8x8_dct8_neon x264_template(sub8x8_dct8_neon)
void x264_sub8x8_dct8_neon( int16_t dct[64], uint8_t *pix1, uint8_t *pix2 );
#define x264_sub16x16_dct8_neon x264_template(sub16x16_dct8_neon)
void x264_sub16x16_dct8_neon( int16_t dct[4][64], uint8_t *pix1, uint8_t *pix2 );
#define x264_add8x8_idct8_neon x264_template(add8x8_idct8_neon)
void x264_add8x8_idct8_neon( uint8_t *p_dst, int16_t dct[64] );
#define x264_add16x16_idct8_neon x264_template(add16x16_idct8_neon)
void x264_add16x16_idct8_neon( uint8_t *p_dst, int16_t dct[4][64] );
#define x264_zigzag_scan_4x4_frame_neon x264_template(zigzag_scan_4x4_frame_neon)
void x264_zigzag_scan_4x4_frame_neon( int16_t level[16], int16_t dct[16] );
#define x264_zigzag_scan_4x4_field_neon x264_template(zigzag_scan_4x4_field_neon)
void x264_zigzag_scan_4x4_field_neon( int16_t level[16], int16_t dct[16] );
#define x264_zigzag_scan_8x8_frame_neon x264_template(zigzag_scan_8x8_frame_neon)
void x264_zigzag_scan_8x8_frame_neon( int16_t level[64], int16_t dct[64] );
#define x264_zigzag_scan_8x8_field_neon x264_template(zigzag_scan_8x8_field_neon)
void x264_zigzag_scan_8x8_field_neon( int16_t level[64], int16_t dct[64] );
#define x264_zigzag_sub_4x4_field_neon x264_template(zigzag_sub_4x4_field_neon)
int x264_zigzag_sub_4x4_field_neon( dctcoef level[16], const pixel *p_src, pixel *p_dst );
#define x264_zigzag_sub_4x4ac_field_neon x264_template(zigzag_sub_4x4ac_field_neon)
int x264_zigzag_sub_4x4ac_field_neon( dctcoef level[16], const pixel *p_src, pixel *p_dst, dctcoef *dc );
#define x264_zigzag_sub_4x4_frame_neon x264_template(zigzag_sub_4x4_frame_neon)
int x264_zigzag_sub_4x4_frame_neon( dctcoef level[16], const pixel *p_src, pixel *p_dst );
#define x264_zigzag_sub_4x4ac_frame_neon x264_template(zigzag_sub_4x4ac_frame_neon)
int x264_zigzag_sub_4x4ac_frame_neon( dctcoef level[16], const pixel *p_src, pixel *p_dst, dctcoef *dc );
#define x264_zigzag_sub_8x8_field_neon x264_template(zigzag_sub_8x8_field_neon)
int x264_zigzag_sub_8x8_field_neon( dctcoef level[16], const pixel *p_src, pixel *p_dst );
#define x264_zigzag_sub_8x8_frame_neon x264_template(zigzag_sub_8x8_frame_neon)
int x264_zigzag_sub_8x8_frame_neon( dctcoef level[16], const pixel *p_src, pixel *p_dst );
#define x264_zigzag_interleave_8x8_cavlc_neon x264_template(zigzag_interleave_8x8_cavlc_neon)
void x264_zigzag_interleave_8x8_cavlc_neon( dctcoef *dst, dctcoef *src, uint8_t *nnz );
#endif
/*****************************************************************************
* deblock.S: aarch64 deblocking
*****************************************************************************
* Copyright (C) 2009-2017 x264 project
* Copyright (C) 2009-2018 x264 project
*
* Authors: Mans Rullgard <mans@mansr.com>
* Janne Grunau <janne-x264@jannau.net>
......@@ -108,7 +108,7 @@
sqxtun2 v0.16b, v24.8h
.endm
function x264_deblock_v_luma_neon, export=1
function deblock_v_luma_neon, export=1
h264_loop_filter_start
ld1 {v0.16b}, [x0], x1
......@@ -131,7 +131,7 @@ function x264_deblock_v_luma_neon, export=1
ret
endfunc
function x264_deblock_h_luma_neon, export=1
function deblock_h_luma_neon, export=1
h264_loop_filter_start
sub x0, x0, #4
......@@ -302,7 +302,7 @@ endfunc
bit v2.16b, v26.16b, v18.16b // q2'_2
.endm
function x264_deblock_v_luma_intra_neon, export=1
function deblock_v_luma_intra_neon, export=1
h264_loop_filter_start_intra
ld1 {v0.16b}, [x0], x1 // q0
......@@ -328,7 +328,7 @@ function x264_deblock_v_luma_intra_neon, export=1
ret
endfunc
function x264_deblock_h_luma_intra_neon, export=1
function deblock_h_luma_intra_neon, export=1
h264_loop_filter_start_intra
sub x0, x0, #4
......@@ -421,7 +421,7 @@ endfunc
sqxtun2 v0.16b, v23.8h
.endm
function x264_deblock_v_chroma_neon, export=1
function deblock_v_chroma_neon, export=1
h264_loop_filter_start
sub x0, x0, x1, lsl #1
......@@ -439,7 +439,7 @@ function x264_deblock_v_chroma_neon, export=1
ret
endfunc
function x264_deblock_h_chroma_neon, export=1
function deblock_h_chroma_neon, export=1
h264_loop_filter_start
sub x0, x0, #4
......@@ -472,7 +472,7 @@ deblock_h_chroma:
ret
endfunc
function x264_deblock_h_chroma_422_neon, export=1
function deblock_h_chroma_422_neon, export=1
add x5, x0, x1
sub x0, x0, #4
add x1, x1, x1
......@@ -516,7 +516,7 @@ endfunc
sqxtun v17.8b, v22.8h
.endm
function x264_deblock_h_chroma_mbaff_neon, export=1
function deblock_h_chroma_mbaff_neon, export=1
h264_loop_filter_start
sub x4, x0, #4
......@@ -575,7 +575,7 @@ endfunc
bit v17.16b, v25.16b, v26.16b
.endm
function x264_deblock_v_chroma_intra_neon, export=1
function deblock_v_chroma_intra_neon, export=1
h264_loop_filter_start_intra
sub x0, x0, x1, lsl #1
......@@ -593,7 +593,7 @@ function x264_deblock_v_chroma_intra_neon, export=1
ret
endfunc
function x264_deblock_h_chroma_intra_mbaff_neon, export=1
function deblock_h_chroma_intra_mbaff_neon, export=1
h264_loop_filter_start_intra
sub x4, x0, #4
......@@ -615,7 +615,7 @@ function x264_deblock_h_chroma_intra_mbaff_neon, export=1
ret
endfunc
function x264_deblock_h_chroma_intra_neon, export=1
function deblock_h_chroma_intra_neon, export=1
h264_loop_filter_start_intra
sub x4, x0, #4
......@@ -645,7 +645,7 @@ function x264_deblock_h_chroma_intra_neon, export=1
ret
endfunc
function x264_deblock_h_chroma_422_intra_neon, export=1
function deblock_h_chroma_422_intra_neon, export=1
h264_loop_filter_start_intra
sub x4, x0, #4
......@@ -697,12 +697,12 @@ function x264_deblock_h_chroma_422_intra_neon, export=1
ret
endfunc
//static void deblock_strength_c( uint8_t nnz[X264_SCAN8_SIZE],
// int8_t ref[2][X264_SCAN8_LUMA_SIZE],
// int16_t mv[2][X264_SCAN8_LUMA_SIZE][2],
// uint8_t bs[2][8][4], int mvy_limit,
// int bframe )
function x264_deblock_strength_neon, export=1
// void deblock_strength( uint8_t nnz[X264_SCAN8_SIZE],
// int8_t ref[2][X264_SCAN8_LUMA_SIZE],
// int16_t mv[2][X264_SCAN8_LUMA_SIZE][2],
// uint8_t bs[2][8][4], int mvy_limit,
// int bframe )
function deblock_strength_neon, export=1
movi v4.16b, #0
lsl w4, w4, #8
add x3, x3, #32
......
/*****************************************************************************
* deblock.h: aarch64 deblocking
*****************************************************************************
* Copyright (C) 2017-2018 x264 project
*
* Authors: Anton Mitrofanov <BugMaster@narod.ru>
*
* 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