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"); |