summaryrefslogtreecommitdiff
path: root/firmware/target/arm/philips/hdd6330
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/philips/hdd6330')
-rw-r--r--firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S61
1 files changed, 26 insertions, 35 deletions
diff --git a/firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S b/firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S
index 364eb5b08f..c3a7992a2e 100644
--- a/firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S
+++ b/firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S
@@ -48,38 +48,34 @@ lcd_yuv_write_inner_loop:
48 ldrb r7, [r1], #1 @ *usrc++ 48 ldrb r7, [r1], #1 @ *usrc++
49 ldrb r8, [r2], #1 @ *vsrc++ 49 ldrb r8, [r2], #1 @ *vsrc++
50 50
51 add r10, r8, r8, asl #2 @ 101* vsrc 51 sub r7, r7, #128 @ Cb -= 128
52 sub r8, r8, #128 @ Cr -= 128
53
54 add r10, r8, r8, asl #2 @ Cr*101
52 add r10, r10, r8, asl #5 55 add r10, r10, r8, asl #5
53 add r10, r10, r8, asl #6 56 add r10, r10, r8, asl #6
54 sub r10, r10, #0x3600
55 sub r10, r10, #0x0020 @ -13856 (ROUNDOFFSR)
56 57
57 add r11, r8, r8, asl #1 @ 51*vsrc + 24*usrc 58 add r11, r8, r8, asl #1 @ Cr*51 + Cb*24
58 add r11, r11, r11, asl #4 59 add r11, r11, r11, asl #4
59 add r11, r11, r7, asl #3 60 add r11, r11, r7, asl #3
60 add r11, r11, r7, asl #4 61 add r11, r11, r7, asl #4
61 mov r12, #0x2100
62 add r12, r12, #0x60 @ +8544 (ROUNDOFFSG) - r11
63 rsb r11, r11, r12
64 62
65 mov r12, r7, asl #7 @ 128 * usrc 63 add r12, r7, #2 @ r12 = bu = (Cb*128 + 256) >> 9
66 sub r12, r12, #0x4300 64 mov r12, r12, asr #2
67 sub r12, r12, #0x00a0 @ -17312 (ROUNDOFFSB) 65 add r10, r10, #256 @ r10 = rv = (Cr*101 + 256) >> 9
66 mov r10, r10, asr #9
67 rsb r11, r11, #128 @ r11 = guv = (-r11 + 128) >> 8
68 mov r11, r11, asr #8
68 69
69@ pixel_1 70@ pixel_1
70 ldrb r8, [r0], #1 @ *ysrc++ 71 ldrb r7, [r0], #1 @ *ysrc++
71 mov r7, r8, asl #1 72 sub r7, r7, #16 @ Y = (Y' - 16) * 37
72 add r7, r7, r8, asl #3 73 add r8, r7, r7, asl #2
73 add r7, r7, r8, asl #6 @ ysrc * 74 74 add r7, r8, r7, asl #5
74
75 add r9, r10, r7
76 mov r9, r9, asr #9 @ R
77
78 add r8, r11, r7
79 mov r8, r8, asr #8 @ G
80 75
81 add r7, r12, r7 76 add r9, r10, r7, asr #8 @ R = (Y >> 8) + rv
82 mov r7, r7, asr #9 @ B 77 add r8, r11, r7, asr #7 @ G = (Y >> 7) + guv
78 add r7, r12, r7, asr #8 @ B = (Y >> 8) + bu
83 79
84 cmp r9, #31 @ clamp R 80 cmp r9, #31 @ clamp R
85 mvnhi r9, r9, asr #31 81 mvnhi r9, r9, asr #31
@@ -101,19 +97,14 @@ lcd_yuv_write_inner_loop:
101 add r6, r7, r6, lsr #8 97 add r6, r7, r6, lsr #8
102 98
103@ pixel_2 99@ pixel_2
104 ldrb r8, [r0], #1 @ *ysrc++ 100 ldrb r7, [r0], #1 @ *ysrc++
105 mov r7, r8, asl #1 101 sub r7, r7, #16 @ Y = (Y' - 16) * 37
106 add r7, r7, r8, asl #3 102 add r8, r7, r7, asl #2
107 add r7, r7, r8, asl #6 @ ysrc * 74 103 add r7, r8, r7, asl #5
108 104
109 add r9, r10, r7 105 add r9, r10, r7, asr #8 @ R = (Y >> 8) + rv
110 mov r9, r9, asr #9 @ R 106 add r8, r11, r7, asr #7 @ G = (Y >> 7) + guv
111 107 add r7, r12, r7, asr #8 @ B = (Y >> 8) + bu
112 add r8, r11, r7
113 mov r8, r8, asr #8 @ G
114
115 add r7, r12, r7
116 mov r7, r7, asr #9 @ B
117 108
118 cmp r9, #31 @ clamp R 109 cmp r9, #31 @ clamp R
119 mvnhi r9, r9, asr #31 110 mvnhi r9, r9, asr #31