| /* |
| * 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_HalfDiagVerHor4x4_unsafe |
| armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe: |
| PUSH {r4-r12,lr} |
| VLD1.8 {d0,d1},[r0],r1 |
| ADD r12,r0,r1,LSL #2 |
| VMOV.I8 d30,#0x5 |
| VMOV.I8 d31,#0x14 |
| VLD1.8 {d10,d11},[r12],r1 |
| VLD1.8 {d2,d3},[r0],r1 |
| VLD1.8 {d12,d13},[r12],r1 |
| VADDL.U8 q9,d0,d10 |
| VLD1.8 {d4,d5},[r0],r1 |
| VADDL.U8 q0,d1,d11 |
| VLD1.8 {d6,d7},[r0],r1 |
| VADDL.U8 q10,d2,d12 |
| VLD1.8 {d8,d9},[r0],r1 |
| VMLAL.U8 q9,d4,d31 |
| VLD1.8 {d14,d15},[r12],r1 |
| VMLAL.U8 q0,d5,d31 |
| VLD1.8 {d16,d17},[r12],r1 |
| VMLAL.U8 q9,d6,d31 |
| VMLAL.U8 q10,d6,d31 |
| VMLSL.U8 q0,d3,d30 |
| VADDL.U8 q11,d4,d14 |
| VMLSL.U8 q9,d2,d30 |
| VADDL.U8 q1,d3,d13 |
| VMLAL.U8 q0,d7,d31 |
| VMLAL.U8 q10,d8,d31 |
| VMLSL.U8 q9,d8,d30 |
| VMLAL.U8 q1,d7,d31 |
| VMLSL.U8 q0,d9,d30 |
| VMLAL.U8 q11,d8,d31 |
| VMLSL.U8 q10,d4,d30 |
| VMLSL.U8 q1,d5,d30 |
| VADDL.U8 q2,d5,d15 |
| VMLAL.U8 q11,d10,d31 |
| VMLSL.U8 q10,d10,d30 |
| VMLAL.U8 q1,d9,d31 |
| VMLAL.U8 q2,d9,d31 |
| VADDL.U8 q12,d6,d16 |
| VMLSL.U8 q11,d6,d30 |
| VMLSL.U8 q1,d11,d30 |
| VMLSL.U8 q2,d7,d30 |
| VADDL.U8 q3,d7,d17 |
| VMLAL.U8 q12,d10,d31 |
| VMLSL.U8 q11,d12,d30 |
| VMLSL.U8 q2,d13,d30 |
| VMLAL.U8 q3,d11,d31 |
| VMLAL.U8 q12,d12,d31 |
| VEXT.8 d26,d18,d19,#2 |
| VMLAL.U8 q2,d11,d31 |
| VMLAL.U8 q3,d13,d31 |
| VMLSL.U8 q12,d8,d30 |
| VEXT.8 d27,d18,d19,#4 |
| VMOV.I16 d31,#0x14 |
| VMLSL.U8 q3,d9,d30 |
| VMLSL.U8 q12,d14,d30 |
| VEXT.8 d29,d19,d0,#2 |
| VEXT.8 d28,d18,d19,#6 |
| VMLSL.U8 q3,d15,d30 |
| VADDL.S16 q0,d18,d29 |
| VADD.I16 d27,d27,d28 |
| VMOV.I16 d30,#0x5 |
| VADD.I16 d26,d26,d19 |
| VMLAL.S16 q0,d27,d31 |
| VEXT.8 d27,d20,d21,#4 |
| VEXT.8 d28,d20,d21,#6 |
| VEXT.8 d29,d21,d2,#2 |
| VMLSL.S16 q0,d26,d30 |
| VEXT.8 d26,d20,d21,#2 |
| VADDL.S16 q1,d20,d29 |
| VADD.I16 d27,d27,d28 |
| VADD.I16 d26,d26,d21 |
| VEXT.8 d28,d22,d23,#6 |
| VMLAL.S16 q1,d27,d31 |
| VEXT.8 d29,d23,d4,#2 |
| VEXT.8 d27,d22,d23,#4 |
| VEXT.8 d8,d22,d23,#2 |
| VADDL.S16 q2,d22,d29 |
| VMLSL.S16 q1,d26,d30 |
| VADD.I16 d27,d27,d28 |
| VADD.I16 d26,d8,d23 |
| VEXT.8 d28,d24,d25,#6 |
| VMLAL.S16 q2,d27,d31 |
| VEXT.8 d27,d24,d25,#4 |
| VEXT.8 d29,d25,d6,#2 |
| VADD.I16 d27,d27,d28 |
| VEXT.8 d8,d24,d25,#2 |
| VADDL.S16 q3,d24,d29 |
| VMLSL.S16 q2,d26,d30 |
| VMLAL.S16 q3,d27,d31 |
| VADD.I16 d8,d8,d25 |
| VMLSL.S16 q3,d8,d30 |
| VQRSHRUN.S32 d0,q0,#10 |
| VQRSHRUN.S32 d2,q1,#10 |
| VQRSHRUN.S32 d4,q2,#10 |
| VQRSHRUN.S32 d6,q3,#10 |
| VQMOVN.U16 d0,q0 |
| VQMOVN.U16 d2,q1 |
| VQMOVN.U16 d4,q2 |
| VQMOVN.U16 d6,q3 |
| POP {r4-r12,pc} |
| |
| .end |
| |