10d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@/*****************************************************************************
20d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
30d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
40d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
50d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* Licensed under the Apache License, Version 2.0 (the "License");
60d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* you may not use this file except in compliance with the License.
70d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* You may obtain a copy of the License at:
80d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
90d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* http://www.apache.org/licenses/LICENSE-2.0
100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* Unless required by applicable law or agreed to in writing, software
120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* distributed under the License is distributed on an "AS IS" BASIS,
130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* See the License for the specific language governing permissions and
150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* limitations under the License.
160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*****************************************************************************/
180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@/**
190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@/*******************************************************************************
200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* @file
210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  ihevcd_fmt_conv_420sp_to_420sp.s
220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* @brief
240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  contains function definitions for format conversions
250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* @author
270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  ittiam
280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* @par list of functions:
300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@* @remarks
330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  none
340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*
350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*******************************************************************************/
360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    .equ DO1STROUNDING, 0
370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @ ARM
390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @
400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @ PRESERVE8
410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar.text
430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar.p2align 2
440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@/*****************************************************************************
500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Function Name    : ihevcd_fmt_conv_420sp_to_420sp()                       *
520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Description      : This function conversts the image from YUV420SP color  *
540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     space to 420SP color space(UV interleaved).            *
550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Arguments        : R0           pu1_y                                     *
570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     R1           pu1_uv                                    *
580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     R2           pu1_dest_y                                *
590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     R3           pu1_dest_uv                               *
600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     [R13 #40]    u2_width                                  *
610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     [R13 #44]    u2_height                                 *
620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     [R13 #48]    u2_stridey                                *
630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     [R13 #52]    u2_stridechroma                           *
640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     [R13 #56]    u2_dest_stridey                           *
650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     [R13 #60]    u2_dest_stridechroma                      *
660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Values Returned  : None                                                   *
680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Register Usage   : R0 - R14                                               *
700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Stack Usage      : 40 Bytes                                               *
720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Interruptibility : Interruptible                                          *
740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Known Limitations                                                         *
760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*       Assumptions: Image Width:     Assumed to be multiple of 2 and       *
770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                     Image Height:    Assumed to be even.                   *
780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*  Revision History :                                                        *
800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*         DD MM YYYY   Author(s)       Changes (Describe the changes made)   *
810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*         16 05 2012   Naveen SR     draft                                   *
820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*                                                                            *
830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@*****************************************************************************/
840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    .global ihevcd_fmt_conv_420sp_to_420sp_a9q
860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar.type ihevcd_fmt_conv_420sp_to_420sp_a9q, %function
870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevcd_fmt_conv_420sp_to_420sp_a9q:
880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    STMFD       sp!,{r4-r12, lr}
900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDR         r5,[sp,#56]                 @//Load u2_dest_stridey
930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDR         r7,[sp,#48]                 @//Load u2_stridey
950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDR         r8,[sp,#40]                 @//Load u2_width
960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDR         r9,[sp,#44]                 @//Load u2_height
970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r10,r7,r8                   @// Src Y increment
990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r11,r5,r8                   @// Dst Y increment
1000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @/* Copy Y */
1020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    MOV         r4,r9                       @// Copying height
1040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakary_row_loop:
1050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    MOV         r6,r8                       @// Copying width
1060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakary_col_loop:
1080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    PLD         [r0, #128]
1090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r6,r6,#32
1100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D0,[r0]!
1110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D1,[r0]!
1120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D2,[r0]!
1130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D3,[r0]!
1140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D0,[R2]!
1150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D1,[R2]!
1160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D2,[R2]!
1170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D3,[R2]!
1180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    CMP         r6,#32
1190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    BGE         y_col_loop
1200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    CMP         r6,#0
1210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    BEQ         y_col_loop_end
1220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @//If non-multiple of 16, then go back by few bytes to ensure 16 bytes can be read
1230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @//Ex if width is 162, above loop will process 160 pixels. And
1240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @//Both source and destination will point to 146th pixel and then 16 bytes will be read
1250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @// and written using VLD1 and VST1
1260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    RSB         r6,r6,#32
1270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r0,r0,r6
1280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         R2,R2,r6
1290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D0,[r0]!
1300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D1,[r0]!
1310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D2,[r0]!
1320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D3,[r0]!
1330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D0,[R2]!
1340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D1,[R2]!
1350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D2,[R2]!
1360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D3,[R2]!
1370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakary_col_loop_end:
1390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ADD         r0, r0, r10
1400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ADD         R2, R2, r11
1410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUBS        r4, r4, #1
1420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    BGT         y_row_loop
1430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @/* Copy UV */
1470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDR         r5,[sp,#60]                 @//Load u2_dest_stridechroma
1490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDR         r7,[sp,#52]                 @//Load u2_stridechroma
1500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    MOV         r9,r9,LSR #1                @// height/2
1520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar@   MOV     r8,r8,LSR #1            @// Width/2
1530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    MOV         R2,R3                       @pu1_dest_uv
1550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r10,r7,r8                   @// Src UV increment
1570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r11,r5,r8                   @// Dst UV increment
1580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    MOV         r4,r9                       @// Copying height
1600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakaruv_row_loop:
1610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    MOV         r6,r8                       @// Copying width
1620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakaruv_col_loop:
1640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    PLD         [r1, #128]
1660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r6,r6,#16
1670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D0,[r1]!
1680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D1,[r1]!
1690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D0,[R2]!
1700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D1,[R2]!
1710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    CMP         r6,#16
1720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    BGE         uv_col_loop
1730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    CMP         r6,#0
1740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    BEQ         u_col_loop_end
1750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @//If non-multiple of 16, then go back by few bytes to ensure 16 bytes can be read
1760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @//Ex if width is 162, above loop will process 160 pixels. And
1770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @//Both source and destination will point to 146th pixel and then 16 bytes will be read
1780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    @// and written using VLD1 and VST1
1790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    RSB         r6,r6,#16
1800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         r1,r1,r6
1810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUB         R2,R2,r6
1820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D0, [r1]!
1830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VLD1.8      D1, [r1]!
1840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D0, [R2]!
1850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    VST1.8      D1, [R2]!
1860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakaru_col_loop_end:
1880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ADD         r1, r1, r10
1890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ADD         R2, R2, r11
1900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SUBS        r4, r4, #1
1910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    BGT         uv_row_loop
1920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarexit:
1940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    LDMFD       sp!,{r4-r12, pc}
1950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    .section .note.GNU-stack,"",%progbits
1980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
199