| Index: emcore/trunk/target/ipodnano4g/lcd.c |
| — | — | @@ -242,27 +242,27 @@ |
| 243 | 243 | __asm__ volatile(" mov r5, #0 \n"); |
| 244 | 244 | __asm__ volatile(" mov r7, r8 \n"); |
| 245 | 245 | __asm__ volatile("displaylcd_dither_x: \n"); // the lcd can accept one pixel every 25 clocks |
| 246 | | - __asm__ volatile(" ldr r0, [r3] \n"); // 1 cycle, 2 mem, r0 latency 4, r3 early
|
| | 246 | + __asm__ volatile(" ldr r0, [r3] \n"); // 1 cycle, 2 mem, r0 latency 4, r3 early |
| 247 | 247 | __asm__ volatile(" add r3, r3, r10 \n"); // 1 cycle |
| 248 | | - __asm__ volatile(" ldr r1, [r7,#4] \n"); // 1 cycle, 1 mem, r1 latency 3, r7 early
|
| | 248 | + __asm__ volatile(" ldr r1, [r7,#4] \n"); // 1 cycle, 1 mem, r1 latency 3, r7 early |
| 249 | 249 | __asm__ volatile(" subs lr, lr, #1 \n"); // 1 cycle |
| 250 | | - __asm__ volatile(" ssub8 r0, r0, r4 \n"); // 1 cycle
|
| 251 | | - __asm__ volatile(" sadd8 r1, r1, r5 \n"); // 1 cycle
|
| 252 | | - __asm__ volatile(" qadd8 r0, r0, r1 \n"); // 1 cycle, r0 latency 2
|
| 253 | | - // bubble (due to r0 latency)
|
| 254 | | - __asm__ volatile(" sadd8 r0, r0, r4 \n"); // 1 cycle
|
| 255 | | - __asm__ volatile(" str r0, [r9] \n"); // 1 cycle, 1 mem, r9 early
|
| 256 | | - __asm__ volatile(" bic r2, r0, r6 \n"); // 1 cycle
|
| 257 | | - __asm__ volatile(" and r1, r6, r0,lsr#6 \n"); // 1 cycle, r0 early
|
| 258 | | - __asm__ volatile(" orr r2, r2, r1 \n"); // 1 cycle
|
| 259 | | - __asm__ volatile(" mov r1, r5 \n"); // 1 cycle
|
| 260 | | - __asm__ volatile(" shsub8 r5, r0, r2 \n"); // 1 cycle
|
| 261 | | - __asm__ volatile(" shadd8 r1, r1, r5 \n"); // 1 cycle
|
| | 250 | + __asm__ volatile(" ssub8 r0, r0, r4 \n"); // 1 cycle |
| | 251 | + __asm__ volatile(" sadd8 r1, r1, r5 \n"); // 1 cycle |
| | 252 | + __asm__ volatile(" qadd8 r0, r0, r1 \n"); // 1 cycle, r0 latency 2 |
| | 253 | + // bubble (due to r0 latency) |
| | 254 | + __asm__ volatile(" sadd8 r0, r0, r4 \n"); // 1 cycle |
| | 255 | + __asm__ volatile(" str r0, [r9] \n"); // 1 cycle, 1 mem, r9 early |
| | 256 | + __asm__ volatile(" bic r2, r0, r6 \n"); // 1 cycle |
| | 257 | + __asm__ volatile(" and r1, r6, r0,lsr#6 \n"); // 1 cycle, r0 early |
| | 258 | + __asm__ volatile(" orr r2, r2, r1 \n"); // 1 cycle |
| | 259 | + __asm__ volatile(" mov r1, r5 \n"); // 1 cycle |
| | 260 | + __asm__ volatile(" shsub8 r5, r0, r2 \n"); // 1 cycle |
| | 261 | + __asm__ volatile(" shadd8 r1, r1, r5 \n"); // 1 cycle |
| 262 | 262 | __asm__ volatile(" str r1, [r7], #4 \n"); // 1 cycle, 1 mem, r7 early |
| 263 | | - __asm__ volatile(" nop \n"); // 2 cycles
|
| 264 | | - __asm__ volatile(" nop \n"); // 2 cycles
|
| 265 | | - __asm__ volatile(" nop \n"); // 2 cycles
|
| 266 | | - __asm__ volatile(" nop \n"); // 2 cycles
|
| | 263 | + __asm__ volatile(" nop \n"); // 2 cycles |
| | 264 | + __asm__ volatile(" nop \n"); // 2 cycles |
| | 265 | + __asm__ volatile(" nop \n"); // 2 cycles |
| | 266 | + __asm__ volatile(" nop \n"); // 2 cycles |
| 267 | 267 | __asm__ volatile(" bne displaylcd_dither_x \n"); |
| 268 | 268 | __asm__ volatile(" add r3, r3, r11 \n"); |
| 269 | 269 | __asm__ volatile(" subs r12, r12, #1 \n"); |