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;