Index: firmware/target/arm/sandisk/sansa-c200/lcd-as-c200.S =================================================================== --- firmware/target/arm/sandisk/sansa-c200/lcd-as-c200.S (revision 15102) +++ firmware/target/arm/sandisk/sansa-c200/lcd-as-c200.S (working copy) @@ -59,8 +59,7 @@ ldrb r8, [r5], #1 @ r8 = *Cb_p++; ldrb r9, [r6], #1 @ r9 = *Cr_p++; @ - sub r7, r7, #16 @ r7 = Y = (Y' - 16)*74 - add r12, r7, r7, asl #2 @ actually (Y' - 16)*37 and shift right + add r12, r7, r7, asl #2 @ r7 = Y = (Y')*74 actually (Y')*37 and shift right add r7, r12, r7, asl #5 @ by one less when adding - same for all @ sub r8, r8, #128 @ Cb -= 128 @@ -75,12 +74,13 @@ add r11, r11, r9, asl #5 @ add r9, r11, r9, asl #6 @ @ - add r8, r8, #2 @ r8 = bu = (Cb*128 + 128) >> 8 - mov r8, r8, asr #2 @ - add r9, r9, #256 @ r9 = rv = (r9 + 256) >> 9 - mov r9, r9, asr #9 @ - rsb r10, r10, #128 @ r10 = guv = (-r10 + 128) >> 8 - mov r10, r10, asr #8 @ + mov r8, r8, asl #2 @ r8 = bu = (Cb*128 + ROUNDOFFB) >> 9 + sub r8, r8, #541 @ + mov r8, r8, asr #4 @ + sub r9, r9, #13856 @ r9 = rv = (r9 + ROUNDOFFR) >> 9 + mov r9, r9, asr #9 @ + rsb r10, r10, #8544 @ r10 = guv = (-r10 + ROUNDOFFG) >> 8 + mov r10, r10, asr #8 @ @ compute R, G, and B add r0, r8, r7, asr #8 @ r0 = b = (Y >> 9) + bu add r11, r9, r7, asr #8 @ r11 = r = (Y >> 9) + rv @@ -117,9 +117,8 @@ bne 1b @ str r0, [r3, #0x10] @ send LSB @ - sub r7, r12, #16 @ r7 = Y = (Y' - 16)*74 - add r12, r7, r7, asl #2 @ - add r7, r12, r7, asl #5 @ + add r11, r12, r12, asl #2 @ r7 = Y = (Y')*74 + add r7, r11, r12, asl #5 @ @ compute R, G, and B add r0, r8, r7, asr #8 @ r0 = b = (Y >> 9) + bu add r11, r9, r7, asr #8 @ r11 = r = (Y >> 9) + rv @@ -156,9 +155,8 @@ bne 1b @ str r0, [r3, #0x10] @ send LSB @ - sub r7, r12, #16 @ r7 = Y = (Y' - 16)*74 - add r12, r7, r7, asl #2 @ - add r7, r12, r7, asl #5 @ + add r11, r12, r12, asl #2 @ r7 = Y = (Y')*74 + add r7, r11, r12, asl #5 @ @ compute R, G, and B add r0, r8, r7, asr #8 @ r0 = b = (Y >> 9) + bu add r11, r9, r7, asr #8 @ r11 = r = (Y >> 9) + rv @@ -196,9 +194,8 @@ bne 1b @ str r0, [r3, #0x10] @ send LSB @ - sub r7, r12, #16 @ r7 = Y = (Y' - 16)*74 - add r12, r7, r7, asl #2 @ - add r7, r12, r7, asl #5 @ + add r11, r12, r12, asl #2 @ r7 = Y = (Y')*74 + add r7, r11, r12, asl #5 @ @ compute R, G, and B add r0, r8, r7, asr #8 @ r0 = b = (Y >> 9) + bu add r11, r9, r7, asr #8 @ r11 = r = (Y >> 9) + rv