| 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 |