Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .cpu cortex-a8
- .fpu neon
- .text
- .align 2
- .global _Z8rect_sadPKhS0_jjj
- .type _Z8rect_sadPKhS0_jjj, %function
- _Z8rect_sadPKhS0_jjj:
- .fnstart
- src_line1_r0 .req r0
- targ_line1_r1 .req r1
- rect_w_r2 .req r2
- rect_h_r3 .req r3
- stride_r4 .req r4
- gap_r6 .req r6
- end_r7 .req r7
- line_end_r8 .req r8
- .LFB0:
- @ args = 4, pretend = 0, frame = 8
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- @ r0 = stride
- @ r1 = targ_line
- @ r2 = rect_w
- @ r3 = rect_h
- @ [sp,#40] = stride
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12}
- .save {r4, r5, r6, r7, r8, r9, r10, r11, r12}
- .LCFI0:
- .pad #8
- sub sp, sp, #8 @,,
- ldr stride_r4, [sp, #40] @ stride, stride
- pld [src_line1_r0]
- pld [targ_line1_r1]
- veor.u8 q0, q0, q0 @ q0 = #0
- veor.u8 q2, q2, q2 @ q2 = #0
- sub gap_r6, stride_r4, rect_w_r2
- mla end_r7, rect_h_r3, stride_r4, src_line1_r0 @ end = rect_h * stride + src_line
- .rect_sad_vert_loop:
- pld [src_line1_r0, #1024]
- pld [targ_line1_r1, #1024]
- add line_end_r8, src_line1_r0, rect_w_r2 @ line_end = src_line + rect_w
- veor.u8 q1, q1, q1 @ q1 = #0
- .rect_sad_horz_loop:
- vld1.8 {d4}, [src_line1_r0]! @ d4 = src_line[0..7]
- vld1.8 {d5}, [targ_line1_r1]! @ d5 = targ_line[0..7]
- vabal.u8 q1, d4, d5 @ q1 += |d4 - d5|
- cmp src_line1_r0, line_end_r8 @ if(src_line < line_end)
- blt .rect_sad_horz_loop
- .rect_sad_vert_loop_end:
- vpadalq.u16 q0, q1 @ q0 = sum(q1)
- add src_line1_r0, src_line1_r0, gap_r6 @ src_line1 += gap_r6
- add targ_line1_r1, targ_line1_r1, gap_r6 @ targ_line1 += gap_r6
- cmp src_line1_r0, end_r7
- blt .rect_sad_vert_loop
- .rect_sad_ret:
- vpadd.u32 d0, d0, d1 @ d0 = d0 + d1
- vmov r0, r1, d0 @ r0 = d0[0], r1 = d0[1]
- add r0, r0, r1 @ r0 = r0 + r1
- add sp, sp, #8 @,,
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12}
- bx lr
- .LFE0:
- .fnend
- .size _Z8rect_sadPKhS0_jjj, .-_Z8rect_sadPKhS0_jjj
- .ident "GCC: (GNU) 4.4.3"
- .section .note.GNU-stack,"",%progbits
Advertisement
Add Comment
Please, Sign In to add comment