Based on a patch by Russel King <rmk+libav@arm.linux.org.uk>
Unified · Split
| @@ -132,11 +132,12 @@ function ff_put_pixels8_y2_armv6, export=1 · 131 unmodified lines | |||
| 132 | uhadd8 r9, r5, r7 | 132 | uhadd8 r9, r5, r7 |
| 133 | eor r11, r5, r7 | 133 | eor r11, r5, r7 |
| 134 | and r10, r10, r12 | 134 | and r10, r10, r12 |
| 135 | ldr_pre r4, r1, r2 | 135 | ldrc_pre ne, r4, r1, r2 |
| 136 | uadd8 r8, r8, r10 | 136 | uadd8 r8, r8, r10 |
| 137 | and r11, r11, r12 | 137 | and r11, r11, r12 |
| 138 | uadd8 r9, r9, r11 | 138 | uadd8 r9, r9, r11 |
| 139 | ldr r5, [r1, #4] | 139 | it ne |
| 140 | ldrne r5, [r1, #4] | ||
| 140 | uhadd8 r10, r4, r6 | 141 | uhadd8 r10, r4, r6 |
| 141 | eor r6, r4, r6 | 142 | eor r6, r4, r6 |
| 142 | uhadd8 r11, r5, r7 | 143 | uhadd8 r11, r5, r7 |
| @@ -144,10 +145,11 @@ function ff_put_pixels8_y2_armv6, export=1 · 1 unmodified line | |||
| 144 | eor r7, r5, r7 | 145 | eor r7, r5, r7 |
| 145 | uadd8 r10, r10, r6 | 146 | uadd8 r10, r10, r6 |
| 146 | and r7, r7, r12 | 147 | and r7, r7, r12 |
| 147 | ldr_pre r6, r1, r2 | 148 | ldrc_pre ne, r6, r1, r2 |
| 148 | uadd8 r11, r11, r7 | 149 | uadd8 r11, r11, r7 |
| 149 | strd_post r8, r9, r0, r2 | 150 | strd_post r8, r9, r0, r2 |
| 150 | ldr r7, [r1, #4] | 151 | it ne |
| 152 | ldrne r7, [r1, #4] | ||
| 151 | strd_post r10, r11, r0, r2 | 153 | strd_post r10, r11, r0, r2 |
| 152 | bne 1b | 154 | bne 1b |
| 153 | 155 | ||
| @@ -192,13 +194,15 @@ function ff_put_pixels8_y2_no_rnd_armv6, export=1 · 38 unmodified lines | |||
| 192 | 1: | 194 | 1: |
| 193 | subs r3, r3, #2 | 195 | subs r3, r3, #2 |
| 194 | uhadd8 r8, r4, r6 | 196 | uhadd8 r8, r4, r6 |
| 195 | ldr_pre r4, r1, r2 | 197 | ldrc_pre ne, r4, r1, r2 |
| 196 | uhadd8 r9, r5, r7 | 198 | uhadd8 r9, r5, r7 |
| 197 | ldr r5, [r1, #4] | 199 | it ne |
| 200 | ldrne r5, [r1, #4] | ||
| 198 | uhadd8 r12, r4, r6 | 201 | uhadd8 r12, r4, r6 |
| 199 | ldr_pre r6, r1, r2 | 202 | ldrc_pre ne, r6, r1, r2 |
| 200 | uhadd8 r14, r5, r7 | 203 | uhadd8 r14, r5, r7 |
| 201 | ldr r7, [r1, #4] | 204 | it ne |
| 205 | ldrne r7, [r1, #4] | ||
| 202 | stm r0, {r8,r9} | 206 | stm r0, {r8,r9} |
| 203 | add r0, r0, r2 | 207 | add r0, r0, r2 |
| 204 | stm r0, {r12,r14} | 208 | stm r0, {r12,r14} |
| @@ -216,6 +216,13 @@ T ldr \rt, [\rn] · 215 unmodified lines | |||
| 216 | T add \rn, \rn, \rm | 216 | T add \rn, \rn, \rm |
| 217 | .endm | 217 | .endm |
| 218 | 218 | ||
| 219 | .macro ldrc_pre cc, rt, rn, rm:vararg | ||
| 220 | A ldr\cc \rt, [\rn, \rm]! | ||
| 221 | T itt \cc | ||
| 222 | T add\cc \rn, \rn, \rm | ||
| 223 | T ldr\cc \rt, [\rn] | ||
| 224 | .endm | ||
| 225 | |||
| 219 | .macro ldrd_reg rt, rt2, rn, rm | 226 | .macro ldrd_reg rt, rt2, rn, rm |
| 220 | A ldrd \rt, \rt2, [\rn, \rm] | 227 | A ldrd \rt, \rt2, [\rn, \rm] |
| 221 | T add \rt, \rn, \rm | 228 | T add \rt, \rn, \rm |