| OLD | NEW | 
|---|
| 1 ; | 1 ; | 
| 2 ;  Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 ;  Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 
| 3 ; | 3 ; | 
| 4 ;  Use of this source code is governed by a BSD-style license | 4 ;  Use of this source code is governed by a BSD-style license | 
| 5 ;  that can be found in the LICENSE file in the root of the source | 5 ;  that can be found in the LICENSE file in the root of the source | 
| 6 ;  tree. An additional intellectual property rights grant can be found | 6 ;  tree. An additional intellectual property rights grant can be found | 
| 7 ;  in the file PATENTS.  All contributing project authors may | 7 ;  in the file PATENTS.  All contributing project authors may | 
| 8 ;  be found in the AUTHORS file in the root of the source tree. | 8 ;  be found in the AUTHORS file in the root of the source tree. | 
| 9 ; | 9 ; | 
| 10 | 10 | 
| 11 | 11 | 
| 12     EXPORT  |vp8_copy_mem16x16_v6| | 12     EXPORT  |vp8_copy_mem16x16_v6| | 
| 13     ; ARM | 13     ; ARM | 
| 14     ; REQUIRE8 | 14     ; REQUIRE8 | 
| 15     ; PRESERVE8 | 15     ; PRESERVE8 | 
| 16 | 16 | 
| 17     AREA    Block, CODE, READONLY ; name this block of code | 17     AREA    Block, CODE, READONLY ; name this block of code | 
| 18 ;void copy_mem16x16_v6( unsigned char *src, int src_stride, unsigned char *dst, 
     int dst_stride) | 18 ;void copy_mem16x16_v6( unsigned char *src, int src_stride, unsigned char *dst, 
     int dst_stride) | 
| 19 ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | 19 ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | 
| 20 |vp8_copy_mem16x16_v6| PROC | 20 |vp8_copy_mem16x16_v6| PROC | 
| 21     stmdb       sp!, {r4 - r7} | 21     stmdb       sp!, {r4 - r7} | 
| 22     ;push   {r4-r7} | 22     ;push   {r4-r7} | 
| 23 | 23 | 
| 24     ;preload | 24     ;preload | 
| 25     pld     [r0] | 25     pld     [r0, #31]                ; preload for next 16x16 block | 
| 26     pld     [r0, r1] |  | 
| 27     pld     [r0, r1, lsl #1] |  | 
| 28 | 26 | 
| 29     ands    r4, r0, #15 | 27     ands    r4, r0, #15 | 
| 30     beq     copy_mem16x16_fast | 28     beq     copy_mem16x16_fast | 
| 31 | 29 | 
| 32     ands    r4, r0, #7 | 30     ands    r4, r0, #7 | 
| 33     beq     copy_mem16x16_8 | 31     beq     copy_mem16x16_8 | 
| 34 | 32 | 
| 35     ands    r4, r0, #3 | 33     ands    r4, r0, #3 | 
| 36     beq     copy_mem16x16_4 | 34     beq     copy_mem16x16_4 | 
| 37 | 35 | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 83     strb    r6, [r2, #14] | 81     strb    r6, [r2, #14] | 
| 84     strb    r7, [r2, #15] | 82     strb    r7, [r2, #15] | 
| 85 | 83 | 
| 86     add     r2, r2, r3 | 84     add     r2, r2, r3 | 
| 87 | 85 | 
| 88     ldrneb  r4, [r0] | 86     ldrneb  r4, [r0] | 
| 89     ldrneb  r5, [r0, #1] | 87     ldrneb  r5, [r0, #1] | 
| 90     ldrneb  r6, [r0, #2] | 88     ldrneb  r6, [r0, #2] | 
| 91     ldrneb  r7, [r0, #3] | 89     ldrneb  r7, [r0, #3] | 
| 92 | 90 | 
|  | 91     pld     [r0, #31]               ; preload for next 16x16 block | 
|  | 92 | 
| 93     bne     copy_mem16x16_1_loop | 93     bne     copy_mem16x16_1_loop | 
| 94 | 94 | 
| 95     ldmia       sp!, {r4 - r7} | 95     ldmia       sp!, {r4 - r7} | 
| 96     ;pop        {r4-r7} | 96     ;pop        {r4-r7} | 
| 97     mov     pc, lr | 97     mov     pc, lr | 
| 98 | 98 | 
| 99 ;copy 4 bytes each time | 99 ;copy 4 bytes each time | 
| 100 copy_mem16x16_4 | 100 copy_mem16x16_4 | 
| 101     ldr     r4, [r0] | 101     ldr     r4, [r0] | 
| 102     ldr     r5, [r0, #4] | 102     ldr     r5, [r0, #4] | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 114     str     r6, [r2, #8] | 114     str     r6, [r2, #8] | 
| 115     str     r7, [r2, #12] | 115     str     r7, [r2, #12] | 
| 116 | 116 | 
| 117     add     r2, r2, r3 | 117     add     r2, r2, r3 | 
| 118 | 118 | 
| 119     ldrne   r4, [r0] | 119     ldrne   r4, [r0] | 
| 120     ldrne   r5, [r0, #4] | 120     ldrne   r5, [r0, #4] | 
| 121     ldrne   r6, [r0, #8] | 121     ldrne   r6, [r0, #8] | 
| 122     ldrne   r7, [r0, #12] | 122     ldrne   r7, [r0, #12] | 
| 123 | 123 | 
|  | 124     pld     [r0, #31]               ; preload for next 16x16 block | 
|  | 125 | 
| 124     bne     copy_mem16x16_4_loop | 126     bne     copy_mem16x16_4_loop | 
| 125 | 127 | 
| 126     ldmia       sp!, {r4 - r7} | 128     ldmia       sp!, {r4 - r7} | 
| 127     ;pop        {r4-r7} | 129     ;pop        {r4-r7} | 
| 128     mov     pc, lr | 130     mov     pc, lr | 
| 129 | 131 | 
| 130 ;copy 8 bytes each time | 132 ;copy 8 bytes each time | 
| 131 copy_mem16x16_8 | 133 copy_mem16x16_8 | 
| 132     sub     r1, r1, #16 | 134     sub     r1, r1, #16 | 
| 133     sub     r3, r3, #16 | 135     sub     r3, r3, #16 | 
| 134 | 136 | 
| 135     mov     r12, #16 | 137     mov     r12, #16 | 
| 136 | 138 | 
| 137 copy_mem16x16_8_loop | 139 copy_mem16x16_8_loop | 
| 138     ldmia   r0!, {r4-r5} | 140     ldmia   r0!, {r4-r5} | 
| 139     ;ldm        r0, {r4-r5} | 141     ;ldm        r0, {r4-r5} | 
| 140     ldmia   r0!, {r6-r7} | 142     ldmia   r0!, {r6-r7} | 
| 141 | 143 | 
| 142     add     r0, r0, r1 | 144     add     r0, r0, r1 | 
| 143 | 145 | 
| 144     stmia   r2!, {r4-r5} | 146     stmia   r2!, {r4-r5} | 
| 145     subs    r12, r12, #1 | 147     subs    r12, r12, #1 | 
| 146     ;stm        r2, {r4-r5} | 148     ;stm        r2, {r4-r5} | 
| 147     stmia   r2!, {r6-r7} | 149     stmia   r2!, {r6-r7} | 
| 148 | 150 | 
| 149     add     r2, r2, r3 | 151     add     r2, r2, r3 | 
| 150 | 152 | 
|  | 153     pld     [r0, #31]               ; preload for next 16x16 block | 
| 151     bne     copy_mem16x16_8_loop | 154     bne     copy_mem16x16_8_loop | 
| 152 | 155 | 
| 153     ldmia       sp!, {r4 - r7} | 156     ldmia       sp!, {r4 - r7} | 
| 154     ;pop        {r4-r7} | 157     ;pop        {r4-r7} | 
| 155     mov     pc, lr | 158     mov     pc, lr | 
| 156 | 159 | 
| 157 ;copy 16 bytes each time | 160 ;copy 16 bytes each time | 
| 158 copy_mem16x16_fast | 161 copy_mem16x16_fast | 
| 159     ;sub        r1, r1, #16 | 162     ;sub        r1, r1, #16 | 
| 160     ;sub        r3, r3, #16 | 163     ;sub        r3, r3, #16 | 
| 161 | 164 | 
| 162     mov     r12, #16 | 165     mov     r12, #16 | 
| 163 | 166 | 
| 164 copy_mem16x16_fast_loop | 167 copy_mem16x16_fast_loop | 
| 165     ldmia   r0, {r4-r7} | 168     ldmia   r0, {r4-r7} | 
| 166     ;ldm        r0, {r4-r7} | 169     ;ldm        r0, {r4-r7} | 
| 167     add     r0, r0, r1 | 170     add     r0, r0, r1 | 
| 168 | 171 | 
| 169     subs    r12, r12, #1 | 172     subs    r12, r12, #1 | 
| 170     stmia   r2, {r4-r7} | 173     stmia   r2, {r4-r7} | 
| 171     ;stm        r2, {r4-r7} | 174     ;stm        r2, {r4-r7} | 
| 172     add     r2, r2, r3 | 175     add     r2, r2, r3 | 
| 173 | 176 | 
|  | 177     pld     [r0, #31]               ; preload for next 16x16 block | 
| 174     bne     copy_mem16x16_fast_loop | 178     bne     copy_mem16x16_fast_loop | 
| 175 | 179 | 
| 176     ldmia       sp!, {r4 - r7} | 180     ldmia       sp!, {r4 - r7} | 
| 177     ;pop        {r4-r7} | 181     ;pop        {r4-r7} | 
| 178     mov     pc, lr | 182     mov     pc, lr | 
| 179 | 183 | 
| 180     ENDP  ; |vp8_copy_mem16x16_v6| | 184     ENDP  ; |vp8_copy_mem16x16_v6| | 
| 181 | 185 | 
| 182     END | 186     END | 
| OLD | NEW | 
|---|