10c1bc742181ded4930842b46e9507372f0b1b963James Dong/*
278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Copyright (C) 2007-2008 ARM Limited
378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Licensed under the Apache License, Version 2.0 (the "License");
578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * you may not use this file except in compliance with the License.
678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * You may obtain a copy of the License at
778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
878e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *      http://www.apache.org/licenses/LICENSE-2.0
978e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
1078e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Unless required by applicable law or agreed to in writing, software
1178e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * distributed under the License is distributed on an "AS IS" BASIS,
1278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * See the License for the specific language governing permissions and
1478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * limitations under the License.
1578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
1678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar */
1778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar/*
180c1bc742181ded4930842b46e9507372f0b1b963James Dong *
190c1bc742181ded4930842b46e9507372f0b1b963James Dong */
200c1bc742181ded4930842b46e9507372f0b1b963James Dong
210c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 24, 1
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 25, 1
230c1bc742181ded4930842b46e9507372f0b1b963James Dong
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    .arm
250c1bc742181ded4930842b46e9507372f0b1b963James Dong    .fpu neon
260c1bc742181ded4930842b46e9507372f0b1b963James Dong
2722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .text
280c1bc742181ded4930842b46e9507372f0b1b963James Dong    .align 4
290c1bc742181ded4930842b46e9507372f0b1b963James Dong
300c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_pSwitchTable4x4:
3122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word OMX_VC_4x4_VERT-(P0+8),     OMX_VC_4x4_HOR-(P0+8)
3222e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word OMX_VC_4x4_DC-(P0+8),       OMX_VC_4x4_DIAG_DL-(P0+8)
3322e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word OMX_VC_4x4_DIAG_DR-(P0+8),  OMX_VC_4x4_VR-(P0+8)
3422e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word OMX_VC_4x4_HD-(P0+8),       OMX_VC_4x4_VL-(P0+8)
3522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word OMX_VC_4x4_HU-(P0+8)
360c1bc742181ded4930842b46e9507372f0b1b963James Dong
370c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global omxVCM4P10_PredictIntra_4x4
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   omxVCM4P10_PredictIntra_4x4
390c1bc742181ded4930842b46e9507372f0b1b963James DongomxVCM4P10_PredictIntra_4x4:
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    PUSH     {r4-r12,lr}
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPUSH    {d8-d12}
4222e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    ADR      r8, armVCM4P10_pSwitchTable4x4
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRD     r6,r7,[sp,#0x58]
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRD     r4,r5,[sp,#0x50]
4522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDR      r8,[r8,r6,LSL #2]
4622e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP0: ADD      pc, r8
4722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel
480c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_HOR:
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r9,r0,r4
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r10,r4,r4
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[]},[r0],r10
520c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[]},[r9],r10
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d2[]},[r0]
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d3[]},[r9]
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d0[0]},[r3],r12
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d1[0]},[r11],r12
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d2[0]},[r3]
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d3[0]},[r11]
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
620c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_VERT:
630c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[0]},[r1]
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
650c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
660c1bc742181ded4930842b46e9507372f0b1b963James DongL0x58:
670c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d0[0]},[r3],r12
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d0[0]},[r11],r12
690c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d0[0]},[r3]
700c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d0[0]},[r11]
710c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
720c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_DC:
730c1bc742181ded4930842b46e9507372f0b1b963James Dong    TST      r7,#2
740c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0xdc
750c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r9,r0,r4
760c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r10,r4,r4
770c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[0]},[r0],r10
780c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[1]},[r9],r10
790c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[2]},[r0]
800c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[3]},[r9]
810c1bc742181ded4930842b46e9507372f0b1b963James Dong    TST      r7,#1
820c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0xbc
830c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[1]},[r1]
840c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,#0
850c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U8 d1,d0
860c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U16 d1,d1
870c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U32 d1,d1
880c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRSHR.U64 d1,d1,#3
890c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
900c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
910c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d0,d1[0]
920c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x58
930c1bc742181ded4930842b46e9507372f0b1b963James DongL0xbc:
940c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,#0
950c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U8 d1,d0
960c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U16 d1,d1
970c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRSHR.U32 d1,d1,#2
980c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
990c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
1000c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d0,d1[0]
1010c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x58
1020c1bc742181ded4930842b46e9507372f0b1b963James DongL0xdc:
1030c1bc742181ded4930842b46e9507372f0b1b963James Dong    TST      r7,#1
1040c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x108
1050c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[0]},[r1]
1060c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,#0
1070c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U8 d1,d0
1080c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPADDL.U16 d1,d1
1090c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRSHR.U32 d1,d1,#2
1100c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
1110c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
1120c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d0,d1[0]
1130c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x58
1140c1bc742181ded4930842b46e9507372f0b1b963James DongL0x108:
1150c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOV.I8  d0,#0x80
1160c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,#0
1170c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
1180c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
1190c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x58
1200c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_DIAG_DL:
1210c1bc742181ded4930842b46e9507372f0b1b963James Dong    TST      r7,#0x40
1220c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x138
1230c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d3},[r1]
1240c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d2,d3[7]
1250c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d3,d2,#1
1260c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d3,d2,#2
1270c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x14c
1280c1bc742181ded4930842b46e9507372f0b1b963James DongL0x138:
1290c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[1]},[r1]
1300c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d2,d0[7]
1310c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d3,d0,d2,#4
1320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d0,d2,#5
1330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d0,d2,#6
1340c1bc742181ded4930842b46e9507372f0b1b963James DongL0x14c:
1350c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d6,d3,d5
1360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d6,d6,d4
1370c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r3],r5
1380c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d6,d6,#1
1390c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r3],r5
1400c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d6,d6,#1
1410c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r3],r5
1420c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d6,d6,#1
1430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r3]
1440c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
1450c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_DIAG_DR:
1460c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[0]},[r1]
1470c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[7]},[r2]
1480c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r9,r0,r4
1490c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r10,r4,r4
1500c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r1,r3,r5
1510c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[6]},[r0],r10
1520c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[5]},[r9],r10
1530c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[4]},[r0]
1540c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[3]},[r9]
1550c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d3,d1,d0,#3
1560c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r4,r1,r5
1570c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d1,d0,#4
1580c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r6,r4,r5
1590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d1,d0,#5
1600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d6,d3,d5
1610c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d6,d6,d4
1620c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r6]
1630c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d6,d6,#1
1640c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r4]
1650c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d6,d6,#1
1660c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r1]
1670c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d6,d6,#1
1680c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r3]
1690c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
1700c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_VR:
1710c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[0]},[r1]
1720c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[7]},[r2]
1730c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[7]},[r0],r4
1740c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d2[7]},[r0],r4
1750c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[6]},[r0]
1760c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d12,d0,d0,#7
1770c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d3,d1,d12,#6
1780c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d2,d12,#7
1790c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d1,d0,#7
1800c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d6,d2,d0,#7
1810c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d11,d1,d12,#7
1820c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d8,d6,d12
1830c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d8,d8,d11
1840c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d7,d3,d5
1850c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d7,d7,d4
1860c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d10,d8,d8,#1
1870c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
1880c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
1890c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d9,d7,d7,#1
1900c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d10[0]},[r3],r12
1910c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d9[0]},[r11],r12
1920c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[0]},[r3],r12
1930c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d7[0]},[r11]
1940c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
1950c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_HD:
1960c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0},[r1]
1970c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[7]},[r2]
1980c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r9,r0,r4
1990c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r10,r4,r4
2000c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[6]},[r0],r10
2010c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[5]},[r9],r10
2020c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[4]},[r0]
2030c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[3]},[r9]
2040c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d3,d1,d0,#3
2050c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d1,d0,#2
2060c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d1,d0,#1
2070c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d7,d3,d5
2080c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d7,d7,d4
2090c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d8,d4,d3
2100c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHL.I64 d8,d8,#24
2110c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHL.I64 d6,d7,#16
2120c1bc742181ded4930842b46e9507372f0b1b963James Dong    VZIP.8   d8,d6
2130c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d7,d7,d7,#6
2140c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d8,d6,d7,#2
2150c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
2160c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
2170c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[1]},[r3],r12
2180c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[1]},[r11],r12
2190c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[0]},[r3]
2200c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d6[0]},[r11]
2210c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
2220c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_VL:
2230c1bc742181ded4930842b46e9507372f0b1b963James Dong    TST      r7,#0x40
2240c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x2b4
2250c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d3},[r1]
2260c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d3,d3,#1
2270c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d4,d4,#1
2280c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x2c8
2290c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2b4:
2300c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d0[1]},[r1]
2310c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d2,d0[7]
2320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d3,d0,d2,#4
2330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d0,d2,#5
2340c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d0,d2,#6
2350c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2c8:
2360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d7,d4,d3
2370c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d10,d3,d5
2380c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d10,d10,d4
2390c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d8,d7,d7,#1
2400c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r11,r3,r5
2410c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r5,r5
2420c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d9,d10,d8,#1
2430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d7[0]},[r3],r12
2440c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d10[0]},[r11],r12
2450c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[0]},[r3]
2460c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d9[0]},[r11]
2470c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x348
2480c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_4x4_HU:
2490c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r9,r0,r4
2500c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r10,r4,r4
2510c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[4]},[r0],r10
2520c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[5]},[r9],r10
2530c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[6]},[r0]
2540c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d1[7]},[r9]
2550c1bc742181ded4930842b46e9507372f0b1b963James Dong    VDUP.8   d2,d1[7]
2560c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d3,d1,d2,#4
2570c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d4,d1,d2,#5
2580c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d5,d1,d2,#6
2590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d7,d3,d5
2600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d7,d7,d4
2610c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d8,d4,d3
2620c1bc742181ded4930842b46e9507372f0b1b963James Dong    VZIP.8   d8,d7
2630c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[0]},[r3],r5
2640c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d8,d8,d8,#2
2650c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[0]},[r3],r5
2660c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d8,d8,d8,#2
2670c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d8[0]},[r3],r5
2680c1bc742181ded4930842b46e9507372f0b1b963James Dong    VST1.32  {d7[0]},[r3]
2690c1bc742181ded4930842b46e9507372f0b1b963James DongL0x348:
2700c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,#0
2710c1bc742181ded4930842b46e9507372f0b1b963James Dong    VPOP     {d8-d12}
2720c1bc742181ded4930842b46e9507372f0b1b963James Dong    POP      {r4-r12,pc}
2730c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
2740c1bc742181ded4930842b46e9507372f0b1b963James Dong
2750c1bc742181ded4930842b46e9507372f0b1b963James Dong    .end
276