armVCM4P10_DecodeCoeffsToPair_s.S revision e17bb5cafdbc6089716d8e8c5afbb00f207a59bb
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 13e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_CAVLCCoeffTokenTables 14e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_SuffixToLevel 15e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_CAVLCTotalZeros2x2Tables 16e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_CAVLCTotalZeroTables 17e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_CAVLCRunBeforeTables 18e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_ZigZag_2x2 19e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .extern armVCM4P10_ZigZag_4x4 20e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel 21e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_CAVLCCoeffTokenTables 22e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_SuffixToLevel 23e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_CAVLCTotalZeros2x2Tables 24e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_CAVLCTotalZeroTables 25e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_CAVLCRunBeforeTables 26e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_ZigZag_2x2 27e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel .hidden armVCM4P10_ZigZag_4x4 28e17bb5cafdbc6089716d8e8c5afbb00f207a59bbArd Biesheuvel 290c1bc742181ded4930842b46e9507372f0b1b963James Dong .global armVCM4P10_DecodeCoeffsToPair 300c1bc742181ded4930842b46e9507372f0b1b963James Dong .func armVCM4P10_DecodeCoeffsToPair 310c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DecodeCoeffsToPair: 320c1bc742181ded4930842b46e9507372f0b1b963James Dong PUSH {r4-r12,lr} 330c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB sp,sp,#0x40 340c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r10,[r0,#0] 350c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r12,[r1,#0] 3622e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDR r6, .LarmVCM4P10_CAVLCCoeffTokenTables 3722e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP0: ADD r6, pc 380c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r4,[sp,#0x68] 390c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r9,[r10,#2] 400c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10,#1] 410c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r11,[r10],#3 420c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r12,#8 430c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r6,[r6,r4,LSL #2] 440c1bc742181ded4930842b46e9507372f0b1b963James Dong ORR r9,r9,r8,LSL #8 450c1bc742181ded4930842b46e9507372f0b1b963James Dong ORR r11,r9,r11,LSL #16 460c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r8,r11,r12 470c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVS r7,#0x1e 480c1bc742181ded4930842b46e9507372f0b1b963James Dong AND r7,r7,r8,LSR #27 490c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#8 500c1bc742181ded4930842b46e9507372f0b1b963James DongL0x44: 510c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L1 520c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 530c1bc742181ded4930842b46e9507372f0b1b963James DongL1: 540c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRH r7,[r6,r7] 550c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCC r12,r12,#8 560c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r12,#4 570c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r11,r8,r11,LSL #8 580c1bc742181ded4930842b46e9507372f0b1b963James Dong LSRS r8,r7,#1 590c1bc742181ded4930842b46e9507372f0b1b963James Dong BCS L0x74 600c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r8,r11,r12 610c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#0xa 620c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r7,r7,r8,LSR #29 630c1bc742181ded4930842b46e9507372f0b1b963James Dong BIC r7,r7,#1 640c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x44 650c1bc742181ded4930842b46e9507372f0b1b963James DongL0x74: 660c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r12,r12,r7,LSR #13 670c1bc742181ded4930842b46e9507372f0b1b963James Dong BIC r7,r8,#0xf000 680c1bc742181ded4930842b46e9507372f0b1b963James Dong LSRS r5,r7,#2 690c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r5,[r2,#0] 700c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0x344 710c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r7,#0x44 720c1bc742181ded4930842b46e9507372f0b1b963James Dong BGE L0x33c 730c1bc742181ded4930842b46e9507372f0b1b963James Dong STR r0,[sp,#0] 740c1bc742181ded4930842b46e9507372f0b1b963James Dong STR r1,[sp,#4] 750c1bc742181ded4930842b46e9507372f0b1b963James Dong STR r3,[sp,#8] 760c1bc742181ded4930842b46e9507372f0b1b963James Dong ANDS r1,r7,#3 770c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r2,sp,#0xc 780c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0xd8 790c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0,r1 800c1bc742181ded4930842b46e9507372f0b1b963James DongL0xac: 810c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r7,r11,r12 820c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#7 830c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L2 840c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 850c1bc742181ded4930842b46e9507372f0b1b963James DongL2: 860c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCC r12,r12,#8 870c1bc742181ded4930842b46e9507372f0b1b963James Dong LSR r7,r7,#31 880c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r11,r8,r11,LSL #8 890c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r0,r0,#1 900c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r8,#1 910c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r8,r8,r7,LSL #1 920c1bc742181ded4930842b46e9507372f0b1b963James Dong STRH r8,[r2],#2 930c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT L0xac 940c1bc742181ded4930842b46e9507372f0b1b963James DongL0xd8: 950c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r0,r5,r1 960c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0x1b8 970c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r4,#1 980c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r5,#0xa 990c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVLE r4,#0 1000c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r1,#3 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVLT r1,#4 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVGE r1,#2 1030c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVGE r4,#0 1040c1bc742181ded4930842b46e9507372f0b1b963James DongL0xfc: 1050c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r7,r11,r12 1060c1bc742181ded4930842b46e9507372f0b1b963James Dong CLZ r7,r7 1070c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r12,r7 1080c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#7 1090c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L3 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 1110c1bc742181ded4930842b46e9507372f0b1b963James Dong ORR r11,r8,r11,LSL #8 1120c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#8 1130c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L3 1140c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 1150c1bc742181ded4930842b46e9507372f0b1b963James DongL3: 1160c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCC r12,r12,#8 1170c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r11,r8,r11,LSL #8 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r7,#0x10 1190c1bc742181ded4930842b46e9507372f0b1b963James Dong BGE L0x33c 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVS lr,r4 1210c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQEQ r7,#0xe 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVEQ lr,#4 1230c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ r7,#0xf 1240c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVEQ lr,#0xc 1250c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQEQ r4,#0 1260c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDEQ r7,r7,#0xf 1270c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ lr,#0 1280c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0x184 1290c1bc742181ded4930842b46e9507372f0b1b963James Dong LSL r3,r11,r12 1300c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r12,lr 1310c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#8 1320c1bc742181ded4930842b46e9507372f0b1b963James Dong RSB r9,lr,#0x20 1330c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L4 1340c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 1350c1bc742181ded4930842b46e9507372f0b1b963James Dong ORR r11,r8,r11,LSL #8 1360c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#8 1370c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L4 1380c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 1390c1bc742181ded4930842b46e9507372f0b1b963James DongL4: 1400c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCC r12,r12,#8 1410c1bc742181ded4930842b46e9507372f0b1b963James Dong LSR r3,r3,r9 1420c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r11,r8,r11,LSL #8 1430c1bc742181ded4930842b46e9507372f0b1b963James Dong LSL r7,r7,r4 1440c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r7,r3,r7 1450c1bc742181ded4930842b46e9507372f0b1b963James DongL0x184: 1460c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r7,r7,r1 1470c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r1,#2 1480c1bc742181ded4930842b46e9507372f0b1b963James Dong LSRS r8,r7,#1 1490c1bc742181ded4930842b46e9507372f0b1b963James Dong RSBCS r8,r8,#0 1500c1bc742181ded4930842b46e9507372f0b1b963James Dong STRH r8,[r2],#2 15122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDR r9, .LarmVCM4P10_SuffixToLevel 15222e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP1: ADD r9, pc 1530c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRSB r8,[r9,r4] 1540c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ r4,#0 1550c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVEQ r4,#1 1560c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r7,r8 1570c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCS r4,r4,#1 1580c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r0,r0,#1 1590c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT L0xfc 1600c1bc742181ded4930842b46e9507372f0b1b963James DongL0x1b8: 1610c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r8,[sp,#0x6c] 1620c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r5,#1 1630c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r1,r8,r5 1640c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r4,sp,#0x2c 1650c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV lr,r5 1660c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB lr,lr,#1 1670c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0x2b0 1680c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ r8,#4 16922e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDREQ r6, .LarmVCM4P10_CAVLCTotalZeros2x2Tables 17022e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDRNE r6, .LarmVCM4P10_CAVLCTotalZeroTables 17122e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP2: ADD r6, pc 1720c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r6,[r6,r5,LSL #2] 1730c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r8,r11,r12 1740c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVS r7,#0x1e 1750c1bc742181ded4930842b46e9507372f0b1b963James Dong AND r7,r7,r8,LSR #27 1760c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#8 1770c1bc742181ded4930842b46e9507372f0b1b963James DongL0x1f4: 1780c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L5 1790c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 1800c1bc742181ded4930842b46e9507372f0b1b963James DongL5: 1810c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRH r7,[r6,r7] 1820c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCC r12,r12,#8 1830c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r12,#4 1840c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r11,r8,r11,LSL #8 1850c1bc742181ded4930842b46e9507372f0b1b963James Dong LSRS r8,r7,#1 1860c1bc742181ded4930842b46e9507372f0b1b963James Dong BCS L0x224 1870c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r8,r11,r12 1880c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#0xa 1890c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r7,r7,r8,LSR #29 1900c1bc742181ded4930842b46e9507372f0b1b963James Dong BIC r7,r7,#1 1910c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x1f4 1920c1bc742181ded4930842b46e9507372f0b1b963James DongL0x224: 1930c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r12,r12,r7,LSR #13 1940c1bc742181ded4930842b46e9507372f0b1b963James Dong BIC r7,r8,#0xf000 1950c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r7,#0x10 1960c1bc742181ded4930842b46e9507372f0b1b963James Dong BGE L0x33c 19722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDR r3, .LarmVCM4P10_CAVLCRunBeforeTables 19822e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP3: ADD r3, pc 1990c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r4,sp,#0x2c 2000c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVS r1,r7 2010c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD lr,lr,r1 2020c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0x2b0 2030c1bc742181ded4930842b46e9507372f0b1b963James DongL0x248: 2040c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r0,r0,#1 2050c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r6,[r3,r1,LSL #2] 2060c1bc742181ded4930842b46e9507372f0b1b963James Dong BLT L0x2bc 2070c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r8,r11,r12 2080c1bc742181ded4930842b46e9507372f0b1b963James Dong MOVS r7,#0xe 2090c1bc742181ded4930842b46e9507372f0b1b963James Dong AND r7,r7,r8,LSR #28 2100c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#8 2110c1bc742181ded4930842b46e9507372f0b1b963James DongL0x264: 2120c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L6 2130c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r10],#1 2140c1bc742181ded4930842b46e9507372f0b1b963James DongL6: 2150c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRH r7,[r6,r7] 2160c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDCC r12,r12,#8 2170c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r12,#3 2180c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r11,r8,r11,LSL #8 2190c1bc742181ded4930842b46e9507372f0b1b963James Dong LSRS r8,r7,#1 2200c1bc742181ded4930842b46e9507372f0b1b963James Dong BCS L0x294 2210c1bc742181ded4930842b46e9507372f0b1b963James Dong LSLS r8,r11,r12 2220c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r12,r12,#9 2230c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r7,r7,r8,LSR #29 2240c1bc742181ded4930842b46e9507372f0b1b963James Dong BIC r7,r7,#1 2250c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x264 2260c1bc742181ded4930842b46e9507372f0b1b963James DongL0x294: 2270c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r12,r12,r7,LSR #13 2280c1bc742181ded4930842b46e9507372f0b1b963James Dong BIC r7,r8,#0xf000 2290c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r7,#0xf 2300c1bc742181ded4930842b46e9507372f0b1b963James Dong BGE L0x33c 2310c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r1,r1,r7 2320c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r7,[r4],#1 2330c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT L0x248 2340c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2b0: 2350c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r0,r0,#1 2360c1bc742181ded4930842b46e9507372f0b1b963James Dong BLT L7 2370c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r1,[r4],#1 2380c1bc742181ded4930842b46e9507372f0b1b963James DongL7: 2390c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT L0x2b0 2400c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2bc: 2410c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r1,[r4],#1 2420c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r8,[sp,#0x6c] 2430c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ r8,#0xf 2440c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDEQ lr,lr,#1 2450c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r4,r4,r5 2460c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r2,r2,r5 2470c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r2,r2,r5 2480c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r3,[sp,#8] 2490c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r0,[r3,#0] 2500c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ r8,#4 25122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDREQ r6, .LarmVCM4P10_ZigZag_2x2 25222e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel LDRNE r6, .LarmVCM4P10_ZigZag_4x4 25322e06318d04074d1a7c90caa173857abdcfd153eArd BiesheuvelP4: ADD r6, pc 2540c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2ec: 2550c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r9,[r4],#1 2560c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRB r8,[r6,lr] 2570c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB lr,lr,#1 2580c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB lr,lr,r9 2590c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRSH r9,[r2],#2 2600c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r5,r5,#1 2610c1bc742181ded4930842b46e9507372f0b1b963James Dong ORREQ r8,r8,#0x20 2620c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r1,r9,#0x80 2630c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r1,#0x100 2640c1bc742181ded4930842b46e9507372f0b1b963James Dong ORRCS r8,r8,#0x10 2650c1bc742181ded4930842b46e9507372f0b1b963James Dong TEQ r5,#0 2660c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r8,[r0],#1 2670c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r9,[r0],#1 2680c1bc742181ded4930842b46e9507372f0b1b963James Dong LSR r9,r9,#8 2690c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC L8 2700c1bc742181ded4930842b46e9507372f0b1b963James Dong STRB r9,[r0],#1 2710c1bc742181ded4930842b46e9507372f0b1b963James DongL8: 2720c1bc742181ded4930842b46e9507372f0b1b963James Dong BNE L0x2ec 2730c1bc742181ded4930842b46e9507372f0b1b963James Dong STR r0,[r3,#0] 2740c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r0,[sp,#0] 2750c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r1,[sp,#4] 2760c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x344 2770c1bc742181ded4930842b46e9507372f0b1b963James DongL0x33c: 2780c1bc742181ded4930842b46e9507372f0b1b963James Dong MVN r0,#1 2790c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x35c 2800c1bc742181ded4930842b46e9507372f0b1b963James DongL0x344: 2810c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r10,r10,r12,LSR #3 2820c1bc742181ded4930842b46e9507372f0b1b963James Dong AND r12,r12,#7 2830c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r10,r10,#4 2840c1bc742181ded4930842b46e9507372f0b1b963James Dong STR r12,[r1,#0] 2850c1bc742181ded4930842b46e9507372f0b1b963James Dong STR r10,[r0,#0] 2860c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0,#0 2870c1bc742181ded4930842b46e9507372f0b1b963James DongL0x35c: 2880c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD sp,sp,#0x40 2890c1bc742181ded4930842b46e9507372f0b1b963James Dong POP {r4-r12,pc} 2900c1bc742181ded4930842b46e9507372f0b1b963James Dong .endfunc 2910c1bc742181ded4930842b46e9507372f0b1b963James Dong 29222e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCCoeffTokenTables: 29322e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word armVCM4P10_CAVLCCoeffTokenTables-(P0+8) 29422e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_SuffixToLevel: 29522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word armVCM4P10_SuffixToLevel-(P1+8) 29622e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCTotalZeros2x2Tables: 29722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word (armVCM4P10_CAVLCTotalZeros2x2Tables - 4)-(P2+8) 29822e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCTotalZeroTables: 29922e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word (armVCM4P10_CAVLCTotalZeroTables - 4)-(P2+8) 30022e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_CAVLCRunBeforeTables: 30122e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word (armVCM4P10_CAVLCRunBeforeTables - 4)-(P3+8) 30222e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_ZigZag_2x2: 30322e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word armVCM4P10_ZigZag_2x2-(P4+8) 30422e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel.LarmVCM4P10_ZigZag_4x4: 30522e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .word armVCM4P10_ZigZag_4x4-(P4+8) 3060c1bc742181ded4930842b46e9507372f0b1b963James Dong 30722e06318d04074d1a7c90caa173857abdcfd153eArd Biesheuvel .end 308