|
|
@ -56,7 +56,7 @@ |
|
|
|
#define FIX_0xFFFF_ID 48 |
|
|
|
#define FIX_0xFFFF_ID 48 |
|
|
|
|
|
|
|
|
|
|
|
function ff_j_rev_dct_arm, export=1 |
|
|
|
function ff_j_rev_dct_arm, export=1 |
|
|
|
stmdb sp!, { r4 - r12, lr } @ all callee saved regs
|
|
|
|
push {r4 - r12, lr} |
|
|
|
sub sp, sp, #4 @ reserve some space on the stack
|
|
|
|
sub sp, sp, #4 @ reserve some space on the stack
|
|
|
|
str r0, [ sp ] @ save the DCT pointer to the stack
|
|
|
|
str r0, [ sp ] @ save the DCT pointer to the stack
|
|
|
|
|
|
|
|
|
|
|
@ -99,7 +99,7 @@ row_loop: |
|
|
|
add r4, r6, r3, lsl #13 @ r4 = tmp11
|
|
|
|
add r4, r6, r3, lsl #13 @ r4 = tmp11
|
|
|
|
rsb r3, r6, r3, lsl #13 @ r3 = tmp12
|
|
|
|
rsb r3, r6, r3, lsl #13 @ r3 = tmp12
|
|
|
|
|
|
|
|
|
|
|
|
stmdb sp!, { r0, r2, r3, r4 } @ save on the stack tmp10, tmp13, tmp12, tmp11
|
|
|
|
push {r0, r2, r3, r4} @ save on the stack tmp10, tmp13, tmp12, tmp11
|
|
|
|
|
|
|
|
|
|
|
|
ldrsh r3, [lr, #10] @ r3 = 'd3'
|
|
|
|
ldrsh r3, [lr, #10] @ r3 = 'd3'
|
|
|
|
ldrsh r5, [lr, #12] @ r5 = 'd5'
|
|
|
|
ldrsh r5, [lr, #12] @ r5 = 'd5'
|
|
|
@ -133,8 +133,8 @@ row_loop: |
|
|
|
add r3, r3, r4 @ r3 = tmp2
|
|
|
|
add r3, r3, r4 @ r3 = tmp2
|
|
|
|
add r1, r1, r6 @ r1 = tmp3
|
|
|
|
add r1, r1, r6 @ r1 = tmp3
|
|
|
|
|
|
|
|
|
|
|
|
ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp12 / r6 = tmp11
|
|
|
|
pop {r0, r2, r4, r6} @ r0 = tmp10 / r2 = tmp13 / r4 = tmp12 / r6 = tmp11
|
|
|
|
@ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
|
|
|
|
@ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
|
|
|
|
|
|
|
|
|
|
|
|
@ Compute DESCALE(tmp10 + tmp3, CONST_BITS-PASS1_BITS)
|
|
|
|
@ Compute DESCALE(tmp10 + tmp3, CONST_BITS-PASS1_BITS)
|
|
|
|
add r8, r0, r1 |
|
|
|
add r8, r0, r1 |
|
|
@ -242,7 +242,7 @@ column_loop: |
|
|
|
orrs r10, r9, r10 |
|
|
|
orrs r10, r9, r10 |
|
|
|
beq empty_odd_column |
|
|
|
beq empty_odd_column |
|
|
|
|
|
|
|
|
|
|
|
stmdb sp!, { r0, r2, r4, r6 } @ save on the stack tmp10, tmp13, tmp12, tmp11
|
|
|
|
push {r0, r2, r4, r6} @ save on the stack tmp10, tmp13, tmp12, tmp11
|
|
|
|
|
|
|
|
|
|
|
|
add r0, r3, r5 @ r0 = 'z2'
|
|
|
|
add r0, r3, r5 @ r0 = 'z2'
|
|
|
|
add r2, r1, r7 @ r2 = 'z1'
|
|
|
|
add r2, r1, r7 @ r2 = 'z1'
|
|
|
@ -272,8 +272,8 @@ column_loop: |
|
|
|
add r3, r3, r4 @ r3 = tmp2
|
|
|
|
add r3, r3, r4 @ r3 = tmp2
|
|
|
|
add r1, r1, r6 @ r1 = tmp3
|
|
|
|
add r1, r1, r6 @ r1 = tmp3
|
|
|
|
|
|
|
|
|
|
|
|
ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp11 / r6 = tmp12
|
|
|
|
pop {r0, r2, r4, r6} @ r0 = tmp10 / r2 = tmp13 / r4 = tmp11 / r6 = tmp12
|
|
|
|
@ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
|
|
|
|
@ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
|
|
|
|
|
|
|
|
|
|
|
|
@ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
|
|
|
|
@ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
|
|
|
|
add r8, r0, r1 |
|
|
|
add r8, r0, r1 |
|
|
@ -366,7 +366,7 @@ empty_odd_column: |
|
|
|
the_end: |
|
|
|
the_end: |
|
|
|
@ The end....
|
|
|
|
@ The end....
|
|
|
|
add sp, sp, #4 |
|
|
|
add sp, sp, #4 |
|
|
|
ldmia sp!, { r4 - r12, pc } @ restore callee saved regs and return
|
|
|
|
pop {r4 - r12, pc} |
|
|
|
endfunc |
|
|
|
endfunc |
|
|
|
|
|
|
|
|
|
|
|
const const_array |
|
|
|
const const_array |
|
|
|