mirror of
https://github.com/ittiam-systems/libhevc.git
synced 2026-10-16 22:06:46 +07:00
libhevc: added BTI and PAC support in libhevc
Some checks failed
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (push) Has been cancelled
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Has been cancelled
Some checks failed
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (push) Has been cancelled
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Has been cancelled
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Has been cancelled
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Has been cancelled
Test: readelf -nw libhevcdec.a
Test: readelf -nW libhevcenc.a
Test: atest MctsMediaV2TestCases
atest MctsMediaDecoderTestCases
atest MctsMediaEncoderTestCases
atest MctsMediaCodecTestCases
Test: hevc_dec_fuzzer
hevc_enc_fuzzer
Bug: 485868924
Change-Id: I7eb3c915662654d649ba4aa5793f71afff8c47e7
This commit is contained in:
parent
cbd0e91d89
commit
5da3d44aef
67 changed files with 279 additions and 216 deletions
|
|
@ -35,7 +35,6 @@ cc_library_headers {
|
|||
|
||||
cc_library_static {
|
||||
name: "libhevcdec",
|
||||
defaults: ["no_bti"],
|
||||
vendor_available: true,
|
||||
host_supported: true,
|
||||
|
||||
|
|
@ -441,7 +440,6 @@ cc_binary {
|
|||
|
||||
cc_library_static {
|
||||
name: "libhevcenc",
|
||||
defaults: ["no_bti"],
|
||||
vendor_available: true,
|
||||
host_supported: true,
|
||||
cflags: [
|
||||
|
|
|
|||
|
|
@ -45,9 +45,8 @@
|
|||
// WORD32 filter_flag_q)
|
||||
//
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -57,7 +56,7 @@
|
|||
|
||||
.type ihevc_deblk_chroma_horz_av8, %function
|
||||
|
||||
ihevc_deblk_chroma_horz_av8:
|
||||
ENTRY ihevc_deblk_chroma_horz_av8
|
||||
sxtw x4,w4
|
||||
sxtw x5,w5
|
||||
sxtw x6,w6
|
||||
|
|
@ -166,6 +165,7 @@ l1.3528:
|
|||
l1.3540:
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,9 +46,8 @@
|
|||
// WORD32 filter_flag_p,
|
||||
// WORD32 filter_flag_q)
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -58,7 +57,7 @@
|
|||
|
||||
.type ihevc_deblk_chroma_vert_av8, %function
|
||||
|
||||
ihevc_deblk_chroma_vert_av8:
|
||||
ENTRY ihevc_deblk_chroma_vert_av8
|
||||
sxtw x4,w4
|
||||
sxtw x5,w5
|
||||
sxtw x6,w6
|
||||
|
|
@ -205,6 +204,7 @@ l1.3204:
|
|||
l1.3228:
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@
|
|||
//*
|
||||
//*******************************************************************************/
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
.align 4
|
||||
|
||||
|
||||
.extern gai4_ihevc_tc_table
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
.type ihevc_deblk_luma_horz_av8, %function
|
||||
|
||||
ihevc_deblk_luma_horz_av8:
|
||||
ENTRY ihevc_deblk_luma_horz_av8
|
||||
// stmfd sp!, {x3-x12,x14}
|
||||
sxtw x5,w5
|
||||
sxtw x6,w6
|
||||
|
|
@ -434,6 +434,7 @@ l1.2404:
|
|||
ldp d10,d11,[sp],#16
|
||||
ldp d8,d9,[sp],#16 // Loading d9 using { ldr d9,[sp]; add sp,sp,#8 } is giving bus error.
|
||||
// d8 is used as dummy register and loaded along with d9 using ldp. d8 is not used in the function.
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
// x4=flag p
|
||||
|
|
@ -584,6 +585,7 @@ l1.2852:
|
|||
ldp d10,d11,[sp],#16
|
||||
ldp d8,d9,[sp],#16 // Loading d9 using { ldr d9,[sp]; add sp,sp,#8 } is giving bus error.
|
||||
// d8 is used as dummy register and loaded along with d9 using ldp. d8 is not used in the function.
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@
|
|||
//*
|
||||
//*******************************************************************************/
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
.align 4
|
||||
|
||||
|
||||
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
.type ihevc_deblk_luma_vert_av8, %function
|
||||
|
||||
ihevc_deblk_luma_vert_av8:
|
||||
ENTRY ihevc_deblk_luma_vert_av8
|
||||
|
||||
sxtw x5,w5
|
||||
sxtw x6,w6
|
||||
|
|
@ -450,6 +450,7 @@ l1.964:
|
|||
ldp d12,d13,[sp],#16
|
||||
ldp d10,d11,[sp],#16
|
||||
ldp d8,d9,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
l1.968:
|
||||
|
|
@ -630,6 +631,7 @@ l1.1412:
|
|||
ldp d12,d13,[sp],#16
|
||||
ldp d10,d11,[sp],#16
|
||||
ldp d8,d9,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -91,14 +91,14 @@
|
|||
//x5 => ht
|
||||
//x6 => wd
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.globl ihevc_inter_pred_chroma_copy_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_copy_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_copy_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_copy_av8
|
||||
|
||||
LSL x12,x6,#1 //wd << 1
|
||||
CMP x5,#0 //checks ht == 0
|
||||
|
|
@ -142,7 +142,8 @@ END_INNER_LOOP_WD_4:
|
|||
BGT OUTER_LOOP_WD_4_HT_2
|
||||
|
||||
END_LOOPS:
|
||||
RET
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
OUTER_LOOP_WD_4_HT_2:
|
||||
SUBS x4,x12,#0 //checks wd == 0
|
||||
|
|
@ -251,6 +252,7 @@ INNER_LOOP_WD_16_HT_2:
|
|||
LD1 {v1.16b},[x7],x2 //vld1_u8(pu1_src_tmp)
|
||||
ST1 {v1.16b},[x6],x3 //vst1_u8(pu1_dst_tmp, tmp_src)
|
||||
|
||||
RET
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,16 +92,14 @@
|
|||
//x5 => ht
|
||||
//x6 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_copy_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_copy_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_copy_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_copy_w16out_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -173,6 +171,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -339,6 +338,7 @@ core_loop_wd_8_ht_2:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -93,16 +93,15 @@
|
|||
//x2 => src_strd
|
||||
//x3 => dst_strd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_horz_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_horz_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_horz_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_horz_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -769,6 +768,7 @@ end_loops:
|
|||
ldp d13,d14,[sp],#16
|
||||
ldp d11,d12,[sp],#16
|
||||
ldp d9,d10,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -91,17 +91,16 @@
|
|||
//x3 => dst_strd
|
||||
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_horz_w16out_av8
|
||||
|
||||
|
||||
.type ihevc_inter_pred_chroma_horz_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_horz_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_horz_w16out_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -794,6 +793,7 @@ end_loops:
|
|||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
ldp d10,d11,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,16 +92,15 @@
|
|||
//x1 => *pi2_dst
|
||||
//x2 => src_strd
|
||||
//x3 => dst_strd
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_vert_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_vert_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_vert_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_vert_av8
|
||||
|
||||
// stmfd sp!,{x4-x12,x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -399,6 +398,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,16 +92,14 @@
|
|||
//x2 => src_strd
|
||||
//x3 => dst_strd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_vert_w16inp_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_vert_w16inp_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_vert_w16inp_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_vert_w16inp_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -349,6 +347,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,16 +92,15 @@
|
|||
//x1 => *pi2_dst
|
||||
//x2 => src_strd
|
||||
//x3 => dst_strd
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_vert_w16inp_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_vert_w16inp_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_vert_w16inp_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_vert_w16inp_w16out_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -336,6 +335,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -93,16 +93,14 @@
|
|||
//x2 => src_strd
|
||||
//x3 => dst_strd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_chroma_vert_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_chroma_vert_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_chroma_vert_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_chroma_vert_w16out_av8
|
||||
|
||||
// stmfd sp!,{x4-x12,x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -386,6 +384,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -103,16 +103,15 @@
|
|||
// x5 => ht
|
||||
// x6 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_horz_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_horz_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_horz_av8:
|
||||
ENTRY ihevc_inter_pred_luma_horz_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
push_v_regs
|
||||
|
|
@ -286,6 +285,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -481,6 +481,7 @@ end_loops1:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -595,6 +596,7 @@ end_inner_loop_4:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -103,16 +103,15 @@
|
|||
// x12 => *pi1_coeff
|
||||
// x5 => ht
|
||||
// x3 => wd
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_vert_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_vert_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_vert_av8:
|
||||
ENTRY ihevc_inter_pred_luma_vert_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -428,6 +427,7 @@ end_loops:
|
|||
bne lbl409
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
lbl409:
|
||||
mov x5, #4
|
||||
|
|
@ -518,5 +518,6 @@ end_inner_loop_wd_4:
|
|||
// ldmfd sp!, {x4-x12, x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
|
|
|||
|
|
@ -94,16 +94,15 @@
|
|||
// word32 ht,
|
||||
// word32 wd )
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_vert_w16inp_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_vert_w16inp_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_vert_w16inp_av8:
|
||||
ENTRY ihevc_inter_pred_luma_vert_w16inp_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -384,6 +383,7 @@ end_loops:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -62,12 +62,13 @@
|
|||
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_vert_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_vert_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_vert_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_luma_vert_w16out_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -378,6 +379,7 @@ end_loops_16out:
|
|||
bne lbl355
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
lbl355:
|
||||
mov x5, #4
|
||||
|
|
@ -471,6 +473,7 @@ end_inner_loop_wd_4_16out:
|
|||
// ldmfd sp!, {x4-x12, x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -71,16 +71,14 @@
|
|||
// x11 => ht
|
||||
// x16 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_copy_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_copy_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_copy_av8:
|
||||
ENTRY ihevc_inter_pred_luma_copy_av8
|
||||
// stmfd sp!, {x8-x16, lr} //stack stores the values of the arguments
|
||||
stp x19,x20,[sp, #-16]!
|
||||
mov x16,x6 //loads wd
|
||||
|
|
@ -125,6 +123,7 @@ end_loops:
|
|||
// MRS x20,PMCCFILTR_EL0
|
||||
sub x0,x20,x19
|
||||
ldp x19,x20,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -159,6 +158,7 @@ end_inner_loop_wd_8:
|
|||
// MRS x20,PMCCFILTR_EL0
|
||||
sub x0,x20,x19
|
||||
ldp x19,x20,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
core_loop_wd_16:
|
||||
|
|
@ -192,6 +192,7 @@ end_inner_loop_wd_16:
|
|||
// MRS x20,PMCCFILTR_EL0
|
||||
sub x0,x20,x19
|
||||
ldp x19,x20,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -72,16 +72,15 @@
|
|||
// x7 => ht
|
||||
// x12 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_copy_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_copy_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_copy_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_luma_copy_w16out_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -140,6 +139,7 @@ end_loops:
|
|||
ldp x19, x20,[sp], #16
|
||||
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -265,6 +265,7 @@ epilog_end:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -107,16 +107,15 @@
|
|||
//x15 - #1
|
||||
//x16 - src_ptx1
|
||||
//x19 - loop_counter
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_horz_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_horz_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_horz_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_luma_horz_w16out_av8
|
||||
|
||||
// stmfd sp!, {x8-x16, x19} //stack stores the values of the arguments
|
||||
push_v_regs
|
||||
|
|
@ -305,6 +304,7 @@ height_residue_4:
|
|||
bne lbl280
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
lbl280:
|
||||
|
||||
|
|
@ -365,6 +365,7 @@ end_inner_loop_height_residue_4:
|
|||
// ldmfd sp!,{x8-x16,pc} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
outer_loop8_residual:
|
||||
|
|
@ -476,6 +477,7 @@ end_inner_loop_8:
|
|||
// ldmfd sp!,{x8-x16,pc} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -666,6 +668,7 @@ end_loops1:
|
|||
// ldmfd sp!,{x8-x16,pc} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -102,16 +102,14 @@
|
|||
// r5 => ht
|
||||
// r6 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_inter_pred_luma_vert_w16inp_w16out_av8
|
||||
|
||||
.type ihevc_inter_pred_luma_vert_w16inp_w16out_av8, %function
|
||||
|
||||
ihevc_inter_pred_luma_vert_w16inp_w16out_av8:
|
||||
ENTRY ihevc_inter_pred_luma_vert_w16inp_w16out_av8
|
||||
|
||||
//stmfd sp!, {r4-r12, r14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -408,6 +406,7 @@ end_loops:
|
|||
//ldmfd sp!,{r4-r12,r15} //reload the registers from sp
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_dc_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_dc_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_dc_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
push_v_regs
|
||||
|
|
@ -293,6 +292,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -84,16 +84,15 @@
|
|||
//x2 => *pu1_dst
|
||||
//x3 => dst_strd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevc_intra_pred_chroma_horz_av8
|
||||
|
||||
.type ihevc_intra_pred_chroma_horz_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_horz_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_horz_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -189,6 +188,7 @@ core_loop_16:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
b endloop
|
||||
|
||||
|
|
@ -270,6 +270,7 @@ core_loop_8:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
b endloop
|
||||
|
||||
|
|
@ -318,6 +319,7 @@ core_loop_4:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
b endloop
|
||||
|
||||
|
|
@ -353,6 +355,7 @@ core_loop_4:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
endloop:
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_mode2_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_mode2_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_mode2_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
push_v_regs
|
||||
|
|
@ -303,6 +302,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_mode_18_34_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_mode_18_34_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_mode_18_34_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -189,6 +188,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -81,9 +81,8 @@
|
|||
// word32 nt,
|
||||
// word32 mode)
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevc_intra_pred_chroma_mode_27_to_33_av8
|
||||
|
|
@ -92,7 +91,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_mode_27_to_33_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_mode_27_to_33_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_mode_27_to_33_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -549,6 +548,7 @@ end_loops:
|
|||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
ldp d9,d10,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -86,10 +86,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -101,7 +99,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_mode_3_to_9_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_mode_3_to_9_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_mode_3_to_9_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -489,6 +487,7 @@ end_func:
|
|||
ldp d8,d15,[sp],#16 // Loading d15 using { ldr d15,[sp]; add sp,sp,#8 } is giving bus error.
|
||||
// d8 is used as dummy register and loaded along with d15 using ldp. d8 is not used in the function.
|
||||
ldp d13,d14,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevc_intra_pred_chroma_planar_av8
|
||||
|
|
@ -103,7 +102,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_planar_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_planar_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_planar_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -374,6 +373,7 @@ end_loop:
|
|||
// d8 is used as dummy register and loaded along with d14 using ldp. d8 is not used in the function.
|
||||
ldp d12,d13,[sp],#16
|
||||
ldp d10,d11,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -87,16 +87,15 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevc_intra_pred_chroma_ver_av8
|
||||
|
||||
.type ihevc_intra_pred_chroma_ver_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_ver_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_ver_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
push_v_regs
|
||||
|
|
@ -226,6 +225,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_mode_11_to_17_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_mode_11_to_17_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_mode_11_to_17_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -617,6 +616,7 @@ end_func:
|
|||
ldp x19, x20,[sp],#16
|
||||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevc_intra_pred_chroma_mode_19_to_25_av8
|
||||
|
|
@ -100,7 +99,7 @@
|
|||
|
||||
.type ihevc_intra_pred_chroma_mode_19_to_25_av8, %function
|
||||
|
||||
ihevc_intra_pred_chroma_mode_19_to_25_av8:
|
||||
ENTRY ihevc_intra_pred_chroma_mode_19_to_25_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -571,6 +570,7 @@ end_loops:
|
|||
ldp d8,d14,[sp],#16 // Loading d14 using { ldr d14,[sp]; add sp,sp,#8 } is giving bus error.
|
||||
// d8 is used as dummy register and loaded along with d14 using ldp. d8 is not used in the function.
|
||||
ldp d12,d13,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_mode_11_to_17_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_mode_11_to_17_av8:
|
||||
ENTRY ihevc_intra_pred_luma_mode_11_to_17_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -691,6 +690,7 @@ end_func:
|
|||
ldp x19, x20,[sp],#16
|
||||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -101,7 +100,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_mode_19_to_25_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_mode_19_to_25_av8:
|
||||
ENTRY ihevc_intra_pred_luma_mode_19_to_25_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -661,6 +660,7 @@ end_loops:
|
|||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
ldp d9,d10,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,16 +92,15 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevc_intra_pred_luma_dc_av8
|
||||
|
||||
.type ihevc_intra_pred_luma_dc_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_dc_av8:
|
||||
ENTRY ihevc_intra_pred_luma_dc_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -511,6 +510,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -84,9 +84,8 @@
|
|||
//x2 => *pu1_dst
|
||||
//x3 => dst_strd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -94,7 +93,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_horz_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_horz_av8:
|
||||
ENTRY ihevc_intra_pred_luma_horz_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -189,6 +188,7 @@ core_loop_32:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
b end_func
|
||||
|
||||
|
|
@ -269,6 +269,7 @@ core_loop_16:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
b end_func
|
||||
|
||||
|
|
@ -315,6 +316,7 @@ core_loop_8:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
b end_func
|
||||
|
||||
|
|
@ -350,6 +352,7 @@ core_loop_4:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
end_func:
|
||||
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_mode2_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_mode2_av8:
|
||||
ENTRY ihevc_intra_pred_luma_mode2_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -270,6 +269,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_mode_18_34_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_mode_18_34_av8:
|
||||
ENTRY ihevc_intra_pred_luma_mode_18_34_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
push_v_regs
|
||||
|
|
@ -278,6 +277,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -85,9 +85,8 @@
|
|||
//x2 => *pu1_dst
|
||||
//x3 => dst_strd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -97,7 +96,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_mode_27_to_33_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_mode_27_to_33_av8:
|
||||
ENTRY ihevc_intra_pred_luma_mode_27_to_33_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -554,6 +553,7 @@ end_loops:
|
|||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
ldp d9,d10,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -103,7 +102,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_mode_3_to_9_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_mode_3_to_9_av8:
|
||||
ENTRY ihevc_intra_pred_luma_mode_3_to_9_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -563,6 +562,7 @@ end_func:
|
|||
ldp x19, x20,[sp],#16
|
||||
ldp d14,d15,[sp],#16
|
||||
ldp d12,d13,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,9 +92,8 @@
|
|||
// mode
|
||||
// pi1_coeff
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -104,7 +103,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_planar_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_planar_av8:
|
||||
ENTRY ihevc_intra_pred_luma_planar_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -558,6 +557,7 @@ end_loop:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,8 @@
|
|||
// nt
|
||||
// mode
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -98,7 +97,7 @@
|
|||
|
||||
.type ihevc_intra_pred_luma_ver_av8, %function
|
||||
|
||||
ihevc_intra_pred_luma_ver_av8:
|
||||
ENTRY ihevc_intra_pred_luma_ver_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -424,6 +423,7 @@ end_func:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -105,10 +105,8 @@
|
|||
// x12
|
||||
// x11
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -123,7 +121,7 @@
|
|||
|
||||
.type ihevc_itrans_recon_16x16_av8, %function
|
||||
|
||||
ihevc_itrans_recon_16x16_av8:
|
||||
ENTRY ihevc_itrans_recon_16x16_av8
|
||||
|
||||
ldr w11, [sp]
|
||||
// stmfd sp!,{x4-x12,x14}
|
||||
|
|
@ -1226,6 +1224,7 @@ skip_last8rows_stage2_kernel2:
|
|||
// ldmfd sp!,{x4-x12,pc}
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -124,9 +124,8 @@
|
|||
//d5[2]= 43 d7[2]=9
|
||||
//d5[3]= 38 d7[3]=4
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -143,7 +142,7 @@
|
|||
|
||||
.type ihevc_itrans_recon_32x32_av8, %function
|
||||
|
||||
ihevc_itrans_recon_32x32_av8:
|
||||
ENTRY ihevc_itrans_recon_32x32_av8
|
||||
|
||||
ldr w11, [sp]
|
||||
|
||||
|
|
@ -3042,6 +3041,7 @@ prediction_buffer:
|
|||
// ldmfd sp!,{x0-x12,pc}
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -100,10 +100,8 @@
|
|||
// x6 => dst_strd
|
||||
// x7 => zero_cols
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.set shift_stage1_idct , 7
|
||||
.set shift_stage2_idct , 12
|
||||
|
|
@ -116,7 +114,7 @@
|
|||
|
||||
.type ihevc_itrans_recon_4x4_av8, %function
|
||||
|
||||
ihevc_itrans_recon_4x4_av8:
|
||||
ENTRY ihevc_itrans_recon_4x4_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -229,6 +227,7 @@ ihevc_itrans_recon_4x4_av8:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -103,10 +103,8 @@
|
|||
// x6 => dst_strd
|
||||
// x7 => zero_cols
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.set shift_stage1_idct , 7
|
||||
.set shift_stage2_idct , 12
|
||||
|
|
@ -115,7 +113,7 @@
|
|||
|
||||
.type ihevc_itrans_recon_4x4_ttype1_av8, %function
|
||||
|
||||
ihevc_itrans_recon_4x4_ttype1_av8:
|
||||
ENTRY ihevc_itrans_recon_4x4_ttype1_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -234,6 +232,7 @@ ihevc_itrans_recon_4x4_ttype1_av8:
|
|||
// ldmfd sp!,{x4-x12,x15} //reload the registers from sp
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -105,10 +105,8 @@
|
|||
// zero_cols
|
||||
|
||||
|
||||
|
||||
.text
|
||||
.align 4
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -123,7 +121,7 @@
|
|||
|
||||
.type ihevc_itrans_recon_8x8_av8, %function
|
||||
|
||||
ihevc_itrans_recon_8x8_av8:
|
||||
ENTRY ihevc_itrans_recon_8x8_av8
|
||||
////register usage.extern - loading and until idct of columns
|
||||
//// cosine constants - d0
|
||||
//// sine constants - d1
|
||||
|
|
@ -1030,6 +1028,7 @@ pred_buff_addition:
|
|||
// ldmfd sp!,{x4-x12,pc}
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -69,14 +69,14 @@
|
|||
// x1 => *pu1_src
|
||||
// x2 => num_bytes
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
|
||||
.global ihevc_memcpy_mul_8_av8
|
||||
.type ihevc_memcpy_mul_8_av8, %function
|
||||
|
||||
ihevc_memcpy_mul_8_av8:
|
||||
ENTRY ihevc_memcpy_mul_8_av8
|
||||
|
||||
LOOP_NEON_MEMCPY_MUL_8:
|
||||
// Memcpy 8 bytes
|
||||
|
|
@ -85,6 +85,7 @@ LOOP_NEON_MEMCPY_MUL_8:
|
|||
|
||||
SUBS x2,x2,#8
|
||||
BNE LOOP_NEON_MEMCPY_MUL_8
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -104,7 +105,7 @@ LOOP_NEON_MEMCPY_MUL_8:
|
|||
.global ihevc_memcpy_av8
|
||||
.type ihevc_memcpy_av8, %function
|
||||
|
||||
ihevc_memcpy_av8:
|
||||
ENTRY ihevc_memcpy_av8
|
||||
SUBS x2,x2,#8
|
||||
BLT ARM_MEMCPY
|
||||
LOOP_NEON_MEMCPY:
|
||||
|
|
@ -126,6 +127,7 @@ LOOP_ARM_MEMCPY:
|
|||
SUBS x2,x2,#1
|
||||
BNE LOOP_ARM_MEMCPY
|
||||
MEMCPY_RETURN:
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -140,14 +142,13 @@ MEMCPY_RETURN:
|
|||
// x2 => num_bytes
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
|
||||
|
||||
.global ihevc_memset_mul_8_av8
|
||||
.type ihevc_memset_mul_8_av8, %function
|
||||
|
||||
ihevc_memset_mul_8_av8:
|
||||
ENTRY ihevc_memset_mul_8_av8
|
||||
|
||||
// Assumptions: numbytes is either 8, 16 or 32
|
||||
dup v0.8b,w1
|
||||
|
|
@ -158,6 +159,7 @@ LOOP_MEMSET_MUL_8:
|
|||
SUBS x2,x2,#8
|
||||
BNE LOOP_MEMSET_MUL_8
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -176,7 +178,7 @@ LOOP_MEMSET_MUL_8:
|
|||
.global ihevc_memset_av8
|
||||
.type ihevc_memset_av8, %function
|
||||
|
||||
ihevc_memset_av8:
|
||||
ENTRY ihevc_memset_av8
|
||||
SUBS x2,x2,#8
|
||||
BLT ARM_MEMSET
|
||||
dup v0.8b,w1
|
||||
|
|
@ -198,6 +200,7 @@ LOOP_ARM_MEMSET:
|
|||
BNE LOOP_ARM_MEMSET
|
||||
|
||||
MEMSET_RETURN:
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -212,14 +215,13 @@ MEMSET_RETURN:
|
|||
// x2 => num_words
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
|
||||
|
||||
.global ihevc_memset_16bit_mul_8_av8
|
||||
.type ihevc_memset_16bit_mul_8_av8, %function
|
||||
|
||||
ihevc_memset_16bit_mul_8_av8:
|
||||
ENTRY ihevc_memset_16bit_mul_8_av8
|
||||
|
||||
// Assumptions: num_words is either 8, 16 or 32
|
||||
|
||||
|
|
@ -231,6 +233,7 @@ LOOP_MEMSET_16BIT_MUL_8:
|
|||
SUBS x2,x2,#8
|
||||
BNE LOOP_MEMSET_16BIT_MUL_8
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -249,7 +252,7 @@ LOOP_MEMSET_16BIT_MUL_8:
|
|||
.global ihevc_memset_16bit_av8
|
||||
.type ihevc_memset_16bit_av8, %function
|
||||
|
||||
ihevc_memset_16bit_av8:
|
||||
ENTRY ihevc_memset_16bit_av8
|
||||
SUBS x2,x2,#8
|
||||
BLT ARM_MEMSET_16BIT
|
||||
dup v0.8h,w1
|
||||
|
|
@ -271,6 +274,7 @@ LOOP_ARM_MEMSET_16BIT:
|
|||
BNE LOOP_ARM_MEMSET_16BIT
|
||||
|
||||
MEMSET_16BIT_RETURN:
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -47,3 +47,53 @@
|
|||
ldp d10,d11,[sp],#16
|
||||
ldp d8,d9,[sp],#16
|
||||
.endm
|
||||
|
||||
// --- Internal Security Dispatchers ---
|
||||
// These expand to real instructions only if the compiler flags are present.
|
||||
|
||||
.macro BTI_ENABLE
|
||||
#if defined(__ARM_FEATURE_BTI_DEFAULT)
|
||||
bti c
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro PAC_ENTRY
|
||||
#if defined(__ARM_FEATURE_PAC_DEFAULT)
|
||||
paciasp
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro PAC_EXIT
|
||||
#if defined(__ARM_FEATURE_PAC_DEFAULT)
|
||||
autiasp
|
||||
#endif
|
||||
.endm
|
||||
|
||||
// --- Main ENTRY and EXIT_FUNC Macros ---
|
||||
|
||||
.macro ENTRY name
|
||||
.p2align 2
|
||||
\name:
|
||||
BTI_ENABLE
|
||||
PAC_ENTRY
|
||||
.endm
|
||||
|
||||
.macro EXIT_FUNC
|
||||
PAC_EXIT
|
||||
.endm
|
||||
|
||||
// --- GNU Property Note ---
|
||||
// Signals BTI and PAC support to the Android linker.
|
||||
#if defined(__linux__) && defined(__aarch64__)
|
||||
.pushsection .note.gnu.property, "a" // Switch to Note section
|
||||
.p2align 3
|
||||
.word 4 // Name size
|
||||
.word 16 // Data size
|
||||
.word 5 // NT_GNU_PROPERTY_TYPE_0
|
||||
.asciz "GNU" // Owner
|
||||
.word 0xc0000000 // GNU_PROPERTY_AARCH64_FEATURE_1_AND
|
||||
.word 4 // Data size
|
||||
.word 3 // Value: BTI (Bit 0) | PAC (Bit 1)
|
||||
.word 0 // Padding
|
||||
.popsection // Switch back to previous section
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -85,14 +85,14 @@
|
|||
// x2 => ht
|
||||
// x3 => pad_size
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.globl ihevc_pad_left_luma_av8
|
||||
|
||||
.type ihevc_pad_left_luma_av8, %function
|
||||
|
||||
ihevc_pad_left_luma_av8:
|
||||
ENTRY ihevc_pad_left_luma_av8
|
||||
|
||||
loop_start_luma_left:
|
||||
// pad size is assumed to be pad_left = 80
|
||||
|
|
@ -148,6 +148,7 @@ loop_start_luma_left:
|
|||
|
||||
bne loop_start_luma_left
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -209,7 +210,7 @@ loop_start_luma_left:
|
|||
|
||||
.type ihevc_pad_left_chroma_av8, %function
|
||||
|
||||
ihevc_pad_left_chroma_av8:
|
||||
ENTRY ihevc_pad_left_chroma_av8
|
||||
|
||||
|
||||
loop_start_chroma_left:
|
||||
|
|
@ -266,6 +267,7 @@ loop_start_chroma_left:
|
|||
|
||||
bne loop_start_chroma_left
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -337,7 +339,7 @@ loop_start_chroma_left:
|
|||
|
||||
.type ihevc_pad_right_luma_av8, %function
|
||||
|
||||
ihevc_pad_right_luma_av8:
|
||||
ENTRY ihevc_pad_right_luma_av8
|
||||
|
||||
|
||||
loop_start_luma_right:
|
||||
|
|
@ -395,6 +397,7 @@ loop_start_luma_right:
|
|||
|
||||
bne loop_start_luma_right
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
@ -455,7 +458,7 @@ loop_start_luma_right:
|
|||
|
||||
.type ihevc_pad_right_chroma_av8, %function
|
||||
|
||||
ihevc_pad_right_chroma_av8:
|
||||
ENTRY ihevc_pad_right_chroma_av8
|
||||
|
||||
|
||||
loop_start_chroma_right:
|
||||
|
|
@ -512,6 +515,7 @@ loop_start_chroma_right:
|
|||
|
||||
bne loop_start_chroma_right
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -61,14 +61,13 @@
|
|||
//x9 => wd 60
|
||||
//x10=> ht 64
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gu1_table_band_idx
|
||||
.globl ihevc_sao_band_offset_chroma_av8
|
||||
|
||||
ihevc_sao_band_offset_chroma_av8:
|
||||
ENTRY ihevc_sao_band_offset_chroma_av8
|
||||
mov x8,#0
|
||||
mov x9,#0
|
||||
mov x10,#0
|
||||
|
|
@ -424,6 +423,7 @@ END_LOOP:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -65,12 +65,11 @@
|
|||
.include "ihevc_neon_macros.s"
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
.globl gu1_table_band_idx
|
||||
.globl ihevc_sao_band_offset_luma_av8
|
||||
|
||||
ihevc_sao_band_offset_luma_av8:
|
||||
ENTRY ihevc_sao_band_offset_luma_av8
|
||||
|
||||
// STMFD sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -244,6 +243,7 @@ HEIGHT_LOOP:
|
|||
ldp d8,d15,[sp],#16 // Loading d15 using { ldr d15,[sp]; add sp,sp,#8 } is giving bus error.
|
||||
// d8 is used as dummy register and loaded along with d15 using ldp. d8 is not used in the function.
|
||||
ldp d13,d14,[sp],#16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -59,15 +59,14 @@
|
|||
//x9 => wd
|
||||
//x10=> ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class0_av8
|
||||
|
||||
ihevc_sao_edge_offset_class0_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class0_av8
|
||||
|
||||
|
||||
// STMFD sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
|
@ -338,6 +337,7 @@ END_LOOPS:
|
|||
// LDMFD sp!,{x4-x12,x15} //Reload the registers from SP
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -60,14 +60,13 @@
|
|||
//x9 => wd
|
||||
//x10=> ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class0_chroma_av8
|
||||
|
||||
ihevc_sao_edge_offset_class0_chroma_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class0_chroma_av8
|
||||
|
||||
ldr x8,[sp,#0]
|
||||
ldr x9,[sp,#8]
|
||||
|
|
@ -477,6 +476,7 @@ END_LOOPS:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -58,15 +58,14 @@
|
|||
//x7 => wd
|
||||
//x8 => ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class1_av8
|
||||
|
||||
ihevc_sao_edge_offset_class1_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class1_av8
|
||||
|
||||
|
||||
// STMFD sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
|
@ -355,6 +354,7 @@ END_LOOPS:
|
|||
// LDMFD sp!,{x4-x12,x15} //Reload the registers from SP
|
||||
ldp x19, x20,[sp], #16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -60,14 +60,13 @@
|
|||
//x8 => wd
|
||||
//x9 => ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class1_chroma_av8
|
||||
|
||||
ihevc_sao_edge_offset_class1_chroma_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class1_chroma_av8
|
||||
|
||||
|
||||
ldr x8,[sp,#0]
|
||||
|
|
@ -458,6 +457,7 @@ END_LOOPS:
|
|||
ldp x19, x20,[sp],#16
|
||||
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -58,15 +58,14 @@
|
|||
//x7 => wd
|
||||
//x8=> ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class2_av8
|
||||
|
||||
ihevc_sao_edge_offset_class2_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class2_av8
|
||||
|
||||
|
||||
// STMFD sp!,{x4-x12,x14} //stack stores the values of the arguments
|
||||
|
|
@ -846,6 +845,7 @@ END_LOOPS:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -60,14 +60,13 @@
|
|||
//x7 => wd
|
||||
//x8=> ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class2_chroma_av8
|
||||
|
||||
ihevc_sao_edge_offset_class2_chroma_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class2_chroma_av8
|
||||
|
||||
|
||||
// STMFD sp!,{x4-x12,x14} //stack stores the values of the arguments
|
||||
|
|
@ -1132,6 +1131,7 @@ END_LOOPS:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -58,15 +58,14 @@
|
|||
//x7 => wd
|
||||
//x8=> ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class3_av8
|
||||
|
||||
ihevc_sao_edge_offset_class3_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class3_av8
|
||||
|
||||
|
||||
// STMFD sp!,{x4-x12,x14} //stack stores the values of the arguments
|
||||
|
|
@ -889,6 +888,7 @@ END_LOOPS:
|
|||
ldp x23, x24,[sp], #16
|
||||
ldp x21, x22,[sp], #16
|
||||
ldp x19, x20,[sp], #16
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -60,13 +60,12 @@
|
|||
//x7 => wd
|
||||
//x8=> ht
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
.globl gi1_table_edge_idx
|
||||
.globl ihevc_sao_edge_offset_class3_chroma_av8
|
||||
|
||||
ihevc_sao_edge_offset_class3_chroma_av8:
|
||||
ENTRY ihevc_sao_edge_offset_class3_chroma_av8
|
||||
|
||||
|
||||
// STMFD sp!,{x4-x12,x14} //stack stores the values of the arguments
|
||||
|
|
@ -1167,6 +1166,7 @@ END_LOOPS:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -134,16 +134,14 @@
|
|||
// x14 => ht
|
||||
// x7 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_weighted_pred_bi_av8
|
||||
|
||||
.type ihevc_weighted_pred_bi_av8, %function
|
||||
|
||||
ihevc_weighted_pred_bi_av8:
|
||||
ENTRY ihevc_weighted_pred_bi_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -307,6 +305,7 @@ end_loops:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -107,16 +107,15 @@
|
|||
// x7 => lvl_shift2
|
||||
// x8 => ht
|
||||
// x9 => wd
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_weighted_pred_bi_default_av8
|
||||
|
||||
.type ihevc_weighted_pred_bi_default_av8, %function
|
||||
|
||||
ihevc_weighted_pred_bi_default_av8:
|
||||
ENTRY ihevc_weighted_pred_bi_default_av8
|
||||
|
||||
ldr w8,[sp,#0]
|
||||
ldr w9,[sp,#8]
|
||||
|
|
@ -534,6 +533,7 @@ end_loops:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -112,16 +112,14 @@
|
|||
// x8 => ht
|
||||
// x9 => wd
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
.globl ihevc_weighted_pred_uni_av8
|
||||
|
||||
.type ihevc_weighted_pred_uni_av8, %function
|
||||
|
||||
ihevc_weighted_pred_uni_av8:
|
||||
ENTRY ihevc_weighted_pred_uni_av8
|
||||
|
||||
// stmfd sp!, {x4-x12, x14} //stack stores the values of the arguments
|
||||
|
||||
|
|
@ -240,6 +238,7 @@ end_loops:
|
|||
ldp x21, x22,[sp],#16
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,9 +34,8 @@
|
|||
//*
|
||||
//*******************************************************************************/
|
||||
|
||||
.text
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -84,7 +83,7 @@
|
|||
|
||||
.type ihevcd_fmt_conv_420sp_to_420p_av8, %function
|
||||
|
||||
ihevcd_fmt_conv_420sp_to_420p_av8:
|
||||
ENTRY ihevcd_fmt_conv_420sp_to_420p_av8
|
||||
// STMFD sp!,{x4-x12, x14}
|
||||
push_v_regs
|
||||
stp x19, x20,[sp,#-16]!
|
||||
|
|
@ -200,6 +199,7 @@ exit:
|
|||
// LDMFD sp!,{x4-x12, pc}
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -39,10 +39,9 @@
|
|||
//
|
||||
// PRESERVE8
|
||||
|
||||
.text
|
||||
.p2align 2
|
||||
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -85,7 +84,7 @@
|
|||
|
||||
.global ihevcd_fmt_conv_420sp_to_420sp_av8
|
||||
.type ihevcd_fmt_conv_420sp_to_420sp_a9q, %function
|
||||
ihevcd_fmt_conv_420sp_to_420sp_av8:
|
||||
ENTRY ihevcd_fmt_conv_420sp_to_420sp_av8
|
||||
|
||||
// STMFD sp!,{x4-x12, x14}
|
||||
push_v_regs
|
||||
|
|
@ -200,6 +199,7 @@ exit:
|
|||
// LDMFD sp!,{x4-x12, pc}
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -35,15 +35,15 @@
|
|||
//*******************************************************************************/
|
||||
|
||||
|
||||
.text
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
.globl ihevcd_itrans_recon_dc_chroma_av8
|
||||
|
||||
.type ihevcd_itrans_recon_dc_chroma_av8, %function
|
||||
|
||||
ihevcd_itrans_recon_dc_chroma_av8:
|
||||
ENTRY ihevcd_itrans_recon_dc_chroma_av8
|
||||
|
||||
//void ihevcd_itrans_recon_dc_chroma(uword8 *pu1_pred,
|
||||
// uword8 *pu1_dst,
|
||||
|
|
@ -215,6 +215,7 @@ col_loop_4chroma:
|
|||
end_loops_chroma:
|
||||
ldp x19, x20,[sp],#16
|
||||
pop_v_regs
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@
|
|||
//*
|
||||
//*******************************************************************************/
|
||||
|
||||
.text
|
||||
.include "ihevc_neon_macros.s"
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
.type ihevcd_itrans_recon_dc_luma_av8, %function
|
||||
|
||||
ihevcd_itrans_recon_dc_luma_av8:
|
||||
ENTRY ihevcd_itrans_recon_dc_luma_av8
|
||||
|
||||
//void ihevcd_itrans_recon_dc_luma(uword8 *pu1_pred,
|
||||
// uword8 *pu1_dst,
|
||||
|
|
@ -207,6 +207,7 @@ col_loop_4:
|
|||
end_loops:
|
||||
ldp x19, x20,[sp],#16
|
||||
|
||||
EXIT_FUNC
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,10 +9,6 @@ package {
|
|||
|
||||
cc_fuzz {
|
||||
name: "hevc_dec_fuzzer",
|
||||
//TODO: b/485868924
|
||||
defaults: [
|
||||
"no_bti",
|
||||
],
|
||||
host_supported: true,
|
||||
srcs: [
|
||||
"hevc_dec_fuzzer.cpp",
|
||||
|
|
@ -45,10 +41,6 @@ cc_fuzz {
|
|||
|
||||
cc_fuzz {
|
||||
name: "hevc_enc_fuzzer",
|
||||
//TODO: b/485868924
|
||||
defaults: [
|
||||
"no_bti",
|
||||
],
|
||||
host_supported: true,
|
||||
srcs: [
|
||||
"hevc_enc_fuzzer.cpp",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue