armVCM4P10_InterpolateLuma_DiagCopy_unsafe_s.S revision 0c1bc742181ded4930842b46e9507372f0b1b963
1/* 2 * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3 * 4 */ 5 6 .eabi_attribute 24, 1 7 .eabi_attribute 25, 1 8 9 .arm 10 .fpu neon 11 .text 12 13 .global armVCM4P10_InterpolateLuma_HorDiagCopy_unsafe 14 .func armVCM4P10_InterpolateLuma_HorDiagCopy_unsafe 15armVCM4P10_InterpolateLuma_HorDiagCopy_unsafe: 16 PUSH {r4-r6,lr} 17 MOV lr,#4 18 LDR r6, =0xfe00fe0 19 LDR r12, =0xff00ff 20LoopStart1: 21 LDR r11,[r0,#0xc] 22 LDR r10,[r0,#8] 23 LDR r5,[r0,#4] 24 LDR r4,[r0],r1 25 UQSUB16 r11,r11,r6 26 UQSUB16 r10,r10,r6 27 UQSUB16 r5,r5,r6 28 UQSUB16 r4,r4,r6 29 USAT16 r11,#13,r11 30 USAT16 r10,#13,r10 31 USAT16 r5,#13,r5 32 USAT16 r4,#13,r4 33 AND r11,r12,r11,LSR #5 34 AND r10,r12,r10,LSR #5 35 AND r5,r12,r5,LSR #5 36 AND r4,r12,r4,LSR #5 37 ORR r11,r10,r11,LSL #8 38 ORR r10,r4,r5,LSL #8 39 SUBS lr,lr,#1 40 STRD r10,r11,[r7],#8 41 BGT LoopStart1 42 SUB r0,r7,#0x20 43 MOV r1,#8 44 POP {r4-r6,pc} 45 .endfunc 46 47 .global armVCM4P10_InterpolateLuma_VerDiagCopy_unsafe 48 .func armVCM4P10_InterpolateLuma_VerDiagCopy_unsafe 49armVCM4P10_InterpolateLuma_VerDiagCopy_unsafe: 50 PUSH {r4-r6,lr} 51 LDR r6, =0xfe00fe0 52 LDR r12, =0xff00ff 53 MOV lr,#2 54LoopStart: 55 LDR r11,[r0,#0xc] 56 LDR r10,[r0,#8] 57 LDR r5,[r0,#4] 58 LDR r4,[r0],r1 59 UQSUB16 r11,r11,r6 60 UQSUB16 r10,r10,r6 61 UQSUB16 r5,r5,r6 62 UQSUB16 r4,r4,r6 63 USAT16 r11,#13,r11 64 USAT16 r10,#13,r10 65 USAT16 r5,#13,r5 66 USAT16 r4,#13,r4 67 AND r11,r12,r11,LSR #5 68 AND r10,r12,r10,LSR #5 69 AND r5,r12,r5,LSR #5 70 AND r4,r12,r4,LSR #5 71 ORR r11,r10,r11,LSL #8 72 ORR r10,r4,r5,LSL #8 73 PKHBT r4,r10,r11,LSL #16 74 STR r4,[r7],#8 75 PKHTB r5,r11,r10,ASR #16 76 STR r5,[r7],#-4 77 LDR r11,[r0,#0xc] 78 LDR r10,[r0,#8] 79 LDR r5,[r0,#4] 80 LDR r4,[r0],r1 81 UQSUB16 r11,r11,r6 82 UQSUB16 r10,r10,r6 83 UQSUB16 r5,r5,r6 84 UQSUB16 r4,r4,r6 85 USAT16 r11,#13,r11 86 USAT16 r10,#13,r10 87 USAT16 r5,#13,r5 88 USAT16 r4,#13,r4 89 AND r11,r12,r11,LSR #5 90 AND r10,r12,r10,LSR #5 91 AND r5,r12,r5,LSR #5 92 AND r4,r12,r4,LSR #5 93 ORR r11,r10,r11,LSL #8 94 ORR r10,r4,r5,LSL #8 95 PKHBT r4,r10,r11,LSL #16 96 SUBS lr,lr,#1 97 STR r4,[r7],#8 98 PKHTB r5,r11,r10,ASR #16 99 STR r5,[r7],#4 100 BGT LoopStart 101 SUB r0,r7,#0x18 102 MOV r1,#4 103 POP {r4-r6,pc} 104 .endfunc 105 106 .end 107 108