1 /* 2 * Copyright (C) 2007-2008 ARM Limited 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * 16 */ 17 /* 18 * 19 */ 20 21 .eabi_attribute 24, 1 22 .eabi_attribute 25, 1 23 24 .arm 25 .fpu neon 26 .text 27 28 .global armVCM4P10_InterpolateLuma_Copy4x4_unsafe 29 armVCM4P10_InterpolateLuma_Copy4x4_unsafe: 30 PUSH {r4-r6,lr} 31 AND r12,r0,#3 32 BIC r0,r0,#3 33 ADD pc,pc,r12,LSL #2 34 NOP 35 B Copy4x4Align0 36 B Copy4x4Align1 37 B Copy4x4Align2 38 B Copy4x4Align3 39 Copy4x4Align0: 40 LDR r4,[r0],r1 41 LDR r5,[r0],r1 42 STR r4,[r2],r3 43 LDR r8,[r0],r1 44 STR r5,[r2],r3 45 LDR r9,[r0],r1 46 STR r8,[r2],r3 47 STR r9,[r2],r3 48 B Copy4x4End 49 Copy4x4Align1: 50 LDR r5,[r0,#4] 51 LDR r4,[r0],r1 52 LDR r9,[r0,#4] 53 LDR r8,[r0],r1 54 LSR r4,r4,#8 55 ORR r4,r4,r5,LSL #24 56 STR r4,[r2],r3 57 LSR r8,r8,#8 58 ORR r8,r8,r9,LSL #24 59 LDR r5,[r0,#4] 60 LDR r4,[r0],r1 61 STR r8,[r2],r3 62 LDR r9,[r0,#4] 63 LDR r8,[r0],r1 64 LSR r4,r4,#8 65 ORR r4,r4,r5,LSL #24 66 STR r4,[r2],r3 67 LSR r8,r8,#8 68 ORR r8,r8,r9,LSL #24 69 STR r8,[r2],r3 70 B Copy4x4End 71 Copy4x4Align2: 72 LDR r5,[r0,#4] 73 LDR r4,[r0],r1 74 LDR r9,[r0,#4] 75 LDR r8,[r0],r1 76 LSR r4,r4,#16 77 ORR r4,r4,r5,LSL #16 78 STR r4,[r2],r3 79 LSR r8,r8,#16 80 ORR r8,r8,r9,LSL #16 81 STR r8,[r2],r3 82 LDR r5,[r0,#4] 83 LDR r4,[r0],r1 84 LDR r9,[r0,#4] 85 LDR r8,[r0],r1 86 LSR r4,r4,#16 87 ORR r4,r4,r5,LSL #16 88 STR r4,[r2],r3 89 LSR r8,r8,#16 90 ORR r8,r8,r9,LSL #16 91 STR r8,[r2],r3 92 B Copy4x4End 93 Copy4x4Align3: 94 LDR r5,[r0,#4] 95 LDR r4,[r0],r1 96 LDR r9,[r0,#4] 97 LDR r8,[r0],r1 98 LSR r4,r4,#24 99 ORR r4,r4,r5,LSL #8 100 STR r4,[r2],r3 101 LSR r8,r8,#24 102 ORR r8,r8,r9,LSL #8 103 STR r8,[r2],r3 104 LDR r5,[r0,#4] 105 LDR r4,[r0],r1 106 LDR r9,[r0,#4] 107 LDR r8,[r0],r1 108 LSR r4,r4,#24 109 ORR r4,r4,r5,LSL #8 110 STR r4,[r2],r3 111 LSR r8,r8,#24 112 ORR r8,r8,r9,LSL #8 113 STR r8,[r2],r3 114 Copy4x4End: 115 POP {r4-r6,pc} 116 117 .end 118 119