Home | History | Annotate | Download | only in src_gcc
      1 /*
      2  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
      3  *
      4  */
      5 
      6     .eabi_attribute 24, 1
      7     .eabi_attribute 25, 1
      8 
      9     .arm
     10     .fpu neon
     11     .text
     12 
     13     .global armVCM4P10_UnpackBlock4x4
     14     .func   armVCM4P10_UnpackBlock4x4
     15 armVCM4P10_UnpackBlock4x4:
     16     PUSH     {r4-r8,lr}
     17     LDR      r2,[r0,#0]
     18     MOV      r7,#0x1f
     19     MOV      r4,#0
     20     MOV      r5,#0
     21     LDRB     r3,[r2],#1
     22     STRD     r4,r5,[r1,#0]
     23     STRD     r4,r5,[r1,#8]
     24     STRD     r4,r5,[r1,#0x10]
     25     STRD     r4,r5,[r1,#0x18]
     26 unpackLoop:
     27     TST      r3,#0x10
     28     LDRNESB  r5,[r2,#1]
     29     LDRNEB   r4,[r2],#2
     30     AND      r6,r7,r3,LSL #1
     31     LDREQSB  r4,[r2],#1
     32     ORRNE    r4,r4,r5,LSL #8
     33     TST      r3,#0x20
     34     LDREQB   r3,[r2],#1
     35     STRH     r4,[r1,r6]
     36     BEQ      unpackLoop
     37     STR      r2,[r0,#0]
     38     POP      {r4-r8,pc}
     39     .endfunc
     40     .end
     41