armVCM4P10_InterpolateLuma_Copy_unsafe_s.S revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
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 .func armVCM4P10_InterpolateLuma_Copy4x4_unsafe 30armVCM4P10_InterpolateLuma_Copy4x4_unsafe: 31 PUSH {r4-r6,lr} 32 AND r12,r0,#3 33 BIC r0,r0,#3 34 ADD pc,pc,r12,LSL #2 35 NOP 36 B Copy4x4Align0 37 B Copy4x4Align1 38 B Copy4x4Align2 39 B Copy4x4Align3 40Copy4x4Align0: 41 LDR r4,[r0],r1 42 LDR r5,[r0],r1 43 STR r4,[r2],r3 44 LDR r8,[r0],r1 45 STR r5,[r2],r3 46 LDR r9,[r0],r1 47 STR r8,[r2],r3 48 STR r9,[r2],r3 49 B Copy4x4End 50Copy4x4Align1: 51 LDR r5,[r0,#4] 52 LDR r4,[r0],r1 53 LDR r9,[r0,#4] 54 LDR r8,[r0],r1 55 LSR r4,r4,#8 56 ORR r4,r4,r5,LSL #24 57 STR r4,[r2],r3 58 LSR r8,r8,#8 59 ORR r8,r8,r9,LSL #24 60 LDR r5,[r0,#4] 61 LDR r4,[r0],r1 62 STR r8,[r2],r3 63 LDR r9,[r0,#4] 64 LDR r8,[r0],r1 65 LSR r4,r4,#8 66 ORR r4,r4,r5,LSL #24 67 STR r4,[r2],r3 68 LSR r8,r8,#8 69 ORR r8,r8,r9,LSL #24 70 STR r8,[r2],r3 71 B Copy4x4End 72Copy4x4Align2: 73 LDR r5,[r0,#4] 74 LDR r4,[r0],r1 75 LDR r9,[r0,#4] 76 LDR r8,[r0],r1 77 LSR r4,r4,#16 78 ORR r4,r4,r5,LSL #16 79 STR r4,[r2],r3 80 LSR r8,r8,#16 81 ORR r8,r8,r9,LSL #16 82 STR r8,[r2],r3 83 LDR r5,[r0,#4] 84 LDR r4,[r0],r1 85 LDR r9,[r0,#4] 86 LDR r8,[r0],r1 87 LSR r4,r4,#16 88 ORR r4,r4,r5,LSL #16 89 STR r4,[r2],r3 90 LSR r8,r8,#16 91 ORR r8,r8,r9,LSL #16 92 STR r8,[r2],r3 93 B Copy4x4End 94Copy4x4Align3: 95 LDR r5,[r0,#4] 96 LDR r4,[r0],r1 97 LDR r9,[r0,#4] 98 LDR r8,[r0],r1 99 LSR r4,r4,#24 100 ORR r4,r4,r5,LSL #8 101 STR r4,[r2],r3 102 LSR r8,r8,#24 103 ORR r8,r8,r9,LSL #8 104 STR r8,[r2],r3 105 LDR r5,[r0,#4] 106 LDR r4,[r0],r1 107 LDR r9,[r0,#4] 108 LDR r8,[r0],r1 109 LSR r4,r4,#24 110 ORR r4,r4,r5,LSL #8 111 STR r4,[r2],r3 112 LSR r8,r8,#24 113 ORR r8,r8,r9,LSL #8 114 STR r8,[r2],r3 115Copy4x4End: 116 POP {r4-r6,pc} 117 .endfunc 118 119 .end 120 121