/* * Copyright (C) 2007-2008 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ /* * */ .eabi_attribute 24, 1 .eabi_attribute 25, 1 .arm .fpu neon .text .global armVCM4P10_InterpolateLuma_Copy4x4_unsafe .func armVCM4P10_InterpolateLuma_Copy4x4_unsafe armVCM4P10_InterpolateLuma_Copy4x4_unsafe: PUSH {r4-r6,lr} AND r12,r0,#3 BIC r0,r0,#3 ADD pc,pc,r12,LSL #2 NOP B Copy4x4Align0 B Copy4x4Align1 B Copy4x4Align2 B Copy4x4Align3 Copy4x4Align0: LDR r4,[r0],r1 LDR r5,[r0],r1 STR r4,[r2],r3 LDR r8,[r0],r1 STR r5,[r2],r3 LDR r9,[r0],r1 STR r8,[r2],r3 STR r9,[r2],r3 B Copy4x4End Copy4x4Align1: LDR r5,[r0,#4] LDR r4,[r0],r1 LDR r9,[r0,#4] LDR r8,[r0],r1 LSR r4,r4,#8 ORR r4,r4,r5,LSL #24 STR r4,[r2],r3 LSR r8,r8,#8 ORR r8,r8,r9,LSL #24 LDR r5,[r0,#4] LDR r4,[r0],r1 STR r8,[r2],r3 LDR r9,[r0,#4] LDR r8,[r0],r1 LSR r4,r4,#8 ORR r4,r4,r5,LSL #24 STR r4,[r2],r3 LSR r8,r8,#8 ORR r8,r8,r9,LSL #24 STR r8,[r2],r3 B Copy4x4End Copy4x4Align2: LDR r5,[r0,#4] LDR r4,[r0],r1 LDR r9,[r0,#4] LDR r8,[r0],r1 LSR r4,r4,#16 ORR r4,r4,r5,LSL #16 STR r4,[r2],r3 LSR r8,r8,#16 ORR r8,r8,r9,LSL #16 STR r8,[r2],r3 LDR r5,[r0,#4] LDR r4,[r0],r1 LDR r9,[r0,#4] LDR r8,[r0],r1 LSR r4,r4,#16 ORR r4,r4,r5,LSL #16 STR r4,[r2],r3 LSR r8,r8,#16 ORR r8,r8,r9,LSL #16 STR r8,[r2],r3 B Copy4x4End Copy4x4Align3: LDR r5,[r0,#4] LDR r4,[r0],r1 LDR r9,[r0,#4] LDR r8,[r0],r1 LSR r4,r4,#24 ORR r4,r4,r5,LSL #8 STR r4,[r2],r3 LSR r8,r8,#24 ORR r8,r8,r9,LSL #8 STR r8,[r2],r3 LDR r5,[r0,#4] LDR r4,[r0],r1 LDR r9,[r0,#4] LDR r8,[r0],r1 LSR r4,r4,#24 ORR r4,r4,r5,LSL #8 STR r4,[r2],r3 LSR r8,r8,#24 ORR r8,r8,r9,LSL #8 STR r8,[r2],r3 Copy4x4End: POP {r4-r6,pc} .endfunc .end