| /* |
| * 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_HorAlign9x_unsafe |
| armVCM4P10_InterpolateLuma_HorAlign9x_unsafe: |
| MOV r12,r8 |
| AND r7,r0,#3 |
| BIC r0,r0,#3 |
| ADD pc,pc,r7,LSL #2 |
| NOP |
| B Copy0toAligned |
| B Copy1toAligned |
| B Copy2toAligned |
| B Copy3toAligned |
| Copy0toAligned: |
| LDM r0,{r7,r10,r11} |
| SUBS r9,r9,#1 |
| ADD r0,r0,r1 |
| STM r8!,{r7,r10,r11} |
| BGT Copy0toAligned |
| B CopyEnd |
| Copy1toAligned: |
| LDM r0,{r7,r10,r11} |
| SUBS r9,r9,#1 |
| ADD r0,r0,r1 |
| LSR r7,r7,#8 |
| ORR r7,r7,r10,LSL #24 |
| LSR r10,r10,#8 |
| ORR r10,r10,r11,LSL #24 |
| LSR r11,r11,#8 |
| STM r8!,{r7,r10,r11} |
| BGT Copy1toAligned |
| B CopyEnd |
| Copy2toAligned: |
| LDM r0,{r7,r10,r11} |
| SUBS r9,r9,#1 |
| ADD r0,r0,r1 |
| LSR r7,r7,#16 |
| ORR r7,r7,r10,LSL #16 |
| LSR r10,r10,#16 |
| ORR r10,r10,r11,LSL #16 |
| LSR r11,r11,#16 |
| STM r8!,{r7,r10,r11} |
| BGT Copy2toAligned |
| B CopyEnd |
| Copy3toAligned: |
| LDM r0,{r7,r10,r11} |
| SUBS r9,r9,#1 |
| ADD r0,r0,r1 |
| LSR r7,r7,#24 |
| ORR r7,r7,r10,LSL #8 |
| LSR r10,r10,#24 |
| ORR r10,r10,r11,LSL #8 |
| LSR r11,r11,#24 |
| STM r8!,{r7,r10,r11} |
| BGT Copy3toAligned |
| CopyEnd: |
| MOV r0,r12 |
| MOV r1,#0xc |
| BX lr |
| |
| .global armVCM4P10_InterpolateLuma_VerAlign4x_unsafe |
| armVCM4P10_InterpolateLuma_VerAlign4x_unsafe: |
| AND r7,r0,#3 |
| BIC r0,r0,#3 |
| ADD pc,pc,r7,LSL #2 |
| NOP |
| B Copy0toVAligned |
| B Copy1toVAligned |
| B Copy2toVAligned |
| B Copy3toVAligned |
| Copy0toVAligned: |
| LDR r7,[r0],r1 |
| SUBS r9,r9,#1 |
| STR r7,[r8],#4 |
| BGT Copy0toVAligned |
| B CopyVEnd |
| Copy1toVAligned: |
| LDR r10,[r0,#4] |
| LDR r7,[r0],r1 |
| SUBS r9,r9,#1 |
| LSL r10,r10,#24 |
| ORR r7,r10,r7,LSR #8 |
| STR r7,[r8],#4 |
| BGT Copy1toVAligned |
| B CopyVEnd |
| Copy2toVAligned: |
| LDR r10,[r0,#4] |
| LDR r7,[r0],r1 |
| SUBS r9,r9,#1 |
| LSL r10,r10,#16 |
| ORR r7,r10,r7,LSR #16 |
| STR r7,[r8],#4 |
| BGT Copy2toVAligned |
| B CopyVEnd |
| Copy3toVAligned: |
| LDR r10,[r0,#4] |
| LDR r7,[r0],r1 |
| SUBS r9,r9,#1 |
| LSL r10,r10,#8 |
| ORR r7,r10,r7,LSR #24 |
| STR r7,[r8],#4 |
| BGT Copy3toVAligned |
| CopyVEnd: |
| SUB r0,r8,#0x1c |
| MOV r1,#4 |
| BX lr |
| |
| .end |
| |