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 armVCM4P10_UnpackBlock4x4 14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .func armVCM4P10_UnpackBlock4x4 15bebc99d6fa433c04139294a5057f8439d772dbd9James DongarmVCM4P10_UnpackBlock4x4: 16bebc99d6fa433c04139294a5057f8439d772dbd9James Dong PUSH {r4-r8,lr} 17bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r2,[r0,#0] 18bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r7,#0x1f 19bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r4,#0 20bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r5,#0 21bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDRB r3,[r2],#1 22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STRD r4,r5,[r1,#0] 23bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STRD r4,r5,[r1,#8] 24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STRD r4,r5,[r1,#0x10] 25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STRD r4,r5,[r1,#0x18] 26bebc99d6fa433c04139294a5057f8439d772dbd9James DongunpackLoop: 27bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r3,#0x10 28bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDRNESB r5,[r2,#1] 29bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDRNEB r4,[r2],#2 30bebc99d6fa433c04139294a5057f8439d772dbd9James Dong AND r6,r7,r3,LSL #1 31bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDREQSB r4,[r2],#1 32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ORRNE r4,r4,r5,LSL #8 33bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r3,#0x20 34bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDREQB r3,[r2],#1 35bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STRH r4,[r1,r6] 36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BEQ unpackLoop 37bebc99d6fa433c04139294a5057f8439d772dbd9James Dong STR r2,[r0,#0] 38bebc99d6fa433c04139294a5057f8439d772dbd9James Dong POP {r4-r8,pc} 39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .endfunc 40bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .end 41