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_HorAlign9x_unsafe 14 .func armVCM4P10_InterpolateLuma_HorAlign9x_unsafe 15 armVCM4P10_InterpolateLuma_HorAlign9x_unsafe: 16 MOV r12,r8 17 AND r7,r0,#3 18 BIC r0,r0,#3 19 ADD pc,pc,r7,LSL #2 20 NOP 21 B Copy0toAligned 22 B Copy1toAligned 23 B Copy2toAligned 24 B Copy3toAligned 25 Copy0toAligned: 26 LDM r0,{r7,r10,r11} 27 SUBS r9,r9,#1 28 ADD r0,r0,r1 29 STM r8!,{r7,r10,r11} 30 BGT Copy0toAligned 31 B CopyEnd 32 Copy1toAligned: 33 LDM r0,{r7,r10,r11} 34 SUBS r9,r9,#1 35 ADD r0,r0,r1 36 LSR r7,r7,#8 37 ORR r7,r7,r10,LSL #24 38 LSR r10,r10,#8 39 ORR r10,r10,r11,LSL #24 40 LSR r11,r11,#8 41 STM r8!,{r7,r10,r11} 42 BGT Copy1toAligned 43 B CopyEnd 44 Copy2toAligned: 45 LDM r0,{r7,r10,r11} 46 SUBS r9,r9,#1 47 ADD r0,r0,r1 48 LSR r7,r7,#16 49 ORR r7,r7,r10,LSL #16 50 LSR r10,r10,#16 51 ORR r10,r10,r11,LSL #16 52 LSR r11,r11,#16 53 STM r8!,{r7,r10,r11} 54 BGT Copy2toAligned 55 B CopyEnd 56 Copy3toAligned: 57 LDM r0,{r7,r10,r11} 58 SUBS r9,r9,#1 59 ADD r0,r0,r1 60 LSR r7,r7,#24 61 ORR r7,r7,r10,LSL #8 62 LSR r10,r10,#24 63 ORR r10,r10,r11,LSL #8 64 LSR r11,r11,#24 65 STM r8!,{r7,r10,r11} 66 BGT Copy3toAligned 67 CopyEnd: 68 MOV r0,r12 69 MOV r1,#0xc 70 BX lr 71 .endfunc 72 73 .global armVCM4P10_InterpolateLuma_VerAlign4x_unsafe 74 .func armVCM4P10_InterpolateLuma_VerAlign4x_unsafe 75 armVCM4P10_InterpolateLuma_VerAlign4x_unsafe: 76 AND r7,r0,#3 77 BIC r0,r0,#3 78 ADD pc,pc,r7,LSL #2 79 NOP 80 B Copy0toVAligned 81 B Copy1toVAligned 82 B Copy2toVAligned 83 B Copy3toVAligned 84 Copy0toVAligned: 85 LDR r7,[r0],r1 86 SUBS r9,r9,#1 87 STR r7,[r8],#4 88 BGT Copy0toVAligned 89 B CopyVEnd 90 Copy1toVAligned: 91 LDR r10,[r0,#4] 92 LDR r7,[r0],r1 93 SUBS r9,r9,#1 94 LSL r10,r10,#24 95 ORR r7,r10,r7,LSR #8 96 STR r7,[r8],#4 97 BGT Copy1toVAligned 98 B CopyVEnd 99 Copy2toVAligned: 100 LDR r10,[r0,#4] 101 LDR r7,[r0],r1 102 SUBS r9,r9,#1 103 LSL r10,r10,#16 104 ORR r7,r10,r7,LSR #16 105 STR r7,[r8],#4 106 BGT Copy2toVAligned 107 B CopyVEnd 108 Copy3toVAligned: 109 LDR r10,[r0,#4] 110 LDR r7,[r0],r1 111 SUBS r9,r9,#1 112 LSL r10,r10,#8 113 ORR r7,r10,r7,LSR #24 114 STR r7,[r8],#4 115 BGT Copy3toVAligned 116 CopyVEnd: 117 SUB r0,r8,#0x1c 118 MOV r1,#4 119 BX lr 120 .endfunc 121 122 .end 123 124