1bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* 2bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * 4bebc99d6fa433c04139294a5057f8439d772dbd9James Dong */ 5bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 6bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .eabi_attribute 24, 1 7bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .eabi_attribute 25, 1 8bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 9bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .arm 10bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .fpu neon 11bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .text 12bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 13bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .global omxVCM4P10_InterpolateLuma 14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .func omxVCM4P10_InterpolateLuma 15bebc99d6fa433c04139294a5057f8439d772dbd9James DongomxVCM4P10_InterpolateLuma: 16bebc99d6fa433c04139294a5057f8439d772dbd9James Dong PUSH {r4-r12,lr} 17bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VPUSH {d8-d15} 18bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB sp,sp,#0x10 19bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r6,[sp,#0x78] 20bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r7,[sp,#0x7c] 21bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r5,[sp,#0x80] 22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r4,[sp,#0x84] 23bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r6,r6,r7,LSL #2 24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV.I16 d31,#0x14 26bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV.I16 d30,#0x5 27bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x2c: 28bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STM r11,{r0-r3} 29bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pc,pc,r6,LSL #2 30bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x3f0 31bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x78 32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0xa8 33bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0xdc 34bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x100 35bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x134 36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x168 37bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x1a8 38bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x1f0 39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x234 40bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x258 41bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x2b0 42bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x2d8 43bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x330 44bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x364 45bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x3a8 46bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x3f0 47bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x78: 48bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r0,r1,LSL #1 49bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d9},[r0],r1 50bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d11},[r12],r1 51bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d10},[r0] 52bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d12},[r12] 53bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 54bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d9[0]},[r2],r3 55bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d11[0]},[r12],r3 56bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d10[0]},[r2] 57bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d12[0]},[r12] 58bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 59bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 60bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0xa8: 61bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 62bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 63bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d22,d22,d14 64bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d26,d26,d18 65bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d24,d24,d16 66bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d28,d28,d20 67bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 68bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 69bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 70bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 71bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 72bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 73bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 74bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0xdc: 75bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 76bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 77bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 78bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 79bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 80bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 81bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 82bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 83bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 84bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x100: 85bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 86bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 87bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d22,d22,d15 88bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d26,d26,d19 89bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d24,d24,d17 90bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d28,d28,d21 91bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 92bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 93bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 94bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 95bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 96bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 97bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 98bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x134: 99bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 100bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 101bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d0,d0,d9 102bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d4,d4,d11 103bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d2,d2,d10 104bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d6,d6,d12 105bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 106bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 107bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 108bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 109bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 110bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 111bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 112bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x168: 113bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r8,r0 114bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 115bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 116bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r8,#2 117bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 118bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d22,d22,d0 119bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d26,d26,d4 120bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d24,d24,d2 121bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d28,d28,d6 122bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 123bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 124bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 125bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 126bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 127bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 128bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 129bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x1a8: 130bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 131bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 132bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe 133bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d14,q7,#5 134bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d16,q8,#5 135bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d18,q9,#5 136bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d20,q10,#5 137bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d0,d0,d14 138bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d4,d4,d18 139bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d2,d2,d16 140bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d6,d6,d20 141bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 142bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 143bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 144bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 145bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 146bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 147bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 148bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x1f0: 149bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r8,r0 150bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#1 151bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 152bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 153bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r8,#2 154bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 155bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d22,d22,d0 156bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d26,d26,d4 157bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d24,d24,d2 158bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d28,d28,d6 159bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 160bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 161bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 162bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 163bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 164bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 165bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 166bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x234: 167bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 168bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 169bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 170bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 171bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 172bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 173bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 174bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 175bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 176bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x258: 177bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 178bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 179bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe 180bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d18,d18,d19,#4 181bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d20,d20,d21,#4 182bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d22,d22,d23,#4 183bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d24,d24,d25,#4 184bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d14,q9,#5 185bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d16,q10,#5 186bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d18,q11,#5 187bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d20,q12,#5 188bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d0,d0,d14 189bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d4,d4,d18 190bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d2,d2,d16 191bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d6,d6,d20 192bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 193bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 194bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 195bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 196bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 197bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 198bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 199bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x2b0: 200bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 201bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 202bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe 203bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 204bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 205bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 206bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 207bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 208bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 209bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 210bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x2d8: 211bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 212bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 213bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe 214bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d18,d18,d19,#6 215bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d20,d20,d21,#6 216bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d22,d22,d23,#6 217bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VEXT.8 d24,d24,d25,#6 218bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d14,q9,#5 219bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d16,q10,#5 220bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d18,q11,#5 221bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d20,q12,#5 222bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d0,d0,d14 223bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d4,d4,d18 224bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d2,d2,d16 225bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d6,d6,d20 226bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 227bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 228bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 229bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 230bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 231bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 232bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 233bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x330: 234bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 235bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 236bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d0,d0,d10 237bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d4,d4,d12 238bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d2,d2,d11 239bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d6,d6,d13 240bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 241bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 242bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 243bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 244bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 245bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 246bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 247bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x364: 248bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r8,r0 249bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 250bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 251bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r8,r1 252bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 253bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 254bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d22,d22,d0 255bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d26,d26,d4 256bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d24,d24,d2 257bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d28,d28,d6 258bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 259bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 260bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 261bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 262bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 263bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 264bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 265bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x3a8: 266bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 267bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 268bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe 269bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d14,q8,#5 270bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d16,q9,#5 271bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d18,q10,#5 272bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VQRSHRUN.S16 d20,q11,#5 273bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d0,d0,d14 274bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d4,d4,d18 275bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d2,d2,d16 276bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d6,d6,d20 277bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 278bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d0[0]},[r2],r3 279bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d4[0]},[r12],r3 280bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d2[0]},[r2] 281bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d6[0]},[r12] 282bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 283bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x434 284bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x3f0: 285bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r8,r0 286bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#1 287bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 288bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 289bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r8,r1 290bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#2 291bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 292bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d22,d22,d0 293bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d26,d26,d4 294bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d24,d24,d2 295bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VRHADD.U8 d28,d28,d6 296bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r12,r2,r3,LSL #1 297bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d22[0]},[r2],r3 298bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d26[0]},[r12],r3 299bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d24[0]},[r2] 300bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.32 {d28[0]},[r12] 301bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 302bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x434: 303bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDM r11,{r0-r3} 304bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUBS r5,r5,#4 305bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#4 306bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r2,r2,#4 307bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BGT L0x2c 308bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUBS r4,r4,#4 309bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r5,[sp,#0x80] 310bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,sp,#0 311bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,r1,LSL #2 312bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r2,r2,r3,LSL #2 313bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r5 314bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r2,r2,r5 315bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BGT L0x2c 316bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r0,#0 317bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD sp,sp,#0x10 318bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VPOP {d8-d15} 319bebc99d6fa433c04139294a5057f8439d772dbd9James Dong POP {r4-r12,pc} 320bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .endfunc 321bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 322bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .end 323bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 324