mirror of
https://github.com/ittiam-systems/libhevc.git
synced 2026-10-17 06:16:06 +07:00
[automerger] Add push-pop for Neon D8-D15 registers am: 6acb36d25d
Change-Id: Ib972a88cef7e3ccb1388aede0d9e1919c218a66d
This commit is contained in:
commit
9acce62f78
3 changed files with 17 additions and 16 deletions
|
|
@ -68,13 +68,13 @@
|
|||
@* *
|
||||
@* Register Usage : R0 - R14 *
|
||||
@* *
|
||||
@* Stack Usage : 40 Bytes *
|
||||
@* Stack Usage : 104 Bytes *
|
||||
@* *
|
||||
@* Interruptibility : Interruptible *
|
||||
@* *
|
||||
@* Known Limitations *
|
||||
@* Assumptions: Image Width: Assumed to be multiple of 16 and *
|
||||
@* greater than or equal to 16 *
|
||||
@* greater than or equal to 16 *
|
||||
@* Image Height: Assumed to be even. *
|
||||
@* *
|
||||
@* Revision History : *
|
||||
|
|
@ -82,6 +82,7 @@
|
|||
@* 07 06 2010 Varshita Draft *
|
||||
@* 07 06 2010 Naveen Kr T Completed *
|
||||
@* 05 08 2013 Naveen K P Modified for HEVC *
|
||||
@* 30 10 2018 Saurabh Sood Store D registers to stack *
|
||||
@*****************************************************************************/
|
||||
.global ihevcd_fmt_conv_420sp_to_rgba8888_a9q
|
||||
.type ihevcd_fmt_conv_420sp_to_rgba8888_a9q, function
|
||||
|
|
@ -89,7 +90,7 @@ ihevcd_fmt_conv_420sp_to_rgba8888_a9q:
|
|||
|
||||
@// push the registers on the stack
|
||||
STMFD SP!,{R4-R12,LR}
|
||||
|
||||
VPUSH {d8-d15}
|
||||
|
||||
@//R0 - Y PTR
|
||||
@//R1 - UV PTR
|
||||
|
|
@ -131,12 +132,12 @@ ihevcd_fmt_conv_420sp_to_rgba8888_a9q:
|
|||
|
||||
@//D0 HAS C1-C2-C3-C4
|
||||
@// load other parameters from stack
|
||||
LDR R5,[sp,#40]
|
||||
LDR R5,[sp,#104]
|
||||
@LDR R4,[sp,#44]
|
||||
LDR R6,[sp,#44]
|
||||
LDR R7,[sp,#48]
|
||||
LDR R6,[sp,#108]
|
||||
LDR R7,[sp,#112]
|
||||
@LDR R8,[sp,#52]
|
||||
LDR R9,[sp,#52]
|
||||
LDR R9,[sp,#116]
|
||||
|
||||
@// calculate offsets, offset = stride - width
|
||||
SUB R10,R6,R3 @// luma offset
|
||||
|
|
@ -445,10 +446,8 @@ LABEL_YUV420SP_TO_RGB8888_WIDTH_LOOP_SKIP:
|
|||
BNE LABEL_YUV420SP_TO_RGB8888_HEIGHT_LOOP
|
||||
|
||||
@//POP THE REGISTERS
|
||||
VPOP {d8-d15}
|
||||
LDMFD SP!,{R4-R12,PC}
|
||||
|
||||
|
||||
|
||||
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ ihevcd_itrans_recon_dc_chroma_a9q:
|
|||
|
||||
|
||||
push {r0-r11,lr}
|
||||
ldr r4,[sp,#0x34] @loads log2_trans_size
|
||||
ldr r5,[sp,#0x38] @ loads i2_coeff_value
|
||||
|
||||
vpush {d8-d15}
|
||||
ldr r4,[sp,#0x74] @loads log2_trans_size
|
||||
ldr r5,[sp,#0x78] @ loads i2_coeff_value
|
||||
mov r10,#1
|
||||
lsl r4,r10,r4 @ trans_size = (1 << log2_trans_size)@
|
||||
mov r6,#64 @ 1 << (shift1 - 1)@
|
||||
|
|
@ -188,6 +188,7 @@ col_loop_4chroma:
|
|||
vst1.u32 {d8},[r1]
|
||||
|
||||
end_loops_chroma:
|
||||
vpop {d8-d15}
|
||||
pop {r0-r11,pc}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -59,9 +59,9 @@ ihevcd_itrans_recon_dc_luma_a9q:
|
|||
|
||||
|
||||
push {r0-r11,lr}
|
||||
ldr r4,[sp,#0x34] @loads log2_trans_size
|
||||
ldr r5,[sp,#0x38] @ loads i2_coeff_value
|
||||
|
||||
vpush {d8-d15}
|
||||
ldr r4,[sp,#0x74] @loads log2_trans_size
|
||||
ldr r5,[sp,#0x78] @ loads i2_coeff_value
|
||||
mov r10,#1
|
||||
lsl r4,r10,r4 @ trans_size = (1 << log2_trans_size)@
|
||||
mov r6,#64 @ 1 << (shift1 - 1)@
|
||||
|
|
@ -182,6 +182,7 @@ col_loop_4:
|
|||
vst1.u32 {d5[0]},[r1]
|
||||
|
||||
end_loops:
|
||||
vpop {d8-d15}
|
||||
pop {r0-r11,pc}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue