From c2e46a81881d3d6271b3bdb43bbbb266b5be0e74 Mon Sep 17 00:00:00 2001 From: "Priyanka Advani (xWF)" Date: Fri, 3 Apr 2026 16:35:19 -0700 Subject: [PATCH] Revert "libavc: Add BTI and PAC support in libavc" This reverts commit 766ba532a950aac730660f7d30600a211c215c97. Reason for revert: Droidmonitor created revert due to b/499361746. ACA verified the culprit http://go/aca-get/65ca2c5c-4a45-4857-84de-2e3ffdd5135a Fix: 499361746 Change-Id: Ia95cff5294fa65bbe6fc6f9ba844b163c4146938 --- Android.bp | 1 + common/armv8/ih264_deblk_chroma_av8.s | 15 +++--- common/armv8/ih264_deblk_luma_av8.s | 15 +++--- .../armv8/ih264_default_weighted_pred_av8.s | 9 ++-- common/armv8/ih264_ihadamard_scaling_av8.s | 7 ++- common/armv8/ih264_inter_pred_chroma_av8.s | 6 +-- .../ih264_inter_pred_filters_luma_horz_av8.s | 6 +-- .../ih264_inter_pred_filters_luma_vert_av8.s | 6 +-- common/armv8/ih264_inter_pred_luma_copy_av8.s | 11 ++--- ..._inter_pred_luma_horz_hpel_vert_hpel_av8.s | 6 +-- ..._inter_pred_luma_horz_hpel_vert_qpel_av8.s | 6 +-- .../ih264_inter_pred_luma_horz_qpel_av8.s | 6 +-- ..._inter_pred_luma_horz_qpel_vert_hpel_av8.s | 6 +-- ..._inter_pred_luma_horz_qpel_vert_qpel_av8.s | 6 +-- .../ih264_inter_pred_luma_vert_qpel_av8.s | 6 +-- common/armv8/ih264_intra_pred_chroma_av8.s | 15 +++--- .../armv8/ih264_intra_pred_luma_16x16_av8.s | 15 +++--- common/armv8/ih264_intra_pred_luma_4x4_av8.s | 30 +++++------- common/armv8/ih264_intra_pred_luma_8x8_av8.s | 30 +++++------- common/armv8/ih264_iquant_itrans_recon_av8.s | 12 ++--- .../armv8/ih264_iquant_itrans_recon_dc_av8.s | 10 ++-- common/armv8/ih264_mem_fns_neon_av8.s | 24 +++------ common/armv8/ih264_neon_macros.s | 49 ------------------- common/armv8/ih264_padding_neon_av8.s | 19 +++---- common/armv8/ih264_resi_trans_quant_av8.s | 11 ++--- common/armv8/ih264_weighted_bi_pred_av8.s | 9 ++-- common/armv8/ih264_weighted_pred_av8.s | 9 ++-- .../ih264e_evaluate_intra16x16_modes_av8.s | 6 +-- .../ih264e_evaluate_intra_chroma_modes_av8.s | 6 +-- encoder/armv8/ih264e_half_pel_av8.s | 10 ++-- encoder/armv8/ime_distortion_metrics_av8.s | 42 +++++++++------- examples/Android.bp | 6 +++ fuzzer/Android.bp | 3 ++ tests/Android.bp | 3 ++ 34 files changed, 166 insertions(+), 255 deletions(-) diff --git a/Android.bp b/Android.bp index d9606002..3cf29587 100644 --- a/Android.bp +++ b/Android.bp @@ -290,6 +290,7 @@ cc_library_static { name: "libavcdec", defaults: [ "libavc_dec_defaults", + "no_bti", ], export_include_dirs: [ diff --git a/common/armv8/ih264_deblk_chroma_av8.s b/common/armv8/ih264_deblk_chroma_av8.s index 64e0abda..b7f2d583 100644 --- a/common/armv8/ih264_deblk_chroma_av8.s +++ b/common/armv8/ih264_deblk_chroma_av8.s @@ -38,8 +38,9 @@ ///*****************************************************************************/ -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" ///** //******************************************************************************* @@ -81,7 +82,7 @@ .global ih264_deblk_chroma_horz_bs4_av8 -ENTRY ih264_deblk_chroma_horz_bs4_av8 +ih264_deblk_chroma_horz_bs4_av8: // STMFD sp!,{x4-x6,x14} // push_v_regs @@ -137,7 +138,6 @@ ENTRY ih264_deblk_chroma_horz_bs4_av8 // LDMFD sp!,{x4-x6,pc} // ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -182,7 +182,7 @@ ENTRY ih264_deblk_chroma_horz_bs4_av8 .global ih264_deblk_chroma_vert_bs4_av8 -ENTRY ih264_deblk_chroma_vert_bs4_av8 +ih264_deblk_chroma_vert_bs4_av8: // STMFD sp!,{x4,x5,x12,x14} push_v_regs @@ -276,7 +276,6 @@ ENTRY ih264_deblk_chroma_vert_bs4_av8 // LDMFD sp!,{x4,x5,x12,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -330,7 +329,7 @@ ENTRY ih264_deblk_chroma_vert_bs4_av8 .global ih264_deblk_chroma_horz_bslt4_av8 -ENTRY ih264_deblk_chroma_horz_bslt4_av8 +ih264_deblk_chroma_horz_bslt4_av8: // STMFD sp!,{x4-x9,x14} // push_v_regs @@ -411,7 +410,6 @@ ENTRY ih264_deblk_chroma_horz_bslt4_av8 ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -466,7 +464,7 @@ ENTRY ih264_deblk_chroma_horz_bslt4_av8 .global ih264_deblk_chroma_vert_bslt4_av8 -ENTRY ih264_deblk_chroma_vert_bslt4_av8 +ih264_deblk_chroma_vert_bslt4_av8: // STMFD sp!,{x4-x7,x10-x12,x14} push_v_regs @@ -584,7 +582,6 @@ ENTRY ih264_deblk_chroma_vert_bslt4_av8 ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_deblk_luma_av8.s b/common/armv8/ih264_deblk_luma_av8.s index 75207949..7705df25 100644 --- a/common/armv8/ih264_deblk_luma_av8.s +++ b/common/armv8/ih264_deblk_luma_av8.s @@ -40,8 +40,9 @@ ///*****************************************************************************/ -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" @@ -85,7 +86,7 @@ .global ih264_deblk_luma_horz_bslt4_av8 -ENTRY ih264_deblk_luma_horz_bslt4_av8 +ih264_deblk_luma_horz_bslt4_av8: // STMFD sp!,{x4-x7,x14} push_v_regs @@ -196,7 +197,6 @@ ENTRY ih264_deblk_luma_horz_bslt4_av8 // LDMFD sp!,{x4-x7,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -235,7 +235,7 @@ ENTRY ih264_deblk_luma_horz_bslt4_av8 .global ih264_deblk_luma_horz_bs4_av8 -ENTRY ih264_deblk_luma_horz_bs4_av8 +ih264_deblk_luma_horz_bs4_av8: // Back up necessary registers on stack // STMFD sp!,{x12,x14} @@ -385,7 +385,6 @@ ENTRY ih264_deblk_luma_horz_bs4_av8 // LDMFD sp!,{x12,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -430,7 +429,7 @@ ENTRY ih264_deblk_luma_horz_bs4_av8 .global ih264_deblk_luma_vert_bslt4_av8 -ENTRY ih264_deblk_luma_vert_bslt4_av8 +ih264_deblk_luma_vert_bslt4_av8: // STMFD sp!,{x12,x14} push_v_regs @@ -729,7 +728,6 @@ ENTRY ih264_deblk_luma_vert_bslt4_av8 // LDMFD sp!,{x12,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -768,7 +766,7 @@ ENTRY ih264_deblk_luma_vert_bslt4_av8 .global ih264_deblk_luma_vert_bs4_av8 -ENTRY ih264_deblk_luma_vert_bs4_av8 +ih264_deblk_luma_vert_bs4_av8: // STMFD sp!,{x12,x14} push_v_regs @@ -1084,7 +1082,6 @@ ENTRY ih264_deblk_luma_vert_bs4_av8 // LDMFD sp!,{x12,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_default_weighted_pred_av8.s b/common/armv8/ih264_default_weighted_pred_av8.s index 798a3c5a..d10047eb 100644 --- a/common/armv8/ih264_default_weighted_pred_av8.s +++ b/common/armv8/ih264_default_weighted_pred_av8.s @@ -101,14 +101,15 @@ // w6 => ht // w7 => wd // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_default_weighted_pred_luma_av8 -ENTRY ih264_default_weighted_pred_luma_av8 +ih264_default_weighted_pred_luma_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -212,7 +213,6 @@ end_loops: // LDMFD sp!,{x4-x7,x15} //Reload the registers from sp ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -285,7 +285,7 @@ end_loops: .global ih264_default_weighted_pred_chroma_av8 -ENTRY ih264_default_weighted_pred_chroma_av8 +ih264_default_weighted_pred_chroma_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -352,7 +352,6 @@ loop_8_uv: //each iteration processes four rows end_loops_uv: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_ihadamard_scaling_av8.s b/common/armv8/ih264_ihadamard_scaling_av8.s index 1776df97..712c9aeb 100644 --- a/common/armv8/ih264_ihadamard_scaling_av8.s +++ b/common/armv8/ih264_ihadamard_scaling_av8.s @@ -88,9 +88,10 @@ //x4=> u4_qp_div_6 .text +.p2align 2 .global ih264_ihadamard_scaling_4x4_av8 -ENTRY ih264_ihadamard_scaling_4x4_av8 +ih264_ihadamard_scaling_4x4_av8: //only one shift is done in horizontal inverse because, //if u4_qp_div_6 is lesser than 4 then shift value will be neagative and do negative left shift, in this case rnd_factor has value @@ -158,7 +159,6 @@ ENTRY ih264_ihadamard_scaling_4x4_av8 st1 {v0.4h-v3.4h}, [x1] //store the result pop_v_regs - EXIT_FUNC ret @@ -202,7 +202,7 @@ ENTRY ih264_ihadamard_scaling_4x4_av8 // UWORD32 u4_qp_div_6, .global ih264_ihadamard_scaling_2x2_uv_av8 -ENTRY ih264_ihadamard_scaling_2x2_uv_av8 +ih264_ihadamard_scaling_2x2_uv_av8: //Registers used // x0 : *pi2_src @@ -244,7 +244,6 @@ ENTRY ih264_ihadamard_scaling_2x2_uv_av8 st2 {v0.4s-v1.4s}, [x1] pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_chroma_av8.s b/common/armv8/ih264_inter_pred_chroma_av8.s index 10fc634c..f6aef402 100644 --- a/common/armv8/ih264_inter_pred_chroma_av8.s +++ b/common/armv8/ih264_inter_pred_chroma_av8.s @@ -105,14 +105,15 @@ // w6 => height // w7 => width // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_chroma_av8 -ENTRY ih264_inter_pred_chroma_av8 +ih264_inter_pred_chroma_av8: @@ -392,7 +393,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_filters_luma_horz_av8.s b/common/armv8/ih264_inter_pred_filters_luma_horz_av8.s index d8db09c1..e7c9f862 100644 --- a/common/armv8/ih264_inter_pred_filters_luma_horz_av8.s +++ b/common/armv8/ih264_inter_pred_filters_luma_horz_av8.s @@ -94,15 +94,16 @@ // w4 => ht // w5 => wd +.text +.p2align 2 .include "ih264_neon_macros.s" -.text .global ih264_inter_pred_luma_horz_av8 -ENTRY ih264_inter_pred_luma_horz_av8 +ih264_inter_pred_luma_horz_av8: @@ -527,7 +528,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_filters_luma_vert_av8.s b/common/armv8/ih264_inter_pred_filters_luma_vert_av8.s index 3e195898..711d73e8 100644 --- a/common/armv8/ih264_inter_pred_filters_luma_vert_av8.s +++ b/common/armv8/ih264_inter_pred_filters_luma_vert_av8.s @@ -94,15 +94,16 @@ // w4 => ht // w5 => wd -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_vert_av8 -ENTRY ih264_inter_pred_luma_vert_av8 +ih264_inter_pred_luma_vert_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -449,7 +450,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_copy_av8.s b/common/armv8/ih264_inter_pred_luma_copy_av8.s index b42a03bc..007df30a 100644 --- a/common/armv8/ih264_inter_pred_luma_copy_av8.s +++ b/common/armv8/ih264_inter_pred_luma_copy_av8.s @@ -70,14 +70,15 @@ // w4 => ht // w5 => wd -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_copy_av8 -ENTRY ih264_inter_pred_luma_copy_av8 +ih264_inter_pred_luma_copy_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -127,7 +128,6 @@ end_loops: // LDMFD sp!,{x4-x12,x15} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -161,7 +161,6 @@ end_inner_loop_wd_8: // LDMFD sp!,{x4-x12,x15} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret core_loop_wd_16: @@ -194,7 +193,6 @@ end_inner_loop_wd_16: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -240,7 +238,7 @@ end_inner_loop_wd_16: // No need for pushing arm and neon registers .global ih264_interleave_copy_av8 -ENTRY ih264_interleave_copy_av8 +ih264_interleave_copy_av8: push_v_regs sxtw x2, w2 sxtw x3, w3 @@ -270,7 +268,6 @@ ENTRY ih264_interleave_copy_av8 st1 {v20.d}[1], [x0], x3 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_hpel_av8.s b/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_hpel_av8.s index bc2f7fbd..dd4383e9 100644 --- a/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_hpel_av8.s +++ b/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_hpel_av8.s @@ -58,14 +58,15 @@ // w5 => wd -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_horz_hpel_vert_hpel_av8 -ENTRY ih264_inter_pred_luma_horz_hpel_vert_hpel_av8 +ih264_inter_pred_luma_horz_hpel_vert_hpel_av8: //store register values to stack push_v_regs @@ -817,7 +818,6 @@ end_func: //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_qpel_av8.s b/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_qpel_av8.s index 1ec768f1..3563ac04 100644 --- a/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_qpel_av8.s +++ b/common/armv8/ih264_inter_pred_luma_horz_hpel_vert_qpel_av8.s @@ -112,14 +112,15 @@ // x6 => *pu1_tmp // w7 => dydx -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_horz_hpel_vert_qpel_av8 -ENTRY ih264_inter_pred_luma_horz_hpel_vert_qpel_av8 +ih264_inter_pred_luma_horz_hpel_vert_qpel_av8: // store register values to stack @@ -1118,7 +1119,6 @@ end_func: //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_horz_qpel_av8.s b/common/armv8/ih264_inter_pred_luma_horz_qpel_av8.s index 498620b3..38268c75 100644 --- a/common/armv8/ih264_inter_pred_luma_horz_qpel_av8.s +++ b/common/armv8/ih264_inter_pred_luma_horz_qpel_av8.s @@ -100,15 +100,16 @@ // w5 => wd // w7 => dydx -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_horz_qpel_av8 -ENTRY ih264_inter_pred_luma_horz_qpel_av8 +ih264_inter_pred_luma_horz_qpel_av8: push_v_regs @@ -594,7 +595,6 @@ end_func: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_hpel_av8.s b/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_hpel_av8.s index a13e0fad..6ccf11f0 100644 --- a/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_hpel_av8.s +++ b/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_hpel_av8.s @@ -112,14 +112,15 @@ // x6 => *pu1_tmp // w7 => dydx -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_horz_qpel_vert_hpel_av8 -ENTRY ih264_inter_pred_luma_horz_qpel_vert_hpel_av8 +ih264_inter_pred_luma_horz_qpel_vert_hpel_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -907,7 +908,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_qpel_av8.s b/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_qpel_av8.s index afad0a96..a9dfbd19 100644 --- a/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_qpel_av8.s +++ b/common/armv8/ih264_inter_pred_luma_horz_qpel_vert_qpel_av8.s @@ -110,14 +110,15 @@ // w5 => wd // w7 => dydx -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_horz_qpel_vert_qpel_av8 -ENTRY ih264_inter_pred_luma_horz_qpel_vert_qpel_av8 +ih264_inter_pred_luma_horz_qpel_vert_qpel_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -955,7 +956,6 @@ loop_4_start: end_func: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_inter_pred_luma_vert_qpel_av8.s b/common/armv8/ih264_inter_pred_luma_vert_qpel_av8.s index b0a5b12c..014facaf 100644 --- a/common/armv8/ih264_inter_pred_luma_vert_qpel_av8.s +++ b/common/armv8/ih264_inter_pred_luma_vert_qpel_av8.s @@ -100,14 +100,15 @@ // w5 => wd // w7 => dydx -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_inter_pred_luma_vert_qpel_av8 -ENTRY ih264_inter_pred_luma_vert_qpel_av8 +ih264_inter_pred_luma_vert_qpel_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -508,7 +509,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_intra_pred_chroma_av8.s b/common/armv8/ih264_intra_pred_chroma_av8.s index 78c6db54..39c02560 100644 --- a/common/armv8/ih264_intra_pred_chroma_av8.s +++ b/common/armv8/ih264_intra_pred_chroma_av8.s @@ -50,8 +50,9 @@ // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .extern ih264_gai1_intrapred_chroma_plane_coeffs1 .extern ih264_gai1_intrapred_chroma_plane_coeffs2 @@ -107,7 +108,7 @@ .global ih264_intra_pred_chroma_8x8_mode_dc_av8 -ENTRY ih264_intra_pred_chroma_8x8_mode_dc_av8 +ih264_intra_pred_chroma_8x8_mode_dc_av8: push_v_regs @@ -201,7 +202,6 @@ end_func: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -259,7 +259,7 @@ end_func: .global ih264_intra_pred_chroma_8x8_mode_horz_av8 -ENTRY ih264_intra_pred_chroma_8x8_mode_horz_av8 +ih264_intra_pred_chroma_8x8_mode_horz_av8: @@ -286,7 +286,6 @@ ENTRY ih264_intra_pred_chroma_8x8_mode_horz_av8 pop_v_regs - EXIT_FUNC ret @@ -342,7 +341,7 @@ ENTRY ih264_intra_pred_chroma_8x8_mode_horz_av8 .global ih264_intra_pred_chroma_8x8_mode_vert_av8 -ENTRY ih264_intra_pred_chroma_8x8_mode_vert_av8 +ih264_intra_pred_chroma_8x8_mode_vert_av8: push_v_regs sxtw x3, w3 @@ -360,7 +359,6 @@ ENTRY ih264_intra_pred_chroma_8x8_mode_vert_av8 st1 {v0.8b, v1.8b}, [x1], x3 pop_v_regs - EXIT_FUNC ret @@ -415,7 +413,7 @@ ENTRY ih264_intra_pred_chroma_8x8_mode_vert_av8 // w4 => ui_neighboravailability .global ih264_intra_pred_chroma_8x8_mode_plane_av8 -ENTRY ih264_intra_pred_chroma_8x8_mode_plane_av8 +ih264_intra_pred_chroma_8x8_mode_plane_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -570,7 +568,6 @@ end_func_plane: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_intra_pred_luma_16x16_av8.s b/common/armv8/ih264_intra_pred_luma_16x16_av8.s index aa7bb3a0..fa19c121 100644 --- a/common/armv8/ih264_intra_pred_luma_16x16_av8.s +++ b/common/armv8/ih264_intra_pred_luma_16x16_av8.s @@ -50,8 +50,9 @@ // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .extern ih264_gai1_intrapred_luma_plane_coeffs @@ -104,7 +105,7 @@ .global ih264_intra_pred_luma_16x16_mode_vert_av8 -ENTRY ih264_intra_pred_luma_16x16_mode_vert_av8 +ih264_intra_pred_luma_16x16_mode_vert_av8: push_v_regs sxtw x3, w3 @@ -131,7 +132,6 @@ ENTRY ih264_intra_pred_luma_16x16_mode_vert_av8 st1 {v0.8b, v1.8b}, [x1], x3 pop_v_regs - EXIT_FUNC ret @@ -188,7 +188,7 @@ ENTRY ih264_intra_pred_luma_16x16_mode_vert_av8 .global ih264_intra_pred_luma_16x16_mode_horz_av8 -ENTRY ih264_intra_pred_luma_16x16_mode_horz_av8 +ih264_intra_pred_luma_16x16_mode_horz_av8: @@ -233,7 +233,6 @@ ENTRY ih264_intra_pred_luma_16x16_mode_horz_av8 st1 {v25.16b}, [x1], x3 pop_v_regs - EXIT_FUNC ret @@ -292,7 +291,7 @@ ENTRY ih264_intra_pred_luma_16x16_mode_horz_av8 .global ih264_intra_pred_luma_16x16_mode_dc_av8 -ENTRY ih264_intra_pred_luma_16x16_mode_dc_av8 +ih264_intra_pred_luma_16x16_mode_dc_av8: @@ -364,7 +363,6 @@ end_func: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -420,7 +418,7 @@ end_func: // w4 => ui_neighboravailability .global ih264_intra_pred_luma_16x16_mode_plane_av8 -ENTRY ih264_intra_pred_luma_16x16_mode_plane_av8 +ih264_intra_pred_luma_16x16_mode_plane_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -590,6 +588,5 @@ end_func_plane: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_intra_pred_luma_4x4_av8.s b/common/armv8/ih264_intra_pred_luma_4x4_av8.s index b33b78a2..1f951317 100644 --- a/common/armv8/ih264_intra_pred_luma_4x4_av8.s +++ b/common/armv8/ih264_intra_pred_luma_4x4_av8.s @@ -54,8 +54,9 @@ ///** // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" @@ -107,7 +108,7 @@ .global ih264_intra_pred_luma_4x4_mode_vert_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_vert_av8 +ih264_intra_pred_luma_4x4_mode_vert_av8: push_v_regs sxtw x3, w3 @@ -121,7 +122,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_vert_av8 st1 {v0.s}[0], [x1], x3 pop_v_regs - EXIT_FUNC ret @@ -180,7 +180,7 @@ ENTRY ih264_intra_pred_luma_4x4_mode_vert_av8 .global ih264_intra_pred_luma_4x4_mode_horz_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_horz_av8 +ih264_intra_pred_luma_4x4_mode_horz_av8: push_v_regs sxtw x3, w3 @@ -196,7 +196,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_horz_av8 st1 {v4.s}[0], [x1], x3 pop_v_regs - EXIT_FUNC ret @@ -257,7 +256,7 @@ ENTRY ih264_intra_pred_luma_4x4_mode_horz_av8 .global ih264_intra_pred_luma_4x4_mode_dc_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_dc_av8 +ih264_intra_pred_luma_4x4_mode_dc_av8: @@ -344,7 +343,6 @@ end_func: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -401,7 +399,7 @@ end_func: .global ih264_intra_pred_luma_4x4_mode_diag_dl_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_diag_dl_av8 +ih264_intra_pred_luma_4x4_mode_diag_dl_av8: push_v_regs @@ -431,7 +429,6 @@ end_func_diag_dl: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -490,7 +487,7 @@ end_func_diag_dl: .global ih264_intra_pred_luma_4x4_mode_diag_dr_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_diag_dr_av8 +ih264_intra_pred_luma_4x4_mode_diag_dr_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -518,7 +515,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_diag_dr_av8 end_func_diag_dr: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -575,7 +571,7 @@ end_func_diag_dr: .global ih264_intra_pred_luma_4x4_mode_vert_r_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_vert_r_av8 +ih264_intra_pred_luma_4x4_mode_vert_r_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -607,7 +603,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_vert_r_av8 end_func_vert_r: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -662,7 +657,7 @@ end_func_vert_r: .global ih264_intra_pred_luma_4x4_mode_horz_d_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_horz_d_av8 +ih264_intra_pred_luma_4x4_mode_horz_d_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -694,7 +689,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_horz_d_av8 end_func_horz_d: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -751,7 +745,7 @@ end_func_horz_d: .global ih264_intra_pred_luma_4x4_mode_vert_l_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_vert_l_av8 +ih264_intra_pred_luma_4x4_mode_vert_l_av8: push_v_regs stp x19, x20, [sp, #-16]! @@ -778,7 +772,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_vert_l_av8 end_func_vert_l: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -835,7 +828,7 @@ end_func_vert_l: .global ih264_intra_pred_luma_4x4_mode_horz_u_av8 -ENTRY ih264_intra_pred_luma_4x4_mode_horz_u_av8 +ih264_intra_pred_luma_4x4_mode_horz_u_av8: push_v_regs sxtw x3, w3 @@ -873,7 +866,6 @@ ENTRY ih264_intra_pred_luma_4x4_mode_horz_u_av8 end_func_horz_u: ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_intra_pred_luma_8x8_av8.s b/common/armv8/ih264_intra_pred_luma_8x8_av8.s index e6945c1e..273aa81b 100644 --- a/common/armv8/ih264_intra_pred_luma_8x8_av8.s +++ b/common/armv8/ih264_intra_pred_luma_8x8_av8.s @@ -53,8 +53,9 @@ ///** ///** -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .extern ih264_gai1_intrapred_luma_8x8_horz_u @@ -108,7 +109,7 @@ .global ih264_intra_pred_luma_8x8_mode_vert_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_vert_av8 +ih264_intra_pred_luma_8x8_mode_vert_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -130,7 +131,6 @@ ENTRY ih264_intra_pred_luma_8x8_mode_vert_av8 // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack //ldp x19, x20,[sp],#16 pop_v_regs - EXIT_FUNC ret @@ -188,7 +188,7 @@ ENTRY ih264_intra_pred_luma_8x8_mode_vert_av8 .global ih264_intra_pred_luma_8x8_mode_horz_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_horz_av8 +ih264_intra_pred_luma_8x8_mode_horz_av8: @@ -226,7 +226,6 @@ ENTRY ih264_intra_pred_luma_8x8_mode_horz_av8 // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -286,7 +285,7 @@ ENTRY ih264_intra_pred_luma_8x8_mode_horz_av8 .global ih264_intra_pred_luma_8x8_mode_dc_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_dc_av8 +ih264_intra_pred_luma_8x8_mode_dc_av8: @@ -391,7 +390,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -446,7 +444,7 @@ end_func: .global ih264_intra_pred_luma_8x8_mode_diag_dl_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_diag_dl_av8 +ih264_intra_pred_luma_8x8_mode_diag_dl_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -497,7 +495,6 @@ end_func_diag_dl: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -551,7 +548,7 @@ end_func_diag_dl: .global ih264_intra_pred_luma_8x8_mode_diag_dr_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_diag_dr_av8 +ih264_intra_pred_luma_8x8_mode_diag_dr_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -599,7 +596,6 @@ end_func_diag_dr: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -653,7 +649,7 @@ end_func_diag_dr: .global ih264_intra_pred_luma_8x8_mode_vert_r_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_vert_r_av8 +ih264_intra_pred_luma_8x8_mode_vert_r_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -727,7 +723,6 @@ end_func_vert_r: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -780,7 +775,7 @@ end_func_vert_r: .global ih264_intra_pred_luma_8x8_mode_horz_d_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_horz_d_av8 +ih264_intra_pred_luma_8x8_mode_horz_d_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -858,7 +853,6 @@ end_func_horz_d: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -913,7 +907,7 @@ end_func_horz_d: .global ih264_intra_pred_luma_8x8_mode_vert_l_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_vert_l_av8 +ih264_intra_pred_luma_8x8_mode_vert_l_av8: // STMFD sp!, {x4-x12, x14} //Restoring registers from stack push_v_regs @@ -968,7 +962,6 @@ end_func_vert_l: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -1022,7 +1015,7 @@ end_func_vert_l: .global ih264_intra_pred_luma_8x8_mode_horz_u_av8 -ENTRY ih264_intra_pred_luma_8x8_mode_horz_u_av8 +ih264_intra_pred_luma_8x8_mode_horz_u_av8: // STMFD sp!, {x4-x12, x14} //store register values to stack push_v_regs @@ -1078,7 +1071,6 @@ end_func_horz_u: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_iquant_itrans_recon_av8.s b/common/armv8/ih264_iquant_itrans_recon_av8.s index 03d5001e..003ee74a 100644 --- a/common/armv8/ih264_iquant_itrans_recon_av8.s +++ b/common/armv8/ih264_iquant_itrans_recon_av8.s @@ -40,8 +40,9 @@ // * // ******************************************************************************* -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" ///* // ******************************************************************************* @@ -115,7 +116,7 @@ //if u4_qp_div_6 is greater than 4 then shift value will be positive and do left shift, here rnd_factor is 0 .global ih264_iquant_itrans_recon_4x4_av8 -ENTRY ih264_iquant_itrans_recon_4x4_av8 +ih264_iquant_itrans_recon_4x4_av8: push_v_regs sxtw x3, w3 @@ -232,7 +233,6 @@ skip_loading_luma_dc_src: st1 {v1.s}[1], [x2] //iv row store the value pop_v_regs - EXIT_FUNC ret @@ -303,7 +303,7 @@ skip_loading_luma_dc_src: //sp#8 => *pi2_dc_src .global ih264_iquant_itrans_recon_chroma_4x4_av8 -ENTRY ih264_iquant_itrans_recon_chroma_4x4_av8 +ih264_iquant_itrans_recon_chroma_4x4_av8: //VLD4.S16 is used because the pointer is incremented by SUB_BLK_WIDTH_4x4 //If the macro value changes need to change the instruction according to it. @@ -455,7 +455,6 @@ ENTRY ih264_iquant_itrans_recon_chroma_4x4_av8 st1 {v13.8b}, [x0] pop_v_regs - EXIT_FUNC ret ///* @@ -527,7 +526,7 @@ ENTRY ih264_iquant_itrans_recon_chroma_4x4_av8 //NOT USED => pi2_dc_ld_addr .global ih264_iquant_itrans_recon_8x8_av8 -ENTRY ih264_iquant_itrans_recon_8x8_av8 +ih264_iquant_itrans_recon_8x8_av8: push_v_regs sxtw x3, w3 @@ -778,7 +777,6 @@ trans_1x8_1d: st1 {v7.8b}, [x2] pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_iquant_itrans_recon_dc_av8.s b/common/armv8/ih264_iquant_itrans_recon_dc_av8.s index d8127743..13061ec4 100644 --- a/common/armv8/ih264_iquant_itrans_recon_dc_av8.s +++ b/common/armv8/ih264_iquant_itrans_recon_dc_av8.s @@ -114,9 +114,10 @@ // => pi2_dc_ld_addr .text +.p2align 2 .global ih264_iquant_itrans_recon_4x4_dc_av8 -ENTRY ih264_iquant_itrans_recon_4x4_dc_av8 +ih264_iquant_itrans_recon_4x4_dc_av8: sxtw x3, w3 sxtw x4, w4 @@ -165,7 +166,6 @@ donot_use_pi2_src_luma_dc: st1 {v2.s}[0], [x2], x4 st1 {v2.s}[1], [x2] pop_v_regs - EXIT_FUNC ret // /* @@ -223,7 +223,7 @@ donot_use_pi2_src_luma_dc: .global ih264_iquant_itrans_recon_chroma_4x4_dc_av8 -ENTRY ih264_iquant_itrans_recon_chroma_4x4_dc_av8 +ih264_iquant_itrans_recon_chroma_4x4_dc_av8: sxtw x3, w3 sxtw x4, w4 @@ -270,7 +270,6 @@ ENTRY ih264_iquant_itrans_recon_chroma_4x4_dc_av8 st1 {v12.d}[0], [x0], x4 st1 {v12.d}[1], [x0] pop_v_regs - EXIT_FUNC ret ///* @@ -342,7 +341,7 @@ ENTRY ih264_iquant_itrans_recon_chroma_4x4_dc_av8 //NOT USED => pi2_dc_ld_addr .global ih264_iquant_itrans_recon_8x8_dc_av8 -ENTRY ih264_iquant_itrans_recon_8x8_dc_av8 +ih264_iquant_itrans_recon_8x8_dc_av8: push_v_regs sxtw x3, w3 @@ -399,7 +398,6 @@ ENTRY ih264_iquant_itrans_recon_8x8_dc_av8 st1 {v12.8b}, [x2] pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_mem_fns_neon_av8.s b/common/armv8/ih264_mem_fns_neon_av8.s index 4170037d..802550df 100644 --- a/common/armv8/ih264_mem_fns_neon_av8.s +++ b/common/armv8/ih264_mem_fns_neon_av8.s @@ -41,8 +41,9 @@ // ******************************************************************************* //*/ -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" ///** //******************************************************************************* //* @@ -81,7 +82,7 @@ .global ih264_memcpy_mul_8_av8 -ENTRY ih264_memcpy_mul_8_av8 +ih264_memcpy_mul_8_av8: loop_neon_memcpy_mul_8: // Memcpy 8 bytes @@ -90,7 +91,6 @@ loop_neon_memcpy_mul_8: subs w2, w2, #8 bne loop_neon_memcpy_mul_8 - EXIT_FUNC ret @@ -109,7 +109,7 @@ loop_neon_memcpy_mul_8: .global ih264_memcpy_av8 -ENTRY ih264_memcpy_av8 +ih264_memcpy_av8: subs w2, w2, #8 blt arm_memcpy loop_neon_memcpy: @@ -130,10 +130,8 @@ loop_arm_memcpy: strb w3, [x0], #1 subs w2, w2, #1 bne loop_arm_memcpy - EXIT_FUNC ret end_func1: - EXIT_FUNC ret @@ -148,7 +146,7 @@ end_func1: .global ih264_memset_mul_8_av8 -ENTRY ih264_memset_mul_8_av8 +ih264_memset_mul_8_av8: // Assumptions: numbytes is either 8, 16 or 32 dup v0.8b, w1 @@ -159,7 +157,6 @@ loop_memset_mul_8: subs w2, w2, #8 bne loop_memset_mul_8 - EXIT_FUNC ret @@ -175,7 +172,7 @@ loop_memset_mul_8: .global ih264_memset_av8 -ENTRY ih264_memset_av8 +ih264_memset_av8: subs w2, w2, #8 blt arm_memset dup v0.8b, w1 @@ -195,10 +192,8 @@ loop_arm_memset: strb w1, [x0], #1 subs w2, w2, #1 bne loop_arm_memset - EXIT_FUNC ret end_func2: - EXIT_FUNC ret @@ -216,7 +211,7 @@ end_func2: .global ih264_memset_16bit_mul_8_av8 -ENTRY ih264_memset_16bit_mul_8_av8 +ih264_memset_16bit_mul_8_av8: // Assumptions: num_words is either 8, 16 or 32 @@ -229,7 +224,6 @@ loop_memset_16bit_mul_8: subs w2, w2, #8 bne loop_memset_16bit_mul_8 - EXIT_FUNC ret @@ -246,7 +240,7 @@ loop_memset_16bit_mul_8: .global ih264_memset_16bit_av8 -ENTRY ih264_memset_16bit_av8 +ih264_memset_16bit_av8: subs w2, w2, #8 blt arm_memset_16bit dup v0.4h, w1 @@ -267,11 +261,9 @@ loop_arm_memset_16bit: strh w1, [x0], #2 subs w2, w2, #1 bne loop_arm_memset_16bit - EXIT_FUNC ret end_func3: - EXIT_FUNC ret diff --git a/common/armv8/ih264_neon_macros.s b/common/armv8/ih264_neon_macros.s index e609b2f0..6ff5b916 100644 --- a/common/armv8/ih264_neon_macros.s +++ b/common/armv8/ih264_neon_macros.s @@ -39,52 +39,3 @@ eor \reg1, \reg1, \reg2 .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 diff --git a/common/armv8/ih264_padding_neon_av8.s b/common/armv8/ih264_padding_neon_av8.s index cbb4ecc1..e03fe2fb 100644 --- a/common/armv8/ih264_padding_neon_av8.s +++ b/common/armv8/ih264_padding_neon_av8.s @@ -41,9 +41,9 @@ // ******************************************************************************* //*/ -.include "ih264_neon_macros.s" .text - +.p2align 2 +.include "ih264_neon_macros.s" ///** //******************************************************************************* //* @@ -82,7 +82,7 @@ .global ih264_pad_top_av8 -ENTRY ih264_pad_top_av8 +ih264_pad_top_av8: // STMFD sp!, {x4-x11,x14} //stack stores the values of the arguments push_v_regs @@ -110,7 +110,6 @@ loop_neon_pad_top: // LDMFD sp!,{x4-x11,pc} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -169,7 +168,7 @@ loop_neon_pad_top: .global ih264_pad_left_luma_av8 -ENTRY ih264_pad_left_luma_av8 +ih264_pad_left_luma_av8: // STMFD sp!, {x4-x11,x14} //stack stores the values of the arguments push_v_regs @@ -269,7 +268,6 @@ end_func: // LDMFD sp!,{x4-x11,pc} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -329,7 +327,7 @@ end_func: .global ih264_pad_left_chroma_av8 -ENTRY ih264_pad_left_chroma_av8 +ih264_pad_left_chroma_av8: // STMFD sp!, {x4-x11, x14} //stack stores the values of the arguments push_v_regs @@ -417,7 +415,6 @@ end_func_l_c: // LDMFD sp!,{x4-x11,pc} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -487,7 +484,7 @@ end_func_l_c: .global ih264_pad_right_luma_av8 -ENTRY ih264_pad_right_luma_av8 +ih264_pad_right_luma_av8: // STMFD sp!, {x4-x11, x14} //stack stores the values of the arguments push_v_regs @@ -587,7 +584,6 @@ end_func_r: // LDMFD sp!,{x4-x11,pc} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -646,7 +642,7 @@ end_func_r: .global ih264_pad_right_chroma_av8 -ENTRY ih264_pad_right_chroma_av8 +ih264_pad_right_chroma_av8: // STMFD sp!, {x4-x11, x14} //stack stores the values of the arguments push_v_regs @@ -731,7 +727,6 @@ end_func_r_c: // LDMFD sp!,{x4-x11,pc} //Reload the registers from SP ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_resi_trans_quant_av8.s b/common/armv8/ih264_resi_trans_quant_av8.s index 3c935d13..d2ba3cfa 100644 --- a/common/armv8/ih264_resi_trans_quant_av8.s +++ b/common/armv8/ih264_resi_trans_quant_av8.s @@ -39,6 +39,7 @@ //******************************************************************************* .include "ih264_neon_macros.s" .text +.p2align 2 //***************************************************************************** //* //* function name : ih264_resi_trans_quant_4x4 @@ -62,7 +63,7 @@ //***************************************************************************** .global ih264_resi_trans_quant_4x4_av8 -ENTRY ih264_resi_trans_quant_4x4_av8 +ih264_resi_trans_quant_4x4_av8: push_v_regs //x0 :pointer to src buffer @@ -227,7 +228,6 @@ ENTRY ih264_resi_trans_quant_4x4_av8 st1 {v26.b}[0], [x9] //write nnz pop_v_regs - EXIT_FUNC ret @@ -254,7 +254,7 @@ ENTRY ih264_resi_trans_quant_4x4_av8 //***************************************************************************** .global ih264_resi_trans_quant_chroma_4x4_av8 -ENTRY ih264_resi_trans_quant_chroma_4x4_av8 +ih264_resi_trans_quant_chroma_4x4_av8: push_v_regs //x0 :pointer to src buffer @@ -430,7 +430,6 @@ ENTRY ih264_resi_trans_quant_chroma_4x4_av8 st1 {v26.b}[0], [x9] //write nnz pop_v_regs - EXIT_FUNC ret @@ -578,7 +577,6 @@ ih264_hadamard_quant_4x4_av8: st1 {v20.b}[0], [x6] pop_v_regs - EXIT_FUNC ret @@ -617,7 +615,7 @@ ih264_hadamard_quant_4x4_av8: // ) .global ih264_hadamard_quant_2x2_uv_av8 -ENTRY ih264_hadamard_quant_2x2_uv_av8 +ih264_hadamard_quant_2x2_uv_av8: push_v_regs @@ -684,7 +682,6 @@ ENTRY ih264_hadamard_quant_2x2_uv_av8 st1 {v20.h}[0], [x6] //store nnz pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_weighted_bi_pred_av8.s b/common/armv8/ih264_weighted_bi_pred_av8.s index fd20b152..475f690e 100644 --- a/common/armv8/ih264_weighted_bi_pred_av8.s +++ b/common/armv8/ih264_weighted_bi_pred_av8.s @@ -126,14 +126,15 @@ // [sp+24] => ht (w11) // [sp+32] => wd (w12) // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_weighted_bi_pred_luma_av8 -ENTRY ih264_weighted_bi_pred_luma_av8 +ih264_weighted_bi_pred_luma_av8: // STMFD sp!, {x4-x12,x14} //stack stores the values of the arguments push_v_regs @@ -316,7 +317,6 @@ end_loops: // LDMFD sp!,{x4-x12,x15} //Reload the registers from sp ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -415,7 +415,7 @@ end_loops: .global ih264_weighted_bi_pred_chroma_av8 -ENTRY ih264_weighted_bi_pred_chroma_av8 +ih264_weighted_bi_pred_chroma_av8: // STMFD sp!, {x4-x12,x14} //stack stores the values of the arguments push_v_regs @@ -567,7 +567,6 @@ end_loops_uv: // LDMFD sp!,{x4-x12,x15} //Reload the registers from sp ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/common/armv8/ih264_weighted_pred_av8.s b/common/armv8/ih264_weighted_pred_av8.s index 353220eb..f1452170 100644 --- a/common/armv8/ih264_weighted_pred_av8.s +++ b/common/armv8/ih264_weighted_pred_av8.s @@ -106,14 +106,15 @@ // w7 => ht // [sp] => wd (w8) // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264_weighted_pred_luma_av8 -ENTRY ih264_weighted_pred_luma_av8 +ih264_weighted_pred_luma_av8: // STMFD sp!, {x4-x9,x14} //stack stores the values of the arguments push_v_regs @@ -264,7 +265,6 @@ end_loops: // LDMFD sp!,{x4-x9,x15} //Reload the registers from sp ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -342,7 +342,7 @@ end_loops: .global ih264_weighted_pred_chroma_av8 -ENTRY ih264_weighted_pred_chroma_av8 +ih264_weighted_pred_chroma_av8: // STMFD sp!, {x4-x9,x14} //stack stores the values of the arguments push_v_regs @@ -466,7 +466,6 @@ end_loops_uv: // LDMFD sp!,{x4-x9,x15} //Reload the registers from sp ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s b/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s index fdd8cfc5..c23a6ea7 100644 --- a/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s +++ b/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s @@ -71,12 +71,13 @@ // WORD32 *pu4_sadmin, // UWORD32 u4_valid_intra_modes) // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264e_evaluate_intra16x16_modes_av8 -ENTRY ih264e_evaluate_intra16x16_modes_av8 +ih264e_evaluate_intra16x16_modes_av8: //x0 = pu1_src, //x1 = pu1_ngbr_pels_i16, @@ -586,7 +587,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s b/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s index bbad5102..4014c4f0 100644 --- a/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s +++ b/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s @@ -71,12 +71,13 @@ // WORD32 *pu4_sadmin, // UWORD32 u4_valid_intra_modes) // -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" .global ih264e_evaluate_intra_chroma_modes_av8 -ENTRY ih264e_evaluate_intra_chroma_modes_av8 +ih264e_evaluate_intra_chroma_modes_av8: //x0 = pu1_src, //x1 = pu1_ngbr_pels_i16, @@ -462,7 +463,6 @@ end_func: // LDMFD sp!,{x4-x12,PC} //Restoring registers from stack ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/encoder/armv8/ih264e_half_pel_av8.s b/encoder/armv8/ih264e_half_pel_av8.s index d01607b2..cdac8daa 100644 --- a/encoder/armv8/ih264e_half_pel_av8.s +++ b/encoder/armv8/ih264e_half_pel_av8.s @@ -40,8 +40,9 @@ // */ -.include "ih264_neon_macros.s" .text +.p2align 2 +.include "ih264_neon_macros.s" ///******************************************************************************* //* @@ -82,7 +83,7 @@ .global ih264e_sixtapfilter_horz_av8 -ENTRY ih264e_sixtapfilter_horz_av8 +ih264e_sixtapfilter_horz_av8: // STMFD sp!,{x14} push_v_regs sxtw x2, w2 @@ -190,7 +191,6 @@ filter_horz_loop: // LDMFD sp!,{pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret @@ -262,7 +262,7 @@ filter_horz_loop: .global ih264e_sixtap_filter_2dvh_vert_av8 -ENTRY ih264e_sixtap_filter_2dvh_vert_av8 +ih264e_sixtap_filter_2dvh_vert_av8: // STMFD sp!,{x10,x11,x12,x14} push_v_regs sxtw x3, w3 @@ -1000,7 +1000,6 @@ filter_2dvh_loop: // LDMFD sp!,{x10,x11,x12,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret filter_2dvh_skip_row: @@ -1015,7 +1014,6 @@ filter_2dvh_skip_row: // LDMFD sp!,{x10,x11,x12,pc} ldp x19, x20, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/encoder/armv8/ime_distortion_metrics_av8.s b/encoder/armv8/ime_distortion_metrics_av8.s index c588ad83..00d11c0d 100644 --- a/encoder/armv8/ime_distortion_metrics_av8.s +++ b/encoder/armv8/ime_distortion_metrics_av8.s @@ -76,11 +76,24 @@ //* //****************************************************************************** //*/ -.include "ih264_neon_macros.s" .text +.p2align 2 + +.macro push_v_regs + stp d8, d9, [sp, #-16]! + stp d10, d11, [sp, #-16]! + stp d12, d13, [sp, #-16]! + stp d14, d15, [sp, #-16]! +.endm +.macro pop_v_regs + ldp d14, d15, [sp], #16 + ldp d12, d13, [sp], #16 + ldp d10, d11, [sp], #16 + ldp d8, d9, [sp], #16 +.endm .global ime_compute_sad_16x16_fast_av8 -ENTRY ime_compute_sad_16x16_fast_av8 +ime_compute_sad_16x16_fast_av8: push_v_regs sxtw x2, w2 sxtw x3, w3 @@ -125,7 +138,6 @@ core_loop_ime_compute_sad_16x16_fast_av8: st1 {v30.s}[0], [x5] pop_v_regs - EXIT_FUNC ret @@ -164,7 +176,7 @@ core_loop_ime_compute_sad_16x16_fast_av8: //*/ // .global ime_compute_sad_16x8_av8 -ENTRY ime_compute_sad_16x8_av8 +ime_compute_sad_16x8_av8: //chheck what stride incremtn to use //earlier code did not have this lsl @@ -208,7 +220,6 @@ core_loop_ime_compute_sad_16x8_av8: st1 {v30.s}[0], [x5] pop_v_regs - EXIT_FUNC ret ///** @@ -245,7 +256,7 @@ core_loop_ime_compute_sad_16x8_av8: //*/ .global ime_compute_sad_16x16_ea8_av8 -ENTRY ime_compute_sad_16x16_ea8_av8 +ime_compute_sad_16x16_ea8_av8: push_v_regs sxtw x2, w2 @@ -355,7 +366,6 @@ ENTRY ime_compute_sad_16x16_ea8_av8 end_func_16x16: st1 {v31.s}[0], [x5] pop_v_regs - EXIT_FUNC ret @@ -372,7 +382,7 @@ end_func_16x16: //*/ .global ime_calculate_sad2_prog_av8 -ENTRY ime_calculate_sad2_prog_av8 +ime_calculate_sad2_prog_av8: // x0 = ref1 // x1 = ref2 @@ -437,7 +447,6 @@ core_loop_ime_calculate_sad2_prog_av8: st1 {v30.2s}, [x5] pop_v_regs - EXIT_FUNC ret ///* @@ -453,7 +462,7 @@ core_loop_ime_calculate_sad2_prog_av8: //*/ .global ime_calculate_sad3_prog_av8 -ENTRY ime_calculate_sad3_prog_av8 +ime_calculate_sad3_prog_av8: // x0 = ref1 // x1 = ref2 @@ -508,7 +517,6 @@ core_loop_ime_calculate_sad3_prog_av8: st1 {v30.2s}, [x6] pop_v_regs - EXIT_FUNC ret @@ -542,7 +550,7 @@ core_loop_ime_calculate_sad3_prog_av8: .p2align 2 .global ime_sub_pel_compute_sad_16x16_av8 -ENTRY ime_sub_pel_compute_sad_16x16_av8 +ime_sub_pel_compute_sad_16x16_av8: push_v_regs sxtw x4, w4 sxtw x5, w5 @@ -611,7 +619,6 @@ core_loop_ime_sub_pel_compute_sad_16x16_av8: pop_v_regs - EXIT_FUNC ret @@ -648,7 +655,7 @@ core_loop_ime_sub_pel_compute_sad_16x16_av8: //****************************************************************************** //*/ .global ime_compute_sad_16x16_av8 -ENTRY ime_compute_sad_16x16_av8 +ime_compute_sad_16x16_av8: push_v_regs sxtw x2, w2 sxtw x3, w3 @@ -689,7 +696,6 @@ core_loop_ime_compute_sad_16x16_av8: st1 {v30.s}[0], [x5] pop_v_regs - EXIT_FUNC ret @@ -706,7 +712,7 @@ core_loop_ime_compute_sad_16x16_av8: //*/ .global ime_calculate_sad4_prog_av8 -ENTRY ime_calculate_sad4_prog_av8 +ime_calculate_sad4_prog_av8: push_v_regs sxtw x2, w2 sxtw x3, w3 @@ -750,7 +756,6 @@ core_loop_ime_calculate_sad4_prog_av8: addp v28.4s, v28.4s, v30.4s st1 {v28.4s}, [x4] pop_v_regs - EXIT_FUNC ret @@ -783,7 +788,7 @@ core_loop_ime_calculate_sad4_prog_av8: //* //***************************************************************************** .global ime_compute_satqd_16x16_lumainter_av8 -ENTRY ime_compute_satqd_16x16_lumainter_av8 +ime_compute_satqd_16x16_lumainter_av8: //x0 :pointer to src buffer //x1 :pointer to est buffer //w2 :Source stride @@ -985,5 +990,4 @@ satdq_end_func: ldp d10, d11, [sp], #16 ldp d8, d9, [sp], #16 pop_v_regs - EXIT_FUNC ret diff --git a/examples/Android.bp b/examples/Android.bp index 00152731..5e653906 100644 --- a/examples/Android.bp +++ b/examples/Android.bp @@ -9,6 +9,9 @@ package { cc_defaults { name: "avcdec_defaults", + defaults: [ + "no_bti", + ], gtest: false, host_supported: true, cflags: [ @@ -29,6 +32,9 @@ cc_defaults { cc_defaults { name: "avcenc_defaults", + defaults: [ + "no_bti", + ], gtest: false, host_supported: true, cflags: [ diff --git a/fuzzer/Android.bp b/fuzzer/Android.bp index 5d3e63b6..33562f2f 100644 --- a/fuzzer/Android.bp +++ b/fuzzer/Android.bp @@ -9,6 +9,9 @@ package { cc_defaults { name: "libavc_fuzzer_defaults", + defaults: [ + "no_bti", + ], host_supported: true, static_libs: ["liblog"], target: { diff --git a/tests/Android.bp b/tests/Android.bp index 89bb1e75..c56d3f18 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -25,6 +25,9 @@ package { cc_test { name: "AvcEncTest", + defaults: [ + "no_bti", + ], gtest: true, test_suites: ["device-tests"],