armVCM4P10_InterpolateLuma_HalfHor4x4_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_HalfHor4x4_unsafe 29 .func armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 30armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe: 31 PUSH {r4-r12,lr} 32 VLD1.8 {d22,d23},[r0],r1 33 VEXT.8 d10,d22,d23,#5 34 VEXT.8 d12,d22,d23,#1 35 VEXT.8 d14,d22,d23,#2 36 VEXT.8 d15,d22,d23,#3 37 VEXT.8 d13,d22,d23,#4 38 VADDL.U8 q11,d22,d10 39 VADDL.U8 q4,d14,d15 40 VADDL.U8 q6,d12,d13 41 VLD1.8 {d24,d25},[r0],r1 42 VMLA.I16 d22,d8,d31 43 VMUL.I16 d8,d12,d30 44 VEXT.8 d10,d24,d25,#5 45 VEXT.8 d12,d24,d25,#1 46 VEXT.8 d16,d24,d25,#2 47 VEXT.8 d17,d24,d25,#3 48 VEXT.8 d13,d24,d25,#4 49 VADDL.U8 q12,d24,d10 50 VSUB.I16 d22,d22,d8 51 VADDL.U8 q4,d16,d17 52 VADDL.U8 q6,d12,d13 53 VLD1.8 {d26,d27},[r0],r1 54 VMLA.I16 d24,d8,d31 55 VMUL.I16 d8,d12,d30 56 VEXT.8 d10,d26,d27,#5 57 VEXT.8 d12,d26,d27,#1 58 VEXT.8 d18,d26,d27,#2 59 VEXT.8 d19,d26,d27,#3 60 VEXT.8 d13,d26,d27,#4 61 VADDL.U8 q13,d26,d10 62 VSUB.I16 d24,d24,d8 63 VADDL.U8 q4,d18,d19 64 VADDL.U8 q6,d12,d13 65 VLD1.8 {d28,d29},[r0],r1 66 VMLA.I16 d26,d8,d31 67 VMUL.I16 d8,d12,d30 68 VEXT.8 d10,d28,d29,#5 69 VEXT.8 d12,d28,d29,#1 70 VEXT.8 d20,d28,d29,#2 71 VEXT.8 d21,d28,d29,#3 72 VEXT.8 d13,d28,d29,#4 73 VADDL.U8 q14,d28,d10 74 VSUB.I16 d26,d26,d8 75 VADDL.U8 q4,d20,d21 76 VADDL.U8 q6,d12,d13 77 VMLA.I16 d28,d8,d31 78 VMLS.I16 d28,d12,d30 79 VQRSHRUN.S16 d22,q11,#5 80 VQRSHRUN.S16 d24,q12,#5 81 VQRSHRUN.S16 d26,q13,#5 82 VQRSHRUN.S16 d28,q14,#5 83 POP {r4-r12,pc} 84 .endfunc 85 86 .end 87 88