10c1bc742181ded4930842b46e9507372f0b1b963James Dong/*
20c1bc742181ded4930842b46e9507372f0b1b963James Dong * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
30c1bc742181ded4930842b46e9507372f0b1b963James Dong *
40c1bc742181ded4930842b46e9507372f0b1b963James Dong */
50c1bc742181ded4930842b46e9507372f0b1b963James Dong
60c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 24, 1
70c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 25, 1
80c1bc742181ded4930842b46e9507372f0b1b963James Dong
90c1bc742181ded4930842b46e9507372f0b1b963James Dong    .arm
100c1bc742181ded4930842b46e9507372f0b1b963James Dong    .fpu neon
110c1bc742181ded4930842b46e9507372f0b1b963James Dong    .text
120c1bc742181ded4930842b46e9507372f0b1b963James Dong
130c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DecodeCoeffsToPair
140c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DecodeCoeffsToPair
150c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DecodeCoeffsToPair:
160c1bc742181ded4930842b46e9507372f0b1b963James Dong    PUSH     {r4-r12,lr}
170c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      sp,sp,#0x40
180c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r10,[r0,#0]
190c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r12,[r1,#0]
2022e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDR      r6, .LarmVCM4P10_CAVLCCoeffTokenTables
2122e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP0: ADD      r6, pc
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r4,[sp,#0x68]
230c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r9,[r10,#2]
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10,#1]
250c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r11,[r10],#3
260c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r12,#8
270c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r6,[r6,r4,LSL #2]
280c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORR      r9,r9,r8,LSL #8
290c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORR      r11,r9,r11,LSL #16
300c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r8,r11,r12
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVS     r7,#0x1e
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    AND      r7,r7,r8,LSR #27
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#8
340c1bc742181ded4930842b46e9507372f0b1b963James DongL0x44:
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L1
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
370c1bc742181ded4930842b46e9507372f0b1b963James DongL1:
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRH     r7,[r6,r7]
390c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCC    r12,r12,#8
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r12,#4
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r11,r8,r11,LSL #8
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSRS     r8,r7,#1
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCS      L0x74
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r8,r11,r12
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#0xa
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r7,r7,r8,LSR #29
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    BIC      r7,r7,#1
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x44
490c1bc742181ded4930842b46e9507372f0b1b963James DongL0x74:
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r12,r12,r7,LSR #13
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    BIC      r7,r8,#0xf000
520c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSRS     r5,r7,#2
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r5,[r2,#0]
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x344
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r7,#0x44
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGE      L0x33c
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    STR      r0,[sp,#0]
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    STR      r1,[sp,#4]
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    STR      r3,[sp,#8]
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    ANDS     r1,r7,#3
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r2,sp,#0xc
620c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0xd8
630c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,r1
640c1bc742181ded4930842b46e9507372f0b1b963James DongL0xac:
650c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r7,r11,r12
660c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#7
670c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L2
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
690c1bc742181ded4930842b46e9507372f0b1b963James DongL2:
700c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCC    r12,r12,#8
710c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSR      r7,r7,#31
720c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r11,r8,r11,LSL #8
730c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r0,r0,#1
740c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r8,#1
750c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r8,r8,r7,LSL #1
760c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRH     r8,[r2],#2
770c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGT      L0xac
780c1bc742181ded4930842b46e9507372f0b1b963James DongL0xd8:
790c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r0,r5,r1
800c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x1b8
810c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r4,#1
820c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r5,#0xa
830c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVLE    r4,#0
840c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r1,#3
850c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVLT    r1,#4
860c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVGE    r1,#2
870c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVGE    r4,#0
880c1bc742181ded4930842b46e9507372f0b1b963James DongL0xfc:
890c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r7,r11,r12
900c1bc742181ded4930842b46e9507372f0b1b963James Dong    CLZ      r7,r7
910c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r12,r7
920c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#7
930c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L3
940c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
950c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORR      r11,r8,r11,LSL #8
960c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#8
970c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L3
980c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
990c1bc742181ded4930842b46e9507372f0b1b963James DongL3:
1000c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCC    r12,r12,#8
1010c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r11,r8,r11,LSL #8
1020c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r7,#0x10
1030c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGE      L0x33c
1040c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVS     lr,r4
1050c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQEQ    r7,#0xe
1060c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVEQ    lr,#4
1070c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      r7,#0xf
1080c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVEQ    lr,#0xc
1090c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQEQ    r4,#0
1100c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDEQ    r7,r7,#0xf
1110c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      lr,#0
1120c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x184
1130c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSL      r3,r11,r12
1140c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r12,lr
1150c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#8
1160c1bc742181ded4930842b46e9507372f0b1b963James Dong    RSB      r9,lr,#0x20
1170c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L4
1180c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
1190c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORR      r11,r8,r11,LSL #8
1200c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#8
1210c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L4
1220c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
1230c1bc742181ded4930842b46e9507372f0b1b963James DongL4:
1240c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCC    r12,r12,#8
1250c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSR      r3,r3,r9
1260c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r11,r8,r11,LSL #8
1270c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSL      r7,r7,r4
1280c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r7,r3,r7
1290c1bc742181ded4930842b46e9507372f0b1b963James DongL0x184:
1300c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r7,r7,r1
1310c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r1,#2
1320c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSRS     r8,r7,#1
1330c1bc742181ded4930842b46e9507372f0b1b963James Dong    RSBCS    r8,r8,#0
1340c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRH     r8,[r2],#2
13522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDR      r9, .LarmVCM4P10_SuffixToLevel
13622e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP1: ADD      r9, pc
1370c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRSB    r8,[r9,r4]
1380c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      r4,#0
1390c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVEQ    r4,#1
1400c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r7,r8
1410c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCS    r4,r4,#1
1420c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r0,r0,#1
1430c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGT      L0xfc
1440c1bc742181ded4930842b46e9507372f0b1b963James DongL0x1b8:
1450c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r8,[sp,#0x6c]
1460c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r0,r5,#1
1470c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r1,r8,r5
1480c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r4,sp,#0x2c
1490c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      lr,r5
1500c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      lr,lr,#1
1510c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x2b0
1520c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      r8,#4
15322e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDREQ    r6, .LarmVCM4P10_CAVLCTotalZeros2x2Tables
15422e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDRNE    r6, .LarmVCM4P10_CAVLCTotalZeroTables
15522e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP2: ADD      r6, pc
1560c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r6,[r6,r5,LSL #2]
1570c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r8,r11,r12
1580c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVS     r7,#0x1e
1590c1bc742181ded4930842b46e9507372f0b1b963James Dong    AND      r7,r7,r8,LSR #27
1600c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#8
1610c1bc742181ded4930842b46e9507372f0b1b963James DongL0x1f4:
1620c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L5
1630c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
1640c1bc742181ded4930842b46e9507372f0b1b963James DongL5:
1650c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRH     r7,[r6,r7]
1660c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCC    r12,r12,#8
1670c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r12,#4
1680c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r11,r8,r11,LSL #8
1690c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSRS     r8,r7,#1
1700c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCS      L0x224
1710c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r8,r11,r12
1720c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#0xa
1730c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r7,r7,r8,LSR #29
1740c1bc742181ded4930842b46e9507372f0b1b963James Dong    BIC      r7,r7,#1
1750c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x1f4
1760c1bc742181ded4930842b46e9507372f0b1b963James DongL0x224:
1770c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r12,r12,r7,LSR #13
1780c1bc742181ded4930842b46e9507372f0b1b963James Dong    BIC      r7,r8,#0xf000
1790c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r7,#0x10
1800c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGE      L0x33c
18122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDR      r3, .LarmVCM4P10_CAVLCRunBeforeTables
18222e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP3: ADD      r3, pc
1830c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r4,sp,#0x2c
1840c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVS     r1,r7
1850c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      lr,lr,r1
1860c1bc742181ded4930842b46e9507372f0b1b963James Dong    BEQ      L0x2b0
1870c1bc742181ded4930842b46e9507372f0b1b963James DongL0x248:
1880c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r0,r0,#1
1890c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r6,[r3,r1,LSL #2]
1900c1bc742181ded4930842b46e9507372f0b1b963James Dong    BLT      L0x2bc
1910c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r8,r11,r12
1920c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOVS     r7,#0xe
1930c1bc742181ded4930842b46e9507372f0b1b963James Dong    AND      r7,r7,r8,LSR #28
1940c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#8
1950c1bc742181ded4930842b46e9507372f0b1b963James DongL0x264:
1960c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L6
1970c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r10],#1
1980c1bc742181ded4930842b46e9507372f0b1b963James DongL6:
1990c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRH     r7,[r6,r7]
2000c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDCC    r12,r12,#8
2010c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r12,r12,#3
2020c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r11,r8,r11,LSL #8
2030c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSRS     r8,r7,#1
2040c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCS      L0x294
2050c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSLS     r8,r11,r12
2060c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r12,r12,#9
2070c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r7,r7,r8,LSR #29
2080c1bc742181ded4930842b46e9507372f0b1b963James Dong    BIC      r7,r7,#1
2090c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x264
2100c1bc742181ded4930842b46e9507372f0b1b963James DongL0x294:
2110c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r12,r12,r7,LSR #13
2120c1bc742181ded4930842b46e9507372f0b1b963James Dong    BIC      r7,r8,#0xf000
2130c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r7,#0xf
2140c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGE      L0x33c
2150c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r1,r1,r7
2160c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r7,[r4],#1
2170c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGT      L0x248
2180c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2b0:
2190c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r0,r0,#1
2200c1bc742181ded4930842b46e9507372f0b1b963James Dong    BLT      L7
2210c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r1,[r4],#1
2220c1bc742181ded4930842b46e9507372f0b1b963James DongL7:
2230c1bc742181ded4930842b46e9507372f0b1b963James Dong    BGT      L0x2b0
2240c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2bc:
2250c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r1,[r4],#1
2260c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r8,[sp,#0x6c]
2270c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      r8,#0xf
2280c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADDEQ    lr,lr,#1
2290c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r4,r4,r5
2300c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r2,r2,r5
2310c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r2,r2,r5
2320c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r3,[sp,#8]
2330c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r0,[r3,#0]
2340c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      r8,#4
23522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDREQ    r6, .LarmVCM4P10_ZigZag_2x2
23622e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    LDRNE    r6, .LarmVCM4P10_ZigZag_4x4
23722e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP4: ADD      r6, pc
2380c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2ec:
2390c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r9,[r4],#1
2400c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRB     r8,[r6,lr]
2410c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      lr,lr,#1
2420c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      lr,lr,r9
2430c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDRSH    r9,[r2],#2
2440c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUBS     r5,r5,#1
2450c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORREQ    r8,r8,#0x20
2460c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r1,r9,#0x80
2470c1bc742181ded4930842b46e9507372f0b1b963James Dong    CMP      r1,#0x100
2480c1bc742181ded4930842b46e9507372f0b1b963James Dong    ORRCS    r8,r8,#0x10
2490c1bc742181ded4930842b46e9507372f0b1b963James Dong    TEQ      r5,#0
2500c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r8,[r0],#1
2510c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r9,[r0],#1
2520c1bc742181ded4930842b46e9507372f0b1b963James Dong    LSR      r9,r9,#8
2530c1bc742181ded4930842b46e9507372f0b1b963James Dong    BCC      L8
2540c1bc742181ded4930842b46e9507372f0b1b963James Dong    STRB     r9,[r0],#1
2550c1bc742181ded4930842b46e9507372f0b1b963James DongL8:
2560c1bc742181ded4930842b46e9507372f0b1b963James Dong    BNE      L0x2ec
2570c1bc742181ded4930842b46e9507372f0b1b963James Dong    STR      r0,[r3,#0]
2580c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r0,[sp,#0]
2590c1bc742181ded4930842b46e9507372f0b1b963James Dong    LDR      r1,[sp,#4]
2600c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x344
2610c1bc742181ded4930842b46e9507372f0b1b963James DongL0x33c:
2620c1bc742181ded4930842b46e9507372f0b1b963James Dong    MVN      r0,#1
2630c1bc742181ded4930842b46e9507372f0b1b963James Dong    B        L0x35c
2640c1bc742181ded4930842b46e9507372f0b1b963James DongL0x344:
2650c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r10,r10,r12,LSR #3
2660c1bc742181ded4930842b46e9507372f0b1b963James Dong    AND      r12,r12,#7
2670c1bc742181ded4930842b46e9507372f0b1b963James Dong    SUB      r10,r10,#4
2680c1bc742181ded4930842b46e9507372f0b1b963James Dong    STR      r12,[r1,#0]
2690c1bc742181ded4930842b46e9507372f0b1b963James Dong    STR      r10,[r0,#0]
2700c1bc742181ded4930842b46e9507372f0b1b963James Dong    MOV      r0,#0
2710c1bc742181ded4930842b46e9507372f0b1b963James DongL0x35c:
2720c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      sp,sp,#0x40
2730c1bc742181ded4930842b46e9507372f0b1b963James Dong    POP      {r4-r12,pc}
2740c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
2750c1bc742181ded4930842b46e9507372f0b1b963James Dong
27622e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCCoeffTokenTables:
27722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   armVCM4P10_CAVLCCoeffTokenTables-(P0+8)
27822e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_SuffixToLevel:
27922e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   armVCM4P10_SuffixToLevel-(P1+8)
28022e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCTotalZeros2x2Tables:
28122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   (armVCM4P10_CAVLCTotalZeros2x2Tables - 4)-(P2+8)
28222e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCTotalZeroTables:
28322e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   (armVCM4P10_CAVLCTotalZeroTables - 4)-(P2+8)
28422e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCRunBeforeTables:
28522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   (armVCM4P10_CAVLCRunBeforeTables - 4)-(P3+8)
28622e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_ZigZag_2x2:
28722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   armVCM4P10_ZigZag_2x2-(P4+8)
28822e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_ZigZag_4x4:
28922e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .word   armVCM4P10_ZigZag_4x4-(P4+8)
2900c1bc742181ded4930842b46e9507372f0b1b963James Dong
29122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel    .end
292