Mercurial > mplayer.hg
comparison libswscale/sparc/yuv2rgb_vis.c @ 29480:a4d8dee13834
Indent libswscale:
- Use 4 spaces throughout for indentation;
- Fix inconsistent indentation;
- Indent function calls and declarations aligning arguments on multiple lines
to the column after the opening parentheses;
- Align asm code to the column 4 spaces after the call to __asm__();
- Align cases in switch statements to the same column as "switch".
author | ramiro |
---|---|
date | Sun, 16 Aug 2009 00:32:04 +0000 |
parents | f8db50af4035 |
children | c080f1f5c07e |
comparison
equal
deleted
inserted
replaced
29479:55f33b0748c9 | 29480:a4d8dee13834 |
---|---|
81 | 81 |
82 | 82 |
83 // FIXME: must be changed to set alpha to 255 instead of 0 | 83 // FIXME: must be changed to set alpha to 255 instead of 0 |
84 static int vis_420P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 84 static int vis_420P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
85 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 85 int srcSliceH, uint8_t* dst[], int dstStride[]){ |
86 int y, out1, out2, out3, out4, out5, out6; | 86 int y, out1, out2, out3, out4, out5, out6; |
87 | 87 |
88 for(y=0;y < srcSliceH;++y) { | 88 for(y=0;y < srcSliceH;++y) { |
89 __asm__ volatile ( | 89 __asm__ volatile ( |
90 YUV2RGB_INIT | 90 YUV2RGB_INIT |
91 "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ | 91 "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ |
92 "1: \n\t" | 92 "1: \n\t" |
93 "ldda [%1] %%asi, %%f2 \n\t" | 93 "ldda [%1] %%asi, %%f2 \n\t" |
94 "ldda [%1+2] %%asi, %%f18 \n\t" | 94 "ldda [%1+2] %%asi, %%f18 \n\t" |
95 "ldda [%2] %%asi, %%f4 \n\t" | 95 "ldda [%2] %%asi, %%f4 \n\t" |
96 "ldda [%2+2] %%asi, %%f20 \n\t" | 96 "ldda [%2+2] %%asi, %%f20 \n\t" |
97 "ld [%0], %%f0 \n\t" | 97 "ld [%0], %%f0 \n\t" |
98 "ld [%0+4], %%f16 \n\t" | 98 "ld [%0+4], %%f16 \n\t" |
99 "fpmerge %%f3, %%f3, %%f2 \n\t" | 99 "fpmerge %%f3, %%f3, %%f2 \n\t" |
100 "fpmerge %%f19, %%f19, %%f18 \n\t" | 100 "fpmerge %%f19, %%f19, %%f18 \n\t" |
101 "fpmerge %%f5, %%f5, %%f4 \n\t" | 101 "fpmerge %%f5, %%f5, %%f4 \n\t" |
102 "fpmerge %%f21, %%f21, %%f20 \n\t" | 102 "fpmerge %%f21, %%f21, %%f20 \n\t" |
103 YUV2RGB_KERNEL | 103 YUV2RGB_KERNEL |
104 "fzero %%f0 \n\t" | 104 "fzero %%f0 \n\t" |
105 "fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1 | 105 "fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1 |
106 "fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1 | 106 "fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1 |
107 "fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2 | 107 "fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2 |
108 "fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2 | 108 "fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2 |
109 "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb | 109 "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb |
110 "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb | 110 "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb |
111 "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb | 111 "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb |
112 "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb | 112 "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb |
113 "std %%f4, [%3] \n\t" | 113 "std %%f4, [%3] \n\t" |
114 "std %%f20, [%3+16] \n\t" | 114 "std %%f20, [%3+16] \n\t" |
115 "std %%f6, [%3+8] \n\t" | 115 "std %%f6, [%3+8] \n\t" |
116 "std %%f22, [%3+24] \n\t" | 116 "std %%f22, [%3+24] \n\t" |
117 | 117 |
118 "add %0, 8, %0 \n\t" | 118 "add %0, 8, %0 \n\t" |
119 "add %1, 4, %1 \n\t" | 119 "add %1, 4, %1 \n\t" |
120 "add %2, 4, %2 \n\t" | 120 "add %2, 4, %2 \n\t" |
121 "subcc %4, 8, %4 \n\t" | 121 "subcc %4, 8, %4 \n\t" |
122 "bne 1b \n\t" | 122 "bne 1b \n\t" |
123 "add %3, 32, %3 \n\t" //delay slot | 123 "add %3, 32, %3 \n\t" //delay slot |
124 : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6) | 124 : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6) |
125 : "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+((y+srcSliceY)>>1)*srcStride[1]), | 125 : "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+((y+srcSliceY)>>1)*srcStride[1]), |
126 "2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), | 126 "2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), |
127 "4" (c->dstW), | 127 "4" (c->dstW), |
128 "5" (c->sparc_coeffs) | 128 "5" (c->sparc_coeffs) |
129 ); | 129 ); |
130 } | 130 } |
131 | 131 |
132 return srcSliceH; | 132 return srcSliceH; |
133 } | 133 } |
134 | 134 |
135 // FIXME: must be changed to set alpha to 255 instead of 0 | 135 // FIXME: must be changed to set alpha to 255 instead of 0 |
136 static int vis_422P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, | 136 static int vis_422P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, |
137 int srcSliceH, uint8_t* dst[], int dstStride[]){ | 137 int srcSliceH, uint8_t* dst[], int dstStride[]){ |
138 int y, out1, out2, out3, out4, out5, out6; | 138 int y, out1, out2, out3, out4, out5, out6; |
139 | 139 |
140 for(y=0;y < srcSliceH;++y) { | 140 for(y=0;y < srcSliceH;++y) { |
141 __asm__ volatile ( | 141 __asm__ volatile ( |
142 YUV2RGB_INIT | 142 YUV2RGB_INIT |
143 "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ | 143 "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ |
144 "1: \n\t" | 144 "1: \n\t" |
145 "ldda [%1] %%asi, %%f2 \n\t" | 145 "ldda [%1] %%asi, %%f2 \n\t" |
146 "ldda [%1+2] %%asi, %%f18 \n\t" | 146 "ldda [%1+2] %%asi, %%f18 \n\t" |
147 "ldda [%2] %%asi, %%f4 \n\t" | 147 "ldda [%2] %%asi, %%f4 \n\t" |
148 "ldda [%2+2] %%asi, %%f20 \n\t" | 148 "ldda [%2+2] %%asi, %%f20 \n\t" |
149 "ld [%0], %%f0 \n\t" | 149 "ld [%0], %%f0 \n\t" |
150 "ld [%0+4], %%f16 \n\t" | 150 "ld [%0+4], %%f16 \n\t" |
151 "fpmerge %%f3, %%f3, %%f2 \n\t" | 151 "fpmerge %%f3, %%f3, %%f2 \n\t" |
152 "fpmerge %%f19, %%f19, %%f18 \n\t" | 152 "fpmerge %%f19, %%f19, %%f18 \n\t" |
153 "fpmerge %%f5, %%f5, %%f4 \n\t" | 153 "fpmerge %%f5, %%f5, %%f4 \n\t" |
154 "fpmerge %%f21, %%f21, %%f20 \n\t" | 154 "fpmerge %%f21, %%f21, %%f20 \n\t" |
155 YUV2RGB_KERNEL | 155 YUV2RGB_KERNEL |
156 "fzero %%f0 \n\t" | 156 "fzero %%f0 \n\t" |
157 "fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1 | 157 "fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1 |
158 "fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1 | 158 "fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1 |
159 "fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2 | 159 "fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2 |
160 "fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2 | 160 "fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2 |
161 "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb | 161 "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb |
162 "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb | 162 "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb |
163 "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb | 163 "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb |
164 "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb | 164 "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb |
165 "std %%f4, [%3] \n\t" | 165 "std %%f4, [%3] \n\t" |
166 "std %%f20, [%3+16] \n\t" | 166 "std %%f20, [%3+16] \n\t" |
167 "std %%f6, [%3+8] \n\t" | 167 "std %%f6, [%3+8] \n\t" |
168 "std %%f22, [%3+24] \n\t" | 168 "std %%f22, [%3+24] \n\t" |
169 | 169 |
170 "add %0, 8, %0 \n\t" | 170 "add %0, 8, %0 \n\t" |
171 "add %1, 4, %1 \n\t" | 171 "add %1, 4, %1 \n\t" |
172 "add %2, 4, %2 \n\t" | 172 "add %2, 4, %2 \n\t" |
173 "subcc %4, 8, %4 \n\t" | 173 "subcc %4, 8, %4 \n\t" |
174 "bne 1b \n\t" | 174 "bne 1b \n\t" |
175 "add %3, 32, %3 \n\t" //delay slot | 175 "add %3, 32, %3 \n\t" //delay slot |
176 : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6) | 176 : "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6) |
177 : "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+(y+srcSliceY)*srcStride[1]), | 177 : "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+(y+srcSliceY)*srcStride[1]), |
178 "2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), | 178 "2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), |
179 "4" (c->dstW), | 179 "4" (c->dstW), |
180 "5" (c->sparc_coeffs) | 180 "5" (c->sparc_coeffs) |
181 ); | 181 ); |
182 } | 182 } |
183 | 183 |
184 return srcSliceH; | 184 return srcSliceH; |
185 } | 185 } |
186 | 186 |
187 SwsFunc ff_yuv2rgb_init_vis(SwsContext *c){ | 187 SwsFunc ff_yuv2rgb_init_vis(SwsContext *c){ |
188 c->sparc_coeffs[5]=c->yCoeff; | 188 c->sparc_coeffs[5]=c->yCoeff; |
189 c->sparc_coeffs[6]=c->vgCoeff; | 189 c->sparc_coeffs[6]=c->vgCoeff; |