aboutsummaryrefslogtreecommitdiff
path: root/common/arm/ihevc_sao_edge_offset_class0_chroma.s
diff options
context:
space:
mode:
Diffstat (limited to 'common/arm/ihevc_sao_edge_offset_class0_chroma.s')
-rw-r--r--common/arm/ihevc_sao_edge_offset_class0_chroma.s24
1 files changed, 18 insertions, 6 deletions
diff --git a/common/arm/ihevc_sao_edge_offset_class0_chroma.s b/common/arm/ihevc_sao_edge_offset_class0_chroma.s
index 1dd56f6..e11cd4f 100644
--- a/common/arm/ihevc_sao_edge_offset_class0_chroma.s
+++ b/common/arm/ihevc_sao_edge_offset_class0_chroma.s
@@ -60,6 +60,15 @@
@r9 => wd
@r10=> ht
+.equ pu1_src_top_left_offset, 104
+.equ pu1_src_top_right_offset, 108
+.equ pu1_src_bot_left_offset, 112
+.equ pu1_avail_offset, 116
+.equ pi1_sao_u_offset, 120
+.equ pi1_sao_v_offset, 124
+.equ wd_offset, 128
+.equ ht_offset, 132
+
.text
.p2align 2
@@ -73,20 +82,22 @@ ihevc_sao_edge_offset_class0_chroma_a9q:
STMFD sp!, {r4-r12, r14} @stack stores the values of the arguments
- LDR r9,[sp,#64] @Loads wd
+ vpush {d8 - d15}
+
+ LDR r9,[sp,#wd_offset] @Loads wd
- LDR r4,[sp,#40] @Loads pu1_src_top_left
+ LDR r4,[sp,#pu1_src_top_left_offset] @Loads pu1_src_top_left
ADD r11,r3,r9 @pu1_src_top[wd]
- LDR r10,[sp,#68] @Loads ht
+ LDR r10,[sp,#ht_offset] @Loads ht
VMOV.I8 Q1,#2 @const_2 = vdupq_n_s8(2)
LDRH r12,[r11,#-2] @pu1_src_top[wd - 1]
- LDR r7,[sp,#52] @Loads pu1_avail
+ LDR r7,[sp,#pu1_avail_offset] @Loads pu1_avail
VMOV.I16 Q2,#0 @const_min_clip = vdupq_n_s16(0)
STRH r12,[r4] @*pu1_src_top_left = pu1_src_top[wd - 1]
- LDR r8,[sp,#56] @Loads pi1_sao_offset_u
+ LDR r8,[sp,#pi1_sao_u_offset] @Loads pi1_sao_offset_u
VMOV.I16 Q3,#255 @const_max_clip = vdupq_n_u16((1 << bit_depth) - 1)
SUB r4,r10,#1 @(ht - 1)
@@ -96,7 +107,7 @@ ulbl1:
VMOV.S8 Q4,#0xFF @au1_mask = vdupq_n_s8(-1)
MUL r4,r4,r1 @(ht - 1) * src_strd
- LDR r5,[sp,#60] @Loads pi1_sao_offset_v
+ LDR r5,[sp,#pi1_sao_v_offset] @Loads pi1_sao_offset_v
VLD1.8 D11,[r8] @offset_tbl = vld1_s8(pi1_sao_offset_u)
ADD r4,r4,r0 @pu1_src[(ht - 1) * src_strd]
@@ -423,6 +434,7 @@ PU1_SRC_LOOP_RESIDUE:
BNE PU1_SRC_LOOP_RESIDUE @If not equal jump to the pu1_src loop
END_LOOPS:
+ vpop {d8 - d15}
LDMFD sp!,{r4-r12,r15} @Reload the registers from SP