2 /* autogenerated from videoblendorc.orc */
9 #ifndef _ORC_INTEGER_TYPEDEFS_
10 #define _ORC_INTEGER_TYPEDEFS_
11 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
13 typedef int8_t orc_int8;
14 typedef int16_t orc_int16;
15 typedef int32_t orc_int32;
16 typedef int64_t orc_int64;
17 typedef uint8_t orc_uint8;
18 typedef uint16_t orc_uint16;
19 typedef uint32_t orc_uint32;
20 typedef uint64_t orc_uint64;
21 #define ORC_UINT64_C(x) UINT64_C(x)
22 #elif defined(_MSC_VER)
23 typedef signed __int8 orc_int8;
24 typedef signed __int16 orc_int16;
25 typedef signed __int32 orc_int32;
26 typedef signed __int64 orc_int64;
27 typedef unsigned __int8 orc_uint8;
28 typedef unsigned __int16 orc_uint16;
29 typedef unsigned __int32 orc_uint32;
30 typedef unsigned __int64 orc_uint64;
31 #define ORC_UINT64_C(x) (x##Ui64)
32 #define inline __inline
35 typedef signed char orc_int8;
36 typedef short orc_int16;
37 typedef int orc_int32;
38 typedef unsigned char orc_uint8;
39 typedef unsigned short orc_uint16;
40 typedef unsigned int orc_uint32;
41 #if INT_MAX == LONG_MAX
42 typedef long long orc_int64;
43 typedef unsigned long long orc_uint64;
44 #define ORC_UINT64_C(x) (x##ULL)
46 typedef long orc_int64;
47 typedef unsigned long orc_uint64;
48 #define ORC_UINT64_C(x) (x##UL)
73 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 #define ORC_RESTRICT restrict
75 #elif defined(__GNUC__) && __GNUC__ >= 4
76 #define ORC_RESTRICT __restrict__
85 void orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
87 void orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
89 void cogorc_getline_I420 (guint8 * ORC_RESTRICT d1,
90 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
91 const guint8 * ORC_RESTRICT s3, int n);
92 void cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
93 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
94 void cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1,
95 const guint8 * ORC_RESTRICT s1, int n);
96 void cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1,
97 const guint8 * ORC_RESTRICT s1, int n);
98 void cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1,
99 const guint8 * ORC_RESTRICT s1, int n);
100 void cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1,
101 const guint8 * ORC_RESTRICT s1, int n);
102 void cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1,
103 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
104 const guint8 * ORC_RESTRICT s3, int n);
105 void cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1,
106 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
107 const guint8 * ORC_RESTRICT s3, int n);
108 void cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
109 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
110 void cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1,
111 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
112 const guint8 * ORC_RESTRICT s3, int n);
113 void cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
114 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
115 void cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1,
116 const guint8 * ORC_RESTRICT s1, int n);
117 void cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1,
118 const guint8 * ORC_RESTRICT s1, int n);
119 void cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1,
120 const guint8 * ORC_RESTRICT s1, int n);
121 void cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1,
122 const guint8 * ORC_RESTRICT s1, int n);
123 void cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1,
124 const guint8 * ORC_RESTRICT s1, int n);
125 void cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1,
126 const guint8 * ORC_RESTRICT s1, int n);
127 void cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1,
128 const guint8 * ORC_RESTRICT s1, int n);
129 void cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1,
130 const guint8 * ORC_RESTRICT s1, int n);
131 void cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1,
132 const guint8 * ORC_RESTRICT s1, int n);
133 void cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1,
134 const guint8 * ORC_RESTRICT s1, int n);
135 void cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1,
136 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
137 void cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
138 const guint8 * ORC_RESTRICT s1, int n);
139 void cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1,
140 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
141 void cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
142 const guint8 * ORC_RESTRICT s1, int n);
143 void cogorc_getline_A420 (guint8 * ORC_RESTRICT d1,
144 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
145 const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
146 void cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
147 guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
148 const guint8 * ORC_RESTRICT s1, int n);
149 void orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
150 const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
151 void orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
152 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
156 /* begin Orc C target preamble */
157 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
158 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
159 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
160 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
161 #define ORC_SB_MAX 127
162 #define ORC_SB_MIN (-1-ORC_SB_MAX)
163 #define ORC_UB_MAX 255
165 #define ORC_SW_MAX 32767
166 #define ORC_SW_MIN (-1-ORC_SW_MAX)
167 #define ORC_UW_MAX 65535
169 #define ORC_SL_MAX 2147483647
170 #define ORC_SL_MIN (-1-ORC_SL_MAX)
171 #define ORC_UL_MAX 4294967295U
173 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
174 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
175 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
176 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
177 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
178 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
179 #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
180 #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
181 #define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
182 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
183 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
184 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
185 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
186 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
188 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
189 #define ORC_RESTRICT restrict
190 #elif defined(__GNUC__) && __GNUC__ >= 4
191 #define ORC_RESTRICT __restrict__
196 /* end Orc C target preamble */
200 /* orc_blend_little */
203 orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
207 orc_union32 *ORC_RESTRICT ptr0;
208 const orc_union32 *ORC_RESTRICT ptr4;
226 ptr0 = (orc_union32 *) d1;
227 ptr4 = (orc_union32 *) s1;
230 var39.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
232 for (i = 0; i < n; i++) {
241 ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
244 var44.x4[0] = (orc_uint8) var43.x4[0];
245 var44.x4[1] = (orc_uint8) var43.x4[1];
246 var44.x4[2] = (orc_uint8) var43.x4[2];
247 var44.x4[3] = (orc_uint8) var43.x4[3];
249 var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
250 var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
251 var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
252 var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
254 var46.x4[0] = (orc_uint8) var40.x4[0];
255 var46.x4[1] = (orc_uint8) var40.x4[1];
256 var46.x4[2] = (orc_uint8) var40.x4[2];
257 var46.x4[3] = (orc_uint8) var40.x4[3];
261 var48.x4[0] = (orc_uint8) var47.x4[0];
262 var48.x4[1] = (orc_uint8) var47.x4[1];
263 var48.x4[2] = (orc_uint8) var47.x4[2];
264 var48.x4[3] = (orc_uint8) var47.x4[3];
266 var49.x4[0] = var46.x4[0] - var48.x4[0];
267 var49.x4[1] = var46.x4[1] - var48.x4[1];
268 var49.x4[2] = var46.x4[2] - var48.x4[2];
269 var49.x4[3] = var46.x4[3] - var48.x4[3];
271 var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
272 var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
273 var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
274 var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
277 ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
278 (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
280 ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
281 (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
283 ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
284 (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
286 ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
287 (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
289 var52.x4[0] = var48.x4[0] + var51.x4[0];
290 var52.x4[1] = var48.x4[1] + var51.x4[1];
291 var52.x4[2] = var48.x4[2] + var51.x4[2];
292 var52.x4[3] = var48.x4[3] + var51.x4[3];
294 var53.x4[0] = var52.x4[0];
295 var53.x4[1] = var52.x4[1];
296 var53.x4[2] = var52.x4[2];
297 var53.x4[3] = var52.x4[3];
299 var54.i = var53.i | var39.i;
308 _backup_orc_blend_little (OrcExecutor * ORC_RESTRICT ex)
312 orc_union32 *ORC_RESTRICT ptr0;
313 const orc_union32 *ORC_RESTRICT ptr4;
331 ptr0 = (orc_union32 *) ex->arrays[0];
332 ptr4 = (orc_union32 *) ex->arrays[4];
335 var39.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
337 for (i = 0; i < n; i++) {
346 ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
349 var44.x4[0] = (orc_uint8) var43.x4[0];
350 var44.x4[1] = (orc_uint8) var43.x4[1];
351 var44.x4[2] = (orc_uint8) var43.x4[2];
352 var44.x4[3] = (orc_uint8) var43.x4[3];
354 var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
355 var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
356 var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
357 var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
359 var46.x4[0] = (orc_uint8) var40.x4[0];
360 var46.x4[1] = (orc_uint8) var40.x4[1];
361 var46.x4[2] = (orc_uint8) var40.x4[2];
362 var46.x4[3] = (orc_uint8) var40.x4[3];
366 var48.x4[0] = (orc_uint8) var47.x4[0];
367 var48.x4[1] = (orc_uint8) var47.x4[1];
368 var48.x4[2] = (orc_uint8) var47.x4[2];
369 var48.x4[3] = (orc_uint8) var47.x4[3];
371 var49.x4[0] = var46.x4[0] - var48.x4[0];
372 var49.x4[1] = var46.x4[1] - var48.x4[1];
373 var49.x4[2] = var46.x4[2] - var48.x4[2];
374 var49.x4[3] = var46.x4[3] - var48.x4[3];
376 var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
377 var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
378 var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
379 var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
382 ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
383 (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
385 ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
386 (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
388 ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
389 (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
391 ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
392 (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
394 var52.x4[0] = var48.x4[0] + var51.x4[0];
395 var52.x4[1] = var48.x4[1] + var51.x4[1];
396 var52.x4[2] = var48.x4[2] + var51.x4[2];
397 var52.x4[3] = var48.x4[3] + var51.x4[3];
399 var53.x4[0] = var52.x4[0];
400 var53.x4[1] = var52.x4[1];
401 var53.x4[2] = var52.x4[2];
402 var53.x4[3] = var52.x4[3];
404 var54.i = var53.i | var39.i;
412 orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
415 OrcExecutor _ex, *ex = &_ex;
416 static volatile int p_inited = 0;
417 static OrcProgram *p = 0;
418 void (*func) (OrcExecutor *);
421 orc_once_mutex_lock ();
424 p = orc_program_new ();
425 orc_program_set_name (p, "orc_blend_little");
426 orc_program_set_backup_function (p, _backup_orc_blend_little);
427 orc_program_add_destination (p, 4, "d1");
428 orc_program_add_source (p, 4, "s1");
429 orc_program_add_constant (p, 4, 0x000000ff, "c1");
430 orc_program_add_constant (p, 4, 0x00000008, "c2");
431 orc_program_add_temporary (p, 4, "t1");
432 orc_program_add_temporary (p, 2, "t2");
433 orc_program_add_temporary (p, 1, "t3");
434 orc_program_add_temporary (p, 4, "t4");
435 orc_program_add_temporary (p, 8, "t5");
436 orc_program_add_temporary (p, 8, "t6");
437 orc_program_add_temporary (p, 8, "t7");
439 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
441 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
443 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
445 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
447 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
449 orc_program_append_2 (p, "shruw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
451 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
453 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
455 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
457 orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
459 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
461 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
463 orc_program_append_2 (p, "addw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T6,
465 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1,
467 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
469 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
472 orc_program_compile (p);
475 orc_once_mutex_unlock ();
480 ex->arrays[ORC_VAR_D1] = d1;
481 ex->arrays[ORC_VAR_S1] = (void *) s1;
492 orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n)
495 orc_union32 *ORC_RESTRICT ptr0;
496 const orc_union32 *ORC_RESTRICT ptr4;
515 ptr0 = (orc_union32 *) d1;
516 ptr4 = (orc_union32 *) s1;
519 var40.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
521 for (i = 0; i < n; i++) {
525 var42.i = ((orc_uint32) var41.i) >> 24;
532 ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
535 var46.x4[0] = (orc_uint8) var45.x4[0];
536 var46.x4[1] = (orc_uint8) var45.x4[1];
537 var46.x4[2] = (orc_uint8) var45.x4[2];
538 var46.x4[3] = (orc_uint8) var45.x4[3];
540 var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
541 var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
542 var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
543 var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
545 var48.x4[0] = (orc_uint8) var41.x4[0];
546 var48.x4[1] = (orc_uint8) var41.x4[1];
547 var48.x4[2] = (orc_uint8) var41.x4[2];
548 var48.x4[3] = (orc_uint8) var41.x4[3];
552 var50.x4[0] = (orc_uint8) var49.x4[0];
553 var50.x4[1] = (orc_uint8) var49.x4[1];
554 var50.x4[2] = (orc_uint8) var49.x4[2];
555 var50.x4[3] = (orc_uint8) var49.x4[3];
557 var51.x4[0] = var48.x4[0] - var50.x4[0];
558 var51.x4[1] = var48.x4[1] - var50.x4[1];
559 var51.x4[2] = var48.x4[2] - var50.x4[2];
560 var51.x4[3] = var48.x4[3] - var50.x4[3];
562 var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
563 var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
564 var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
565 var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
568 ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
569 (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
571 ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
572 (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
574 ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
575 (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
577 ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
578 (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
580 var54.x4[0] = var50.x4[0] + var53.x4[0];
581 var54.x4[1] = var50.x4[1] + var53.x4[1];
582 var54.x4[2] = var50.x4[2] + var53.x4[2];
583 var54.x4[3] = var50.x4[3] + var53.x4[3];
585 var55.x4[0] = var54.x4[0];
586 var55.x4[1] = var54.x4[1];
587 var55.x4[2] = var54.x4[2];
588 var55.x4[3] = var54.x4[3];
590 var56.i = var55.i | var40.i;
599 _backup_orc_blend_big (OrcExecutor * ORC_RESTRICT ex)
603 orc_union32 *ORC_RESTRICT ptr0;
604 const orc_union32 *ORC_RESTRICT ptr4;
623 ptr0 = (orc_union32 *) ex->arrays[0];
624 ptr4 = (orc_union32 *) ex->arrays[4];
627 var40.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
629 for (i = 0; i < n; i++) {
633 var42.i = ((orc_uint32) var41.i) >> 24;
640 ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
643 var46.x4[0] = (orc_uint8) var45.x4[0];
644 var46.x4[1] = (orc_uint8) var45.x4[1];
645 var46.x4[2] = (orc_uint8) var45.x4[2];
646 var46.x4[3] = (orc_uint8) var45.x4[3];
648 var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
649 var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
650 var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
651 var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
653 var48.x4[0] = (orc_uint8) var41.x4[0];
654 var48.x4[1] = (orc_uint8) var41.x4[1];
655 var48.x4[2] = (orc_uint8) var41.x4[2];
656 var48.x4[3] = (orc_uint8) var41.x4[3];
660 var50.x4[0] = (orc_uint8) var49.x4[0];
661 var50.x4[1] = (orc_uint8) var49.x4[1];
662 var50.x4[2] = (orc_uint8) var49.x4[2];
663 var50.x4[3] = (orc_uint8) var49.x4[3];
665 var51.x4[0] = var48.x4[0] - var50.x4[0];
666 var51.x4[1] = var48.x4[1] - var50.x4[1];
667 var51.x4[2] = var48.x4[2] - var50.x4[2];
668 var51.x4[3] = var48.x4[3] - var50.x4[3];
670 var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
671 var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
672 var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
673 var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
676 ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
677 (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
679 ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
680 (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
682 ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
683 (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
685 ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
686 (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
688 var54.x4[0] = var50.x4[0] + var53.x4[0];
689 var54.x4[1] = var50.x4[1] + var53.x4[1];
690 var54.x4[2] = var50.x4[2] + var53.x4[2];
691 var54.x4[3] = var50.x4[3] + var53.x4[3];
693 var55.x4[0] = var54.x4[0];
694 var55.x4[1] = var54.x4[1];
695 var55.x4[2] = var54.x4[2];
696 var55.x4[3] = var54.x4[3];
698 var56.i = var55.i | var40.i;
706 orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n)
708 OrcExecutor _ex, *ex = &_ex;
709 static volatile int p_inited = 0;
710 static OrcProgram *p = 0;
711 void (*func) (OrcExecutor *);
714 orc_once_mutex_lock ();
717 p = orc_program_new ();
718 orc_program_set_name (p, "orc_blend_big");
719 orc_program_set_backup_function (p, _backup_orc_blend_big);
720 orc_program_add_destination (p, 4, "d1");
721 orc_program_add_source (p, 4, "s1");
722 orc_program_add_constant (p, 4, 0xff000000, "c1");
723 orc_program_add_constant (p, 4, 0x00000018, "c2");
724 orc_program_add_constant (p, 4, 0x00000008, "c3");
725 orc_program_add_temporary (p, 4, "t1");
726 orc_program_add_temporary (p, 4, "t2");
727 orc_program_add_temporary (p, 2, "t3");
728 orc_program_add_temporary (p, 1, "t4");
729 orc_program_add_temporary (p, 4, "t5");
730 orc_program_add_temporary (p, 8, "t6");
731 orc_program_add_temporary (p, 8, "t7");
732 orc_program_add_temporary (p, 8, "t8");
734 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
736 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C2,
738 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
740 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
742 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
744 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
746 orc_program_append_2 (p, "shruw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C3,
748 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
750 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
752 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
754 orc_program_append_2 (p, "subw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
756 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
758 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
760 orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
762 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_D1,
764 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
766 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
769 orc_program_compile (p);
772 orc_once_mutex_unlock ();
777 ex->arrays[ORC_VAR_D1] = d1;
778 ex->arrays[ORC_VAR_S1] = (void *) s1;
786 /* cogorc_getline_I420 */
789 cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
790 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
793 orc_union32 *ORC_RESTRICT ptr0;
794 const orc_int8 *ORC_RESTRICT ptr4;
795 const orc_int8 *ORC_RESTRICT ptr5;
796 const orc_int8 *ORC_RESTRICT ptr6;
805 ptr0 = (orc_union32 *) d1;
806 ptr4 = (orc_int8 *) s1;
807 ptr5 = (orc_int8 *) s2;
808 ptr6 = (orc_int8 *) s3;
811 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
813 for (i = 0; i < n; i++) {
815 var39 = ptr5[i >> 1];
817 var40 = ptr6[i >> 1];
837 _dest.x2[0] = var42.i;
838 _dest.x2[1] = var41.i;
849 _backup_cogorc_getline_I420 (OrcExecutor * ORC_RESTRICT ex)
853 orc_union32 *ORC_RESTRICT ptr0;
854 const orc_int8 *ORC_RESTRICT ptr4;
855 const orc_int8 *ORC_RESTRICT ptr5;
856 const orc_int8 *ORC_RESTRICT ptr6;
865 ptr0 = (orc_union32 *) ex->arrays[0];
866 ptr4 = (orc_int8 *) ex->arrays[4];
867 ptr5 = (orc_int8 *) ex->arrays[5];
868 ptr6 = (orc_int8 *) ex->arrays[6];
871 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
873 for (i = 0; i < n; i++) {
875 var39 = ptr5[i >> 1];
877 var40 = ptr6[i >> 1];
897 _dest.x2[0] = var42.i;
898 _dest.x2[1] = var41.i;
908 cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
909 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
911 OrcExecutor _ex, *ex = &_ex;
912 static volatile int p_inited = 0;
913 static OrcProgram *p = 0;
914 void (*func) (OrcExecutor *);
917 orc_once_mutex_lock ();
920 p = orc_program_new ();
921 orc_program_set_name (p, "cogorc_getline_I420");
922 orc_program_set_backup_function (p, _backup_cogorc_getline_I420);
923 orc_program_add_destination (p, 4, "d1");
924 orc_program_add_source (p, 1, "s1");
925 orc_program_add_source (p, 1, "s2");
926 orc_program_add_source (p, 1, "s3");
927 orc_program_add_constant (p, 1, 0x000000ff, "c1");
928 orc_program_add_temporary (p, 2, "t1");
929 orc_program_add_temporary (p, 2, "t2");
930 orc_program_add_temporary (p, 1, "t3");
931 orc_program_add_temporary (p, 1, "t4");
933 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
934 ORC_VAR_D1, ORC_VAR_D1);
935 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
936 ORC_VAR_D1, ORC_VAR_D1);
937 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
939 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
941 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
944 orc_program_compile (p);
947 orc_once_mutex_unlock ();
952 ex->arrays[ORC_VAR_D1] = d1;
953 ex->arrays[ORC_VAR_S1] = (void *) s1;
954 ex->arrays[ORC_VAR_S2] = (void *) s2;
955 ex->arrays[ORC_VAR_S3] = (void *) s3;
963 /* cogorc_putline_I420 */
966 cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
967 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
970 orc_union16 *ORC_RESTRICT ptr0;
971 orc_int8 *ORC_RESTRICT ptr1;
972 orc_int8 *ORC_RESTRICT ptr2;
973 const orc_union64 *ORC_RESTRICT ptr4;
987 ptr0 = (orc_union16 *) d1;
988 ptr1 = (orc_int8 *) d2;
989 ptr2 = (orc_int8 *) d3;
990 ptr4 = (orc_union64 *) s1;
993 for (i = 0; i < n; i++) {
999 _src.i = var38.x2[0];
1000 var42.x2[0] = _src.x2[1];
1001 var43.x2[0] = _src.x2[0];
1005 _src.i = var38.x2[1];
1006 var42.x2[1] = _src.x2[1];
1007 var43.x2[1] = _src.x2[0];
1012 _src.i = var43.x2[0];
1013 var39.x2[0] = _src.x2[1];
1017 _src.i = var43.x2[1];
1018 var39.x2[1] = _src.x2[1];
1025 _src.i = var42.x2[0];
1026 var44.x2[0] = _src.x2[1];
1027 var45.x2[0] = _src.x2[0];
1031 _src.i = var42.x2[1];
1032 var44.x2[1] = _src.x2[1];
1033 var45.x2[1] = _src.x2[0];
1043 var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
1054 var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
1063 _backup_cogorc_putline_I420 (OrcExecutor * ORC_RESTRICT ex)
1067 orc_union16 *ORC_RESTRICT ptr0;
1068 orc_int8 *ORC_RESTRICT ptr1;
1069 orc_int8 *ORC_RESTRICT ptr2;
1070 const orc_union64 *ORC_RESTRICT ptr4;
1084 ptr0 = (orc_union16 *) ex->arrays[0];
1085 ptr1 = (orc_int8 *) ex->arrays[1];
1086 ptr2 = (orc_int8 *) ex->arrays[2];
1087 ptr4 = (orc_union64 *) ex->arrays[4];
1090 for (i = 0; i < n; i++) {
1096 _src.i = var38.x2[0];
1097 var42.x2[0] = _src.x2[1];
1098 var43.x2[0] = _src.x2[0];
1102 _src.i = var38.x2[1];
1103 var42.x2[1] = _src.x2[1];
1104 var43.x2[1] = _src.x2[0];
1109 _src.i = var43.x2[0];
1110 var39.x2[0] = _src.x2[1];
1114 _src.i = var43.x2[1];
1115 var39.x2[1] = _src.x2[1];
1122 _src.i = var42.x2[0];
1123 var44.x2[0] = _src.x2[1];
1124 var45.x2[0] = _src.x2[0];
1128 _src.i = var42.x2[1];
1129 var44.x2[1] = _src.x2[1];
1130 var45.x2[1] = _src.x2[0];
1140 var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
1151 var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
1159 cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
1160 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
1162 OrcExecutor _ex, *ex = &_ex;
1163 static volatile int p_inited = 0;
1164 static OrcProgram *p = 0;
1165 void (*func) (OrcExecutor *);
1168 orc_once_mutex_lock ();
1171 p = orc_program_new ();
1172 orc_program_set_name (p, "cogorc_putline_I420");
1173 orc_program_set_backup_function (p, _backup_cogorc_putline_I420);
1174 orc_program_add_destination (p, 2, "d1");
1175 orc_program_add_destination (p, 1, "d2");
1176 orc_program_add_destination (p, 1, "d3");
1177 orc_program_add_source (p, 8, "s1");
1178 orc_program_add_temporary (p, 4, "t1");
1179 orc_program_add_temporary (p, 4, "t2");
1180 orc_program_add_temporary (p, 2, "t3");
1181 orc_program_add_temporary (p, 2, "t4");
1182 orc_program_add_temporary (p, 1, "t5");
1183 orc_program_add_temporary (p, 1, "t6");
1185 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
1187 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
1188 ORC_VAR_D1, ORC_VAR_D1);
1189 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
1191 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
1193 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
1195 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
1197 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
1200 orc_program_compile (p);
1203 orc_once_mutex_unlock ();
1208 ex->arrays[ORC_VAR_D1] = d1;
1209 ex->arrays[ORC_VAR_D2] = d2;
1210 ex->arrays[ORC_VAR_D3] = d3;
1211 ex->arrays[ORC_VAR_S1] = (void *) s1;
1213 func = p->code_exec;
1219 /* cogorc_getline_YUY2 */
1222 cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1226 orc_union64 *ORC_RESTRICT ptr0;
1227 const orc_union32 *ORC_RESTRICT ptr4;
1236 ptr0 = (orc_union64 *) d1;
1237 ptr4 = (orc_union32 *) s1;
1240 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1241 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1243 for (i = 0; i < n; i++) {
1249 _src.i = var36.x2[0];
1250 var39.x2[0] = _src.x2[1];
1251 var40.x2[0] = _src.x2[0];
1255 _src.i = var36.x2[1];
1256 var39.x2[1] = _src.x2[1];
1257 var40.x2[1] = _src.x2[0];
1262 _dest.x2[0] = var37.x2[0];
1263 _dest.x2[1] = var40.x2[0];
1264 var41.x2[0] = _dest.i;
1268 _dest.x2[0] = var37.x2[1];
1269 _dest.x2[1] = var40.x2[1];
1270 var41.x2[1] = _dest.i;
1275 _dest.x2[0] = var39.i;
1276 _dest.x2[1] = var39.i;
1282 _dest.x2[0] = var41.x2[0];
1283 _dest.x2[1] = var42.x2[0];
1284 var38.x2[0] = _dest.i;
1288 _dest.x2[0] = var41.x2[1];
1289 _dest.x2[1] = var42.x2[1];
1290 var38.x2[1] = _dest.i;
1300 _backup_cogorc_getline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
1304 orc_union64 *ORC_RESTRICT ptr0;
1305 const orc_union32 *ORC_RESTRICT ptr4;
1314 ptr0 = (orc_union64 *) ex->arrays[0];
1315 ptr4 = (orc_union32 *) ex->arrays[4];
1318 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1319 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1321 for (i = 0; i < n; i++) {
1327 _src.i = var36.x2[0];
1328 var39.x2[0] = _src.x2[1];
1329 var40.x2[0] = _src.x2[0];
1333 _src.i = var36.x2[1];
1334 var39.x2[1] = _src.x2[1];
1335 var40.x2[1] = _src.x2[0];
1340 _dest.x2[0] = var37.x2[0];
1341 _dest.x2[1] = var40.x2[0];
1342 var41.x2[0] = _dest.i;
1346 _dest.x2[0] = var37.x2[1];
1347 _dest.x2[1] = var40.x2[1];
1348 var41.x2[1] = _dest.i;
1353 _dest.x2[0] = var39.i;
1354 _dest.x2[1] = var39.i;
1360 _dest.x2[0] = var41.x2[0];
1361 _dest.x2[1] = var42.x2[0];
1362 var38.x2[0] = _dest.i;
1366 _dest.x2[0] = var41.x2[1];
1367 _dest.x2[1] = var42.x2[1];
1368 var38.x2[1] = _dest.i;
1377 cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1380 OrcExecutor _ex, *ex = &_ex;
1381 static volatile int p_inited = 0;
1382 static OrcProgram *p = 0;
1383 void (*func) (OrcExecutor *);
1386 orc_once_mutex_lock ();
1389 p = orc_program_new ();
1390 orc_program_set_name (p, "cogorc_getline_YUY2");
1391 orc_program_set_backup_function (p, _backup_cogorc_getline_YUY2);
1392 orc_program_add_destination (p, 8, "d1");
1393 orc_program_add_source (p, 4, "s1");
1394 orc_program_add_constant (p, 2, 0x000000ff, "c1");
1395 orc_program_add_temporary (p, 2, "t1");
1396 orc_program_add_temporary (p, 2, "t2");
1397 orc_program_add_temporary (p, 4, "t3");
1398 orc_program_add_temporary (p, 4, "t4");
1400 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
1402 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
1404 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
1406 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
1409 orc_program_compile (p);
1412 orc_once_mutex_unlock ();
1417 ex->arrays[ORC_VAR_D1] = d1;
1418 ex->arrays[ORC_VAR_S1] = (void *) s1;
1420 func = p->code_exec;
1426 /* cogorc_putline_YUY2 */
1429 cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1433 orc_union32 *ORC_RESTRICT ptr0;
1434 const orc_union64 *ORC_RESTRICT ptr4;
1444 ptr0 = (orc_union32 *) d1;
1445 ptr4 = (orc_union64 *) s1;
1448 for (i = 0; i < n; i++) {
1454 _src.i = var37.x2[0];
1455 var39.x2[0] = _src.x2[1];
1456 var40.x2[0] = _src.x2[0];
1460 _src.i = var37.x2[1];
1461 var39.x2[1] = _src.x2[1];
1462 var40.x2[1] = _src.x2[0];
1468 var41.i = _src.x2[1];
1469 var42.i = _src.x2[0];
1472 var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
1473 var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
1477 _src.i = var40.x2[0];
1478 var44.x2[0] = _src.x2[1];
1482 _src.i = var40.x2[1];
1483 var44.x2[1] = _src.x2[1];
1488 _dest.x2[0] = var44.x2[0];
1489 _dest.x2[1] = var43.x2[0];
1490 var38.x2[0] = _dest.i;
1494 _dest.x2[0] = var44.x2[1];
1495 _dest.x2[1] = var43.x2[1];
1496 var38.x2[1] = _dest.i;
1506 _backup_cogorc_putline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
1510 orc_union32 *ORC_RESTRICT ptr0;
1511 const orc_union64 *ORC_RESTRICT ptr4;
1521 ptr0 = (orc_union32 *) ex->arrays[0];
1522 ptr4 = (orc_union64 *) ex->arrays[4];
1525 for (i = 0; i < n; i++) {
1531 _src.i = var37.x2[0];
1532 var39.x2[0] = _src.x2[1];
1533 var40.x2[0] = _src.x2[0];
1537 _src.i = var37.x2[1];
1538 var39.x2[1] = _src.x2[1];
1539 var40.x2[1] = _src.x2[0];
1545 var41.i = _src.x2[1];
1546 var42.i = _src.x2[0];
1549 var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
1550 var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
1554 _src.i = var40.x2[0];
1555 var44.x2[0] = _src.x2[1];
1559 _src.i = var40.x2[1];
1560 var44.x2[1] = _src.x2[1];
1565 _dest.x2[0] = var44.x2[0];
1566 _dest.x2[1] = var43.x2[0];
1567 var38.x2[0] = _dest.i;
1571 _dest.x2[0] = var44.x2[1];
1572 _dest.x2[1] = var43.x2[1];
1573 var38.x2[1] = _dest.i;
1582 cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1585 OrcExecutor _ex, *ex = &_ex;
1586 static volatile int p_inited = 0;
1587 static OrcProgram *p = 0;
1588 void (*func) (OrcExecutor *);
1591 orc_once_mutex_lock ();
1594 p = orc_program_new ();
1595 orc_program_set_name (p, "cogorc_putline_YUY2");
1596 orc_program_set_backup_function (p, _backup_cogorc_putline_YUY2);
1597 orc_program_add_destination (p, 4, "d1");
1598 orc_program_add_source (p, 8, "s1");
1599 orc_program_add_temporary (p, 2, "t1");
1600 orc_program_add_temporary (p, 2, "t2");
1601 orc_program_add_temporary (p, 2, "t3");
1602 orc_program_add_temporary (p, 4, "t4");
1603 orc_program_add_temporary (p, 4, "t5");
1605 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
1607 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
1609 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
1611 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
1612 ORC_VAR_D1, ORC_VAR_D1);
1613 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
1616 orc_program_compile (p);
1619 orc_once_mutex_unlock ();
1624 ex->arrays[ORC_VAR_D1] = d1;
1625 ex->arrays[ORC_VAR_S1] = (void *) s1;
1627 func = p->code_exec;
1633 /* cogorc_putline_UYVY */
1636 cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1640 orc_union32 *ORC_RESTRICT ptr0;
1641 const orc_union64 *ORC_RESTRICT ptr4;
1651 ptr0 = (orc_union32 *) d1;
1652 ptr4 = (orc_union64 *) s1;
1655 for (i = 0; i < n; i++) {
1661 _src.i = var37.x2[0];
1662 var39.x2[0] = _src.x2[1];
1663 var40.x2[0] = _src.x2[0];
1667 _src.i = var37.x2[1];
1668 var39.x2[1] = _src.x2[1];
1669 var40.x2[1] = _src.x2[0];
1675 var41.i = _src.x2[1];
1676 var42.i = _src.x2[0];
1679 var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
1680 var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
1684 _src.i = var40.x2[0];
1685 var44.x2[0] = _src.x2[1];
1689 _src.i = var40.x2[1];
1690 var44.x2[1] = _src.x2[1];
1695 _dest.x2[0] = var43.x2[0];
1696 _dest.x2[1] = var44.x2[0];
1697 var38.x2[0] = _dest.i;
1701 _dest.x2[0] = var43.x2[1];
1702 _dest.x2[1] = var44.x2[1];
1703 var38.x2[1] = _dest.i;
1713 _backup_cogorc_putline_UYVY (OrcExecutor * ORC_RESTRICT ex)
1717 orc_union32 *ORC_RESTRICT ptr0;
1718 const orc_union64 *ORC_RESTRICT ptr4;
1728 ptr0 = (orc_union32 *) ex->arrays[0];
1729 ptr4 = (orc_union64 *) ex->arrays[4];
1732 for (i = 0; i < n; i++) {
1738 _src.i = var37.x2[0];
1739 var39.x2[0] = _src.x2[1];
1740 var40.x2[0] = _src.x2[0];
1744 _src.i = var37.x2[1];
1745 var39.x2[1] = _src.x2[1];
1746 var40.x2[1] = _src.x2[0];
1752 var41.i = _src.x2[1];
1753 var42.i = _src.x2[0];
1756 var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
1757 var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
1761 _src.i = var40.x2[0];
1762 var44.x2[0] = _src.x2[1];
1766 _src.i = var40.x2[1];
1767 var44.x2[1] = _src.x2[1];
1772 _dest.x2[0] = var43.x2[0];
1773 _dest.x2[1] = var44.x2[0];
1774 var38.x2[0] = _dest.i;
1778 _dest.x2[0] = var43.x2[1];
1779 _dest.x2[1] = var44.x2[1];
1780 var38.x2[1] = _dest.i;
1789 cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1792 OrcExecutor _ex, *ex = &_ex;
1793 static volatile int p_inited = 0;
1794 static OrcProgram *p = 0;
1795 void (*func) (OrcExecutor *);
1798 orc_once_mutex_lock ();
1801 p = orc_program_new ();
1802 orc_program_set_name (p, "cogorc_putline_UYVY");
1803 orc_program_set_backup_function (p, _backup_cogorc_putline_UYVY);
1804 orc_program_add_destination (p, 4, "d1");
1805 orc_program_add_source (p, 8, "s1");
1806 orc_program_add_temporary (p, 2, "t1");
1807 orc_program_add_temporary (p, 2, "t2");
1808 orc_program_add_temporary (p, 2, "t3");
1809 orc_program_add_temporary (p, 4, "t4");
1810 orc_program_add_temporary (p, 4, "t5");
1812 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
1814 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
1816 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
1818 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
1819 ORC_VAR_D1, ORC_VAR_D1);
1820 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
1823 orc_program_compile (p);
1826 orc_once_mutex_unlock ();
1831 ex->arrays[ORC_VAR_D1] = d1;
1832 ex->arrays[ORC_VAR_S1] = (void *) s1;
1834 func = p->code_exec;
1840 /* cogorc_getline_UYVY */
1843 cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
1847 orc_union64 *ORC_RESTRICT ptr0;
1848 const orc_union32 *ORC_RESTRICT ptr4;
1857 ptr0 = (orc_union64 *) d1;
1858 ptr4 = (orc_union32 *) s1;
1861 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1862 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1864 for (i = 0; i < n; i++) {
1870 _src.i = var36.x2[0];
1871 var39.x2[0] = _src.x2[1];
1872 var40.x2[0] = _src.x2[0];
1876 _src.i = var36.x2[1];
1877 var39.x2[1] = _src.x2[1];
1878 var40.x2[1] = _src.x2[0];
1883 _dest.x2[0] = var37.x2[0];
1884 _dest.x2[1] = var39.x2[0];
1885 var41.x2[0] = _dest.i;
1889 _dest.x2[0] = var37.x2[1];
1890 _dest.x2[1] = var39.x2[1];
1891 var41.x2[1] = _dest.i;
1896 _dest.x2[0] = var40.i;
1897 _dest.x2[1] = var40.i;
1903 _dest.x2[0] = var41.x2[0];
1904 _dest.x2[1] = var42.x2[0];
1905 var38.x2[0] = _dest.i;
1909 _dest.x2[0] = var41.x2[1];
1910 _dest.x2[1] = var42.x2[1];
1911 var38.x2[1] = _dest.i;
1921 _backup_cogorc_getline_UYVY (OrcExecutor * ORC_RESTRICT ex)
1925 orc_union64 *ORC_RESTRICT ptr0;
1926 const orc_union32 *ORC_RESTRICT ptr4;
1935 ptr0 = (orc_union64 *) ex->arrays[0];
1936 ptr4 = (orc_union32 *) ex->arrays[4];
1939 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1940 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
1942 for (i = 0; i < n; i++) {
1948 _src.i = var36.x2[0];
1949 var39.x2[0] = _src.x2[1];
1950 var40.x2[0] = _src.x2[0];
1954 _src.i = var36.x2[1];
1955 var39.x2[1] = _src.x2[1];
1956 var40.x2[1] = _src.x2[0];
1961 _dest.x2[0] = var37.x2[0];
1962 _dest.x2[1] = var39.x2[0];
1963 var41.x2[0] = _dest.i;
1967 _dest.x2[0] = var37.x2[1];
1968 _dest.x2[1] = var39.x2[1];
1969 var41.x2[1] = _dest.i;
1974 _dest.x2[0] = var40.i;
1975 _dest.x2[1] = var40.i;
1981 _dest.x2[0] = var41.x2[0];
1982 _dest.x2[1] = var42.x2[0];
1983 var38.x2[0] = _dest.i;
1987 _dest.x2[0] = var41.x2[1];
1988 _dest.x2[1] = var42.x2[1];
1989 var38.x2[1] = _dest.i;
1998 cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2001 OrcExecutor _ex, *ex = &_ex;
2002 static volatile int p_inited = 0;
2003 static OrcProgram *p = 0;
2004 void (*func) (OrcExecutor *);
2007 orc_once_mutex_lock ();
2010 p = orc_program_new ();
2011 orc_program_set_name (p, "cogorc_getline_UYVY");
2012 orc_program_set_backup_function (p, _backup_cogorc_getline_UYVY);
2013 orc_program_add_destination (p, 8, "d1");
2014 orc_program_add_source (p, 4, "s1");
2015 orc_program_add_constant (p, 2, 0x000000ff, "c1");
2016 orc_program_add_temporary (p, 2, "t1");
2017 orc_program_add_temporary (p, 2, "t2");
2018 orc_program_add_temporary (p, 4, "t3");
2019 orc_program_add_temporary (p, 4, "t4");
2021 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
2023 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
2025 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
2027 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
2030 orc_program_compile (p);
2033 orc_once_mutex_unlock ();
2038 ex->arrays[ORC_VAR_D1] = d1;
2039 ex->arrays[ORC_VAR_S1] = (void *) s1;
2041 func = p->code_exec;
2047 /* cogorc_getline_YUV9 */
2050 cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2051 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
2054 orc_union64 *ORC_RESTRICT ptr0;
2055 const orc_union16 *ORC_RESTRICT ptr4;
2056 const orc_int8 *ORC_RESTRICT ptr5;
2057 const orc_int8 *ORC_RESTRICT ptr6;
2067 ptr0 = (orc_union64 *) d1;
2068 ptr4 = (orc_union16 *) s1;
2069 ptr5 = (orc_int8 *) s2;
2070 ptr6 = (orc_int8 *) s3;
2073 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2074 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2076 for (i = 0; i < n; i++) {
2078 var40 = ptr5[i >> 1];
2080 var41 = ptr6[i >> 1];
2084 _dest.x2[0] = var40;
2085 _dest.x2[1] = var41;
2091 _dest.x2[0] = var42.i;
2092 _dest.x2[1] = var42.i;
2100 _dest.x2[0] = var37.x2[0];
2101 _dest.x2[1] = var38.x2[0];
2102 var44.x2[0] = _dest.i;
2106 _dest.x2[0] = var37.x2[1];
2107 _dest.x2[1] = var38.x2[1];
2108 var44.x2[1] = _dest.i;
2113 _dest.x2[0] = var44.x2[0];
2114 _dest.x2[1] = var43.x2[0];
2115 var39.x2[0] = _dest.i;
2119 _dest.x2[0] = var44.x2[1];
2120 _dest.x2[1] = var43.x2[1];
2121 var39.x2[1] = _dest.i;
2131 _backup_cogorc_getline_YUV9 (OrcExecutor * ORC_RESTRICT ex)
2135 orc_union64 *ORC_RESTRICT ptr0;
2136 const orc_union16 *ORC_RESTRICT ptr4;
2137 const orc_int8 *ORC_RESTRICT ptr5;
2138 const orc_int8 *ORC_RESTRICT ptr6;
2148 ptr0 = (orc_union64 *) ex->arrays[0];
2149 ptr4 = (orc_union16 *) ex->arrays[4];
2150 ptr5 = (orc_int8 *) ex->arrays[5];
2151 ptr6 = (orc_int8 *) ex->arrays[6];
2154 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2155 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2157 for (i = 0; i < n; i++) {
2159 var40 = ptr5[i >> 1];
2161 var41 = ptr6[i >> 1];
2165 _dest.x2[0] = var40;
2166 _dest.x2[1] = var41;
2172 _dest.x2[0] = var42.i;
2173 _dest.x2[1] = var42.i;
2181 _dest.x2[0] = var37.x2[0];
2182 _dest.x2[1] = var38.x2[0];
2183 var44.x2[0] = _dest.i;
2187 _dest.x2[0] = var37.x2[1];
2188 _dest.x2[1] = var38.x2[1];
2189 var44.x2[1] = _dest.i;
2194 _dest.x2[0] = var44.x2[0];
2195 _dest.x2[1] = var43.x2[0];
2196 var39.x2[0] = _dest.i;
2200 _dest.x2[0] = var44.x2[1];
2201 _dest.x2[1] = var43.x2[1];
2202 var39.x2[1] = _dest.i;
2211 cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2212 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
2214 OrcExecutor _ex, *ex = &_ex;
2215 static volatile int p_inited = 0;
2216 static OrcProgram *p = 0;
2217 void (*func) (OrcExecutor *);
2220 orc_once_mutex_lock ();
2223 p = orc_program_new ();
2224 orc_program_set_name (p, "cogorc_getline_YUV9");
2225 orc_program_set_backup_function (p, _backup_cogorc_getline_YUV9);
2226 orc_program_add_destination (p, 8, "d1");
2227 orc_program_add_source (p, 2, "s1");
2228 orc_program_add_source (p, 1, "s2");
2229 orc_program_add_source (p, 1, "s3");
2230 orc_program_add_constant (p, 1, 0x000000ff, "c1");
2231 orc_program_add_temporary (p, 2, "t1");
2232 orc_program_add_temporary (p, 4, "t2");
2233 orc_program_add_temporary (p, 4, "t3");
2234 orc_program_add_temporary (p, 1, "t4");
2235 orc_program_add_temporary (p, 1, "t5");
2237 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S2,
2238 ORC_VAR_D1, ORC_VAR_D1);
2239 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T5, ORC_VAR_S3,
2240 ORC_VAR_D1, ORC_VAR_D1);
2241 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T5,
2243 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
2245 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
2247 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
2250 orc_program_compile (p);
2253 orc_once_mutex_unlock ();
2258 ex->arrays[ORC_VAR_D1] = d1;
2259 ex->arrays[ORC_VAR_S1] = (void *) s1;
2260 ex->arrays[ORC_VAR_S2] = (void *) s2;
2261 ex->arrays[ORC_VAR_S3] = (void *) s3;
2263 func = p->code_exec;
2269 /* cogorc_getline_Y42B */
2272 cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2273 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
2276 orc_union64 *ORC_RESTRICT ptr0;
2277 const orc_union16 *ORC_RESTRICT ptr4;
2278 const orc_int8 *ORC_RESTRICT ptr5;
2279 const orc_int8 *ORC_RESTRICT ptr6;
2289 ptr0 = (orc_union64 *) d1;
2290 ptr4 = (orc_union16 *) s1;
2291 ptr5 = (orc_int8 *) s2;
2292 ptr6 = (orc_int8 *) s3;
2295 var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2296 var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2298 for (i = 0; i < n; i++) {
2306 _dest.x2[0] = var36;
2307 _dest.x2[1] = var37;
2315 _dest.x2[0] = var38.x2[0];
2316 _dest.x2[1] = var39.x2[0];
2317 var42.x2[0] = _dest.i;
2321 _dest.x2[0] = var38.x2[1];
2322 _dest.x2[1] = var39.x2[1];
2323 var42.x2[1] = _dest.i;
2328 _dest.x2[0] = var41.i;
2329 _dest.x2[1] = var41.i;
2335 _dest.x2[0] = var42.x2[0];
2336 _dest.x2[1] = var43.x2[0];
2337 var40.x2[0] = _dest.i;
2341 _dest.x2[0] = var42.x2[1];
2342 _dest.x2[1] = var43.x2[1];
2343 var40.x2[1] = _dest.i;
2353 _backup_cogorc_getline_Y42B (OrcExecutor * ORC_RESTRICT ex)
2357 orc_union64 *ORC_RESTRICT ptr0;
2358 const orc_union16 *ORC_RESTRICT ptr4;
2359 const orc_int8 *ORC_RESTRICT ptr5;
2360 const orc_int8 *ORC_RESTRICT ptr6;
2370 ptr0 = (orc_union64 *) ex->arrays[0];
2371 ptr4 = (orc_union16 *) ex->arrays[4];
2372 ptr5 = (orc_int8 *) ex->arrays[5];
2373 ptr6 = (orc_int8 *) ex->arrays[6];
2376 var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2377 var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2379 for (i = 0; i < n; i++) {
2387 _dest.x2[0] = var36;
2388 _dest.x2[1] = var37;
2396 _dest.x2[0] = var38.x2[0];
2397 _dest.x2[1] = var39.x2[0];
2398 var42.x2[0] = _dest.i;
2402 _dest.x2[0] = var38.x2[1];
2403 _dest.x2[1] = var39.x2[1];
2404 var42.x2[1] = _dest.i;
2409 _dest.x2[0] = var41.i;
2410 _dest.x2[1] = var41.i;
2416 _dest.x2[0] = var42.x2[0];
2417 _dest.x2[1] = var43.x2[0];
2418 var40.x2[0] = _dest.i;
2422 _dest.x2[0] = var42.x2[1];
2423 _dest.x2[1] = var43.x2[1];
2424 var40.x2[1] = _dest.i;
2433 cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2434 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
2436 OrcExecutor _ex, *ex = &_ex;
2437 static volatile int p_inited = 0;
2438 static OrcProgram *p = 0;
2439 void (*func) (OrcExecutor *);
2442 orc_once_mutex_lock ();
2445 p = orc_program_new ();
2446 orc_program_set_name (p, "cogorc_getline_Y42B");
2447 orc_program_set_backup_function (p, _backup_cogorc_getline_Y42B);
2448 orc_program_add_destination (p, 8, "d1");
2449 orc_program_add_source (p, 2, "s1");
2450 orc_program_add_source (p, 1, "s2");
2451 orc_program_add_source (p, 1, "s3");
2452 orc_program_add_constant (p, 1, 0x000000ff, "c1");
2453 orc_program_add_temporary (p, 2, "t1");
2454 orc_program_add_temporary (p, 2, "t2");
2455 orc_program_add_temporary (p, 4, "t3");
2456 orc_program_add_temporary (p, 4, "t4");
2458 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
2460 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
2462 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
2464 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
2467 orc_program_compile (p);
2470 orc_once_mutex_unlock ();
2475 ex->arrays[ORC_VAR_D1] = d1;
2476 ex->arrays[ORC_VAR_S1] = (void *) s1;
2477 ex->arrays[ORC_VAR_S2] = (void *) s2;
2478 ex->arrays[ORC_VAR_S3] = (void *) s3;
2480 func = p->code_exec;
2486 /* cogorc_putline_Y42B */
2489 cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
2490 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
2493 orc_union16 *ORC_RESTRICT ptr0;
2494 orc_int8 *ORC_RESTRICT ptr1;
2495 orc_int8 *ORC_RESTRICT ptr2;
2496 const orc_union64 *ORC_RESTRICT ptr4;
2507 ptr0 = (orc_union16 *) d1;
2508 ptr1 = (orc_int8 *) d2;
2509 ptr2 = (orc_int8 *) d3;
2510 ptr4 = (orc_union64 *) s1;
2513 for (i = 0; i < n; i++) {
2519 _src.i = var36.x2[0];
2520 var40.x2[0] = _src.x2[1];
2521 var41.x2[0] = _src.x2[0];
2525 _src.i = var36.x2[1];
2526 var40.x2[1] = _src.x2[1];
2527 var41.x2[1] = _src.x2[0];
2533 var42.i = _src.x2[1];
2534 var43.i = _src.x2[0];
2537 var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
2538 var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
2553 _src.i = var41.x2[0];
2554 var39.x2[0] = _src.x2[1];
2558 _src.i = var41.x2[1];
2559 var39.x2[1] = _src.x2[1];
2569 _backup_cogorc_putline_Y42B (OrcExecutor * ORC_RESTRICT ex)
2573 orc_union16 *ORC_RESTRICT ptr0;
2574 orc_int8 *ORC_RESTRICT ptr1;
2575 orc_int8 *ORC_RESTRICT ptr2;
2576 const orc_union64 *ORC_RESTRICT ptr4;
2587 ptr0 = (orc_union16 *) ex->arrays[0];
2588 ptr1 = (orc_int8 *) ex->arrays[1];
2589 ptr2 = (orc_int8 *) ex->arrays[2];
2590 ptr4 = (orc_union64 *) ex->arrays[4];
2593 for (i = 0; i < n; i++) {
2599 _src.i = var36.x2[0];
2600 var40.x2[0] = _src.x2[1];
2601 var41.x2[0] = _src.x2[0];
2605 _src.i = var36.x2[1];
2606 var40.x2[1] = _src.x2[1];
2607 var41.x2[1] = _src.x2[0];
2613 var42.i = _src.x2[1];
2614 var43.i = _src.x2[0];
2617 var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
2618 var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
2633 _src.i = var41.x2[0];
2634 var39.x2[0] = _src.x2[1];
2638 _src.i = var41.x2[1];
2639 var39.x2[1] = _src.x2[1];
2648 cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
2649 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
2651 OrcExecutor _ex, *ex = &_ex;
2652 static volatile int p_inited = 0;
2653 static OrcProgram *p = 0;
2654 void (*func) (OrcExecutor *);
2657 orc_once_mutex_lock ();
2660 p = orc_program_new ();
2661 orc_program_set_name (p, "cogorc_putline_Y42B");
2662 orc_program_set_backup_function (p, _backup_cogorc_putline_Y42B);
2663 orc_program_add_destination (p, 2, "d1");
2664 orc_program_add_destination (p, 1, "d2");
2665 orc_program_add_destination (p, 1, "d3");
2666 orc_program_add_source (p, 8, "s1");
2667 orc_program_add_temporary (p, 4, "t1");
2668 orc_program_add_temporary (p, 4, "t2");
2669 orc_program_add_temporary (p, 2, "t3");
2670 orc_program_add_temporary (p, 2, "t4");
2672 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
2674 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
2676 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
2678 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
2680 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
2681 ORC_VAR_D1, ORC_VAR_D1);
2683 orc_program_compile (p);
2686 orc_once_mutex_unlock ();
2691 ex->arrays[ORC_VAR_D1] = d1;
2692 ex->arrays[ORC_VAR_D2] = d2;
2693 ex->arrays[ORC_VAR_D3] = d3;
2694 ex->arrays[ORC_VAR_S1] = (void *) s1;
2696 func = p->code_exec;
2702 /* cogorc_getline_Y444 */
2705 cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2706 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
2709 orc_union32 *ORC_RESTRICT ptr0;
2710 const orc_int8 *ORC_RESTRICT ptr4;
2711 const orc_int8 *ORC_RESTRICT ptr5;
2712 const orc_int8 *ORC_RESTRICT ptr6;
2721 ptr0 = (orc_union32 *) d1;
2722 ptr4 = (orc_int8 *) s1;
2723 ptr5 = (orc_int8 *) s2;
2724 ptr6 = (orc_int8 *) s3;
2727 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2729 for (i = 0; i < n; i++) {
2737 _dest.x2[0] = var34;
2738 _dest.x2[1] = var35;
2746 _dest.x2[0] = var36;
2747 _dest.x2[1] = var37;
2753 _dest.x2[0] = var40.i;
2754 _dest.x2[1] = var39.i;
2765 _backup_cogorc_getline_Y444 (OrcExecutor * ORC_RESTRICT ex)
2769 orc_union32 *ORC_RESTRICT ptr0;
2770 const orc_int8 *ORC_RESTRICT ptr4;
2771 const orc_int8 *ORC_RESTRICT ptr5;
2772 const orc_int8 *ORC_RESTRICT ptr6;
2781 ptr0 = (orc_union32 *) ex->arrays[0];
2782 ptr4 = (orc_int8 *) ex->arrays[4];
2783 ptr5 = (orc_int8 *) ex->arrays[5];
2784 ptr6 = (orc_int8 *) ex->arrays[6];
2787 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
2789 for (i = 0; i < n; i++) {
2797 _dest.x2[0] = var34;
2798 _dest.x2[1] = var35;
2806 _dest.x2[0] = var36;
2807 _dest.x2[1] = var37;
2813 _dest.x2[0] = var40.i;
2814 _dest.x2[1] = var39.i;
2824 cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2825 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
2827 OrcExecutor _ex, *ex = &_ex;
2828 static volatile int p_inited = 0;
2829 static OrcProgram *p = 0;
2830 void (*func) (OrcExecutor *);
2833 orc_once_mutex_lock ();
2836 p = orc_program_new ();
2837 orc_program_set_name (p, "cogorc_getline_Y444");
2838 orc_program_set_backup_function (p, _backup_cogorc_getline_Y444);
2839 orc_program_add_destination (p, 4, "d1");
2840 orc_program_add_source (p, 1, "s1");
2841 orc_program_add_source (p, 1, "s2");
2842 orc_program_add_source (p, 1, "s3");
2843 orc_program_add_constant (p, 1, 0x000000ff, "c1");
2844 orc_program_add_temporary (p, 2, "t1");
2845 orc_program_add_temporary (p, 2, "t2");
2847 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
2849 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
2851 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
2854 orc_program_compile (p);
2857 orc_once_mutex_unlock ();
2862 ex->arrays[ORC_VAR_D1] = d1;
2863 ex->arrays[ORC_VAR_S1] = (void *) s1;
2864 ex->arrays[ORC_VAR_S2] = (void *) s2;
2865 ex->arrays[ORC_VAR_S3] = (void *) s3;
2867 func = p->code_exec;
2873 /* cogorc_putline_Y444 */
2876 cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
2877 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
2880 orc_int8 *ORC_RESTRICT ptr0;
2881 orc_int8 *ORC_RESTRICT ptr1;
2882 orc_int8 *ORC_RESTRICT ptr2;
2883 const orc_union32 *ORC_RESTRICT ptr4;
2891 ptr0 = (orc_int8 *) d1;
2892 ptr1 = (orc_int8 *) d2;
2893 ptr2 = (orc_int8 *) d3;
2894 ptr4 = (orc_union32 *) s1;
2897 for (i = 0; i < n; i++) {
2904 var38.i = _src.x2[1];
2905 var39.i = _src.x2[0];
2932 _backup_cogorc_putline_Y444 (OrcExecutor * ORC_RESTRICT ex)
2936 orc_int8 *ORC_RESTRICT ptr0;
2937 orc_int8 *ORC_RESTRICT ptr1;
2938 orc_int8 *ORC_RESTRICT ptr2;
2939 const orc_union32 *ORC_RESTRICT ptr4;
2947 ptr0 = (orc_int8 *) ex->arrays[0];
2948 ptr1 = (orc_int8 *) ex->arrays[1];
2949 ptr2 = (orc_int8 *) ex->arrays[2];
2950 ptr4 = (orc_union32 *) ex->arrays[4];
2953 for (i = 0; i < n; i++) {
2960 var38.i = _src.x2[1];
2961 var39.i = _src.x2[0];
2987 cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
2988 guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
2990 OrcExecutor _ex, *ex = &_ex;
2991 static volatile int p_inited = 0;
2992 static OrcProgram *p = 0;
2993 void (*func) (OrcExecutor *);
2996 orc_once_mutex_lock ();
2999 p = orc_program_new ();
3000 orc_program_set_name (p, "cogorc_putline_Y444");
3001 orc_program_set_backup_function (p, _backup_cogorc_putline_Y444);
3002 orc_program_add_destination (p, 1, "d1");
3003 orc_program_add_destination (p, 1, "d2");
3004 orc_program_add_destination (p, 1, "d3");
3005 orc_program_add_source (p, 4, "s1");
3006 orc_program_add_temporary (p, 2, "t1");
3007 orc_program_add_temporary (p, 2, "t2");
3009 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
3011 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
3013 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
3014 ORC_VAR_D1, ORC_VAR_D1);
3016 orc_program_compile (p);
3019 orc_once_mutex_unlock ();
3024 ex->arrays[ORC_VAR_D1] = d1;
3025 ex->arrays[ORC_VAR_D2] = d2;
3026 ex->arrays[ORC_VAR_D3] = d3;
3027 ex->arrays[ORC_VAR_S1] = (void *) s1;
3029 func = p->code_exec;
3035 /* cogorc_getline_Y800 */
3038 cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3042 orc_union32 *ORC_RESTRICT ptr0;
3043 const orc_int8 *ORC_RESTRICT ptr4;
3050 ptr0 = (orc_union32 *) d1;
3051 ptr4 = (orc_int8 *) s1;
3054 var33 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
3056 var35.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
3058 for (i = 0; i < n; i++) {
3064 _dest.x2[0] = var33;
3065 _dest.x2[1] = var34;
3071 _dest.x2[0] = var37.i;
3072 _dest.x2[1] = var35.i;
3083 _backup_cogorc_getline_Y800 (OrcExecutor * ORC_RESTRICT ex)
3087 orc_union32 *ORC_RESTRICT ptr0;
3088 const orc_int8 *ORC_RESTRICT ptr4;
3095 ptr0 = (orc_union32 *) ex->arrays[0];
3096 ptr4 = (orc_int8 *) ex->arrays[4];
3099 var33 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
3101 var35.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
3103 for (i = 0; i < n; i++) {
3109 _dest.x2[0] = var33;
3110 _dest.x2[1] = var34;
3116 _dest.x2[0] = var37.i;
3117 _dest.x2[1] = var35.i;
3127 cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3130 OrcExecutor _ex, *ex = &_ex;
3131 static volatile int p_inited = 0;
3132 static OrcProgram *p = 0;
3133 void (*func) (OrcExecutor *);
3136 orc_once_mutex_lock ();
3139 p = orc_program_new ();
3140 orc_program_set_name (p, "cogorc_getline_Y800");
3141 orc_program_set_backup_function (p, _backup_cogorc_getline_Y800);
3142 orc_program_add_destination (p, 4, "d1");
3143 orc_program_add_source (p, 1, "s1");
3144 orc_program_add_constant (p, 1, 0x000000ff, "c1");
3145 orc_program_add_constant (p, 2, 0x00008080, "c2");
3146 orc_program_add_temporary (p, 2, "t1");
3148 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
3150 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
3153 orc_program_compile (p);
3156 orc_once_mutex_unlock ();
3161 ex->arrays[ORC_VAR_D1] = d1;
3162 ex->arrays[ORC_VAR_S1] = (void *) s1;
3164 func = p->code_exec;
3170 /* cogorc_putline_Y800 */
3173 cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3177 orc_int8 *ORC_RESTRICT ptr0;
3178 const orc_union32 *ORC_RESTRICT ptr4;
3183 ptr0 = (orc_int8 *) d1;
3184 ptr4 = (orc_union32 *) s1;
3187 for (i = 0; i < n; i++) {
3194 var35.i = _src.x2[0];
3210 _backup_cogorc_putline_Y800 (OrcExecutor * ORC_RESTRICT ex)
3214 orc_int8 *ORC_RESTRICT ptr0;
3215 const orc_union32 *ORC_RESTRICT ptr4;
3220 ptr0 = (orc_int8 *) ex->arrays[0];
3221 ptr4 = (orc_union32 *) ex->arrays[4];
3224 for (i = 0; i < n; i++) {
3231 var35.i = _src.x2[0];
3246 cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3249 OrcExecutor _ex, *ex = &_ex;
3250 static volatile int p_inited = 0;
3251 static OrcProgram *p = 0;
3252 void (*func) (OrcExecutor *);
3255 orc_once_mutex_lock ();
3258 p = orc_program_new ();
3259 orc_program_set_name (p, "cogorc_putline_Y800");
3260 orc_program_set_backup_function (p, _backup_cogorc_putline_Y800);
3261 orc_program_add_destination (p, 1, "d1");
3262 orc_program_add_source (p, 4, "s1");
3263 orc_program_add_temporary (p, 2, "t1");
3265 orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
3266 ORC_VAR_D1, ORC_VAR_D1);
3267 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
3268 ORC_VAR_D1, ORC_VAR_D1);
3270 orc_program_compile (p);
3273 orc_once_mutex_unlock ();
3278 ex->arrays[ORC_VAR_D1] = d1;
3279 ex->arrays[ORC_VAR_S1] = (void *) s1;
3281 func = p->code_exec;
3287 /* cogorc_putline_Y16 */
3290 cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3294 orc_union16 *ORC_RESTRICT ptr0;
3295 const orc_union32 *ORC_RESTRICT ptr4;
3302 ptr0 = (orc_union16 *) d1;
3303 ptr4 = (orc_union32 *) s1;
3306 for (i = 0; i < n; i++) {
3313 var36.i = _src.x2[0];
3322 var38.i = (orc_uint8) var37;
3324 var35.i = var38.i << 8;
3333 _backup_cogorc_putline_Y16 (OrcExecutor * ORC_RESTRICT ex)
3337 orc_union16 *ORC_RESTRICT ptr0;
3338 const orc_union32 *ORC_RESTRICT ptr4;
3345 ptr0 = (orc_union16 *) ex->arrays[0];
3346 ptr4 = (orc_union32 *) ex->arrays[4];
3349 for (i = 0; i < n; i++) {
3356 var36.i = _src.x2[0];
3365 var38.i = (orc_uint8) var37;
3367 var35.i = var38.i << 8;
3375 cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3378 OrcExecutor _ex, *ex = &_ex;
3379 static volatile int p_inited = 0;
3380 static OrcProgram *p = 0;
3381 void (*func) (OrcExecutor *);
3384 orc_once_mutex_lock ();
3387 p = orc_program_new ();
3388 orc_program_set_name (p, "cogorc_putline_Y16");
3389 orc_program_set_backup_function (p, _backup_cogorc_putline_Y16);
3390 orc_program_add_destination (p, 2, "d1");
3391 orc_program_add_source (p, 4, "s1");
3392 orc_program_add_constant (p, 4, 0x00000008, "c1");
3393 orc_program_add_temporary (p, 2, "t1");
3394 orc_program_add_temporary (p, 1, "t2");
3396 orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
3397 ORC_VAR_D1, ORC_VAR_D1);
3398 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T1,
3399 ORC_VAR_D1, ORC_VAR_D1);
3400 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
3402 orc_program_append_2 (p, "shlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
3405 orc_program_compile (p);
3408 orc_once_mutex_unlock ();
3413 ex->arrays[ORC_VAR_D1] = d1;
3414 ex->arrays[ORC_VAR_S1] = (void *) s1;
3416 func = p->code_exec;
3422 /* cogorc_getline_Y16 */
3425 cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3429 orc_union32 *ORC_RESTRICT ptr0;
3430 const orc_union16 *ORC_RESTRICT ptr4;
3438 ptr0 = (orc_union32 *) d1;
3439 ptr4 = (orc_union16 *) s1;
3442 var35 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
3444 var36.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
3446 for (i = 0; i < n; i++) {
3450 var38 = ((orc_uint16) var34.i) >> 8;
3454 _dest.x2[0] = var35;
3455 _dest.x2[1] = var38;
3461 _dest.x2[0] = var39.i;
3462 _dest.x2[1] = var36.i;
3473 _backup_cogorc_getline_Y16 (OrcExecutor * ORC_RESTRICT ex)
3477 orc_union32 *ORC_RESTRICT ptr0;
3478 const orc_union16 *ORC_RESTRICT ptr4;
3486 ptr0 = (orc_union32 *) ex->arrays[0];
3487 ptr4 = (orc_union16 *) ex->arrays[4];
3490 var35 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
3492 var36.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
3494 for (i = 0; i < n; i++) {
3498 var38 = ((orc_uint16) var34.i) >> 8;
3502 _dest.x2[0] = var35;
3503 _dest.x2[1] = var38;
3509 _dest.x2[0] = var39.i;
3510 _dest.x2[1] = var36.i;
3520 cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3523 OrcExecutor _ex, *ex = &_ex;
3524 static volatile int p_inited = 0;
3525 static OrcProgram *p = 0;
3526 void (*func) (OrcExecutor *);
3529 orc_once_mutex_lock ();
3532 p = orc_program_new ();
3533 orc_program_set_name (p, "cogorc_getline_Y16");
3534 orc_program_set_backup_function (p, _backup_cogorc_getline_Y16);
3535 orc_program_add_destination (p, 4, "d1");
3536 orc_program_add_source (p, 2, "s1");
3537 orc_program_add_constant (p, 1, 0x000000ff, "c1");
3538 orc_program_add_constant (p, 2, 0x00008080, "c2");
3539 orc_program_add_temporary (p, 2, "t1");
3540 orc_program_add_temporary (p, 1, "t2");
3542 orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
3544 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T2,
3546 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
3549 orc_program_compile (p);
3552 orc_once_mutex_unlock ();
3557 ex->arrays[ORC_VAR_D1] = d1;
3558 ex->arrays[ORC_VAR_S1] = (void *) s1;
3560 func = p->code_exec;
3566 /* cogorc_getline_BGRA */
3569 cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3573 orc_union32 *ORC_RESTRICT ptr0;
3574 const orc_union32 *ORC_RESTRICT ptr4;
3578 ptr0 = (orc_union32 *) d1;
3579 ptr4 = (orc_union32 *) s1;
3582 for (i = 0; i < n; i++) {
3586 var33.i = ORC_SWAP_L (var32.i);
3595 _backup_cogorc_getline_BGRA (OrcExecutor * ORC_RESTRICT ex)
3599 orc_union32 *ORC_RESTRICT ptr0;
3600 const orc_union32 *ORC_RESTRICT ptr4;
3604 ptr0 = (orc_union32 *) ex->arrays[0];
3605 ptr4 = (orc_union32 *) ex->arrays[4];
3608 for (i = 0; i < n; i++) {
3612 var33.i = ORC_SWAP_L (var32.i);
3620 cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3623 OrcExecutor _ex, *ex = &_ex;
3624 static volatile int p_inited = 0;
3625 static OrcProgram *p = 0;
3626 void (*func) (OrcExecutor *);
3629 orc_once_mutex_lock ();
3632 p = orc_program_new ();
3633 orc_program_set_name (p, "cogorc_getline_BGRA");
3634 orc_program_set_backup_function (p, _backup_cogorc_getline_BGRA);
3635 orc_program_add_destination (p, 4, "d1");
3636 orc_program_add_source (p, 4, "s1");
3638 orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
3641 orc_program_compile (p);
3644 orc_once_mutex_unlock ();
3649 ex->arrays[ORC_VAR_D1] = d1;
3650 ex->arrays[ORC_VAR_S1] = (void *) s1;
3652 func = p->code_exec;
3658 /* cogorc_putline_BGRA */
3661 cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3665 orc_union32 *ORC_RESTRICT ptr0;
3666 const orc_union32 *ORC_RESTRICT ptr4;
3670 ptr0 = (orc_union32 *) d1;
3671 ptr4 = (orc_union32 *) s1;
3674 for (i = 0; i < n; i++) {
3678 var33.i = ORC_SWAP_L (var32.i);
3687 _backup_cogorc_putline_BGRA (OrcExecutor * ORC_RESTRICT ex)
3691 orc_union32 *ORC_RESTRICT ptr0;
3692 const orc_union32 *ORC_RESTRICT ptr4;
3696 ptr0 = (orc_union32 *) ex->arrays[0];
3697 ptr4 = (orc_union32 *) ex->arrays[4];
3700 for (i = 0; i < n; i++) {
3704 var33.i = ORC_SWAP_L (var32.i);
3712 cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3715 OrcExecutor _ex, *ex = &_ex;
3716 static volatile int p_inited = 0;
3717 static OrcProgram *p = 0;
3718 void (*func) (OrcExecutor *);
3721 orc_once_mutex_lock ();
3724 p = orc_program_new ();
3725 orc_program_set_name (p, "cogorc_putline_BGRA");
3726 orc_program_set_backup_function (p, _backup_cogorc_putline_BGRA);
3727 orc_program_add_destination (p, 4, "d1");
3728 orc_program_add_source (p, 4, "s1");
3730 orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
3733 orc_program_compile (p);
3736 orc_once_mutex_unlock ();
3741 ex->arrays[ORC_VAR_D1] = d1;
3742 ex->arrays[ORC_VAR_S1] = (void *) s1;
3744 func = p->code_exec;
3750 /* cogorc_putline_RGBA */
3753 cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3757 orc_union32 *ORC_RESTRICT ptr0;
3758 const orc_union32 *ORC_RESTRICT ptr4;
3770 ptr0 = (orc_union32 *) d1;
3771 ptr4 = (orc_union32 *) s1;
3774 for (i = 0; i < n; i++) {
3781 var42.i = _src.x2[1];
3782 var43.i = _src.x2[0];
3801 _dest.x2[0] = var44;
3802 _dest.x2[1] = var47;
3808 _dest.x2[0] = var46;
3809 _dest.x2[1] = var45;
3815 _dest.x2[0] = var49.i;
3816 _dest.x2[1] = var48.i;
3827 _backup_cogorc_putline_RGBA (OrcExecutor * ORC_RESTRICT ex)
3831 orc_union32 *ORC_RESTRICT ptr0;
3832 const orc_union32 *ORC_RESTRICT ptr4;
3844 ptr0 = (orc_union32 *) ex->arrays[0];
3845 ptr4 = (orc_union32 *) ex->arrays[4];
3848 for (i = 0; i < n; i++) {
3855 var42.i = _src.x2[1];
3856 var43.i = _src.x2[0];
3875 _dest.x2[0] = var44;
3876 _dest.x2[1] = var47;
3882 _dest.x2[0] = var46;
3883 _dest.x2[1] = var45;
3889 _dest.x2[0] = var49.i;
3890 _dest.x2[1] = var48.i;
3900 cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3903 OrcExecutor _ex, *ex = &_ex;
3904 static volatile int p_inited = 0;
3905 static OrcProgram *p = 0;
3906 void (*func) (OrcExecutor *);
3909 orc_once_mutex_lock ();
3912 p = orc_program_new ();
3913 orc_program_set_name (p, "cogorc_putline_RGBA");
3914 orc_program_set_backup_function (p, _backup_cogorc_putline_RGBA);
3915 orc_program_add_destination (p, 4, "d1");
3916 orc_program_add_source (p, 4, "s1");
3917 orc_program_add_temporary (p, 1, "t1");
3918 orc_program_add_temporary (p, 1, "t2");
3919 orc_program_add_temporary (p, 1, "t3");
3920 orc_program_add_temporary (p, 1, "t4");
3921 orc_program_add_temporary (p, 2, "t5");
3922 orc_program_add_temporary (p, 2, "t6");
3923 orc_program_add_temporary (p, 2, "t7");
3924 orc_program_add_temporary (p, 2, "t8");
3926 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
3928 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
3930 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
3932 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T1,
3934 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
3936 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
3939 orc_program_compile (p);
3942 orc_once_mutex_unlock ();
3947 ex->arrays[ORC_VAR_D1] = d1;
3948 ex->arrays[ORC_VAR_S1] = (void *) s1;
3950 func = p->code_exec;
3956 /* cogorc_getline_RGBA */
3959 cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3963 orc_union32 *ORC_RESTRICT ptr0;
3964 const orc_union32 *ORC_RESTRICT ptr4;
3976 ptr0 = (orc_union32 *) d1;
3977 ptr4 = (orc_union32 *) s1;
3980 for (i = 0; i < n; i++) {
3987 var42.i = _src.x2[1];
3988 var43.i = _src.x2[0];
4007 _dest.x2[0] = var46;
4008 _dest.x2[1] = var45;
4014 _dest.x2[0] = var44;
4015 _dest.x2[1] = var47;
4021 _dest.x2[0] = var48.i;
4022 _dest.x2[1] = var49.i;
4033 _backup_cogorc_getline_RGBA (OrcExecutor * ORC_RESTRICT ex)
4037 orc_union32 *ORC_RESTRICT ptr0;
4038 const orc_union32 *ORC_RESTRICT ptr4;
4050 ptr0 = (orc_union32 *) ex->arrays[0];
4051 ptr4 = (orc_union32 *) ex->arrays[4];
4054 for (i = 0; i < n; i++) {
4061 var42.i = _src.x2[1];
4062 var43.i = _src.x2[0];
4081 _dest.x2[0] = var46;
4082 _dest.x2[1] = var45;
4088 _dest.x2[0] = var44;
4089 _dest.x2[1] = var47;
4095 _dest.x2[0] = var48.i;
4096 _dest.x2[1] = var49.i;
4106 cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4109 OrcExecutor _ex, *ex = &_ex;
4110 static volatile int p_inited = 0;
4111 static OrcProgram *p = 0;
4112 void (*func) (OrcExecutor *);
4115 orc_once_mutex_lock ();
4118 p = orc_program_new ();
4119 orc_program_set_name (p, "cogorc_getline_RGBA");
4120 orc_program_set_backup_function (p, _backup_cogorc_getline_RGBA);
4121 orc_program_add_destination (p, 4, "d1");
4122 orc_program_add_source (p, 4, "s1");
4123 orc_program_add_temporary (p, 1, "t1");
4124 orc_program_add_temporary (p, 1, "t2");
4125 orc_program_add_temporary (p, 1, "t3");
4126 orc_program_add_temporary (p, 1, "t4");
4127 orc_program_add_temporary (p, 2, "t5");
4128 orc_program_add_temporary (p, 2, "t6");
4129 orc_program_add_temporary (p, 2, "t7");
4130 orc_program_add_temporary (p, 2, "t8");
4132 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_S1,
4134 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T5,
4136 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T6,
4138 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
4140 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
4142 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
4145 orc_program_compile (p);
4148 orc_once_mutex_unlock ();
4153 ex->arrays[ORC_VAR_D1] = d1;
4154 ex->arrays[ORC_VAR_S1] = (void *) s1;
4156 func = p->code_exec;
4162 /* cogorc_getline_ABGR */
4165 cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4169 orc_union32 *ORC_RESTRICT ptr0;
4170 const orc_union32 *ORC_RESTRICT ptr4;
4182 ptr0 = (orc_union32 *) d1;
4183 ptr4 = (orc_union32 *) s1;
4186 for (i = 0; i < n; i++) {
4193 var42.i = _src.x2[1];
4194 var43.i = _src.x2[0];
4213 _dest.x2[0] = var47;
4214 _dest.x2[1] = var44;
4220 _dest.x2[0] = var45;
4221 _dest.x2[1] = var46;
4227 _dest.x2[0] = var48.i;
4228 _dest.x2[1] = var49.i;
4239 _backup_cogorc_getline_ABGR (OrcExecutor * ORC_RESTRICT ex)
4243 orc_union32 *ORC_RESTRICT ptr0;
4244 const orc_union32 *ORC_RESTRICT ptr4;
4256 ptr0 = (orc_union32 *) ex->arrays[0];
4257 ptr4 = (orc_union32 *) ex->arrays[4];
4260 for (i = 0; i < n; i++) {
4267 var42.i = _src.x2[1];
4268 var43.i = _src.x2[0];
4287 _dest.x2[0] = var47;
4288 _dest.x2[1] = var44;
4294 _dest.x2[0] = var45;
4295 _dest.x2[1] = var46;
4301 _dest.x2[0] = var48.i;
4302 _dest.x2[1] = var49.i;
4312 cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4315 OrcExecutor _ex, *ex = &_ex;
4316 static volatile int p_inited = 0;
4317 static OrcProgram *p = 0;
4318 void (*func) (OrcExecutor *);
4321 orc_once_mutex_lock ();
4324 p = orc_program_new ();
4325 orc_program_set_name (p, "cogorc_getline_ABGR");
4326 orc_program_set_backup_function (p, _backup_cogorc_getline_ABGR);
4327 orc_program_add_destination (p, 4, "d1");
4328 orc_program_add_source (p, 4, "s1");
4329 orc_program_add_temporary (p, 1, "t1");
4330 orc_program_add_temporary (p, 1, "t2");
4331 orc_program_add_temporary (p, 1, "t3");
4332 orc_program_add_temporary (p, 1, "t4");
4333 orc_program_add_temporary (p, 2, "t5");
4334 orc_program_add_temporary (p, 2, "t6");
4335 orc_program_add_temporary (p, 2, "t7");
4336 orc_program_add_temporary (p, 2, "t8");
4338 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_S1,
4340 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
4342 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T6,
4344 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
4346 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
4348 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
4351 orc_program_compile (p);
4354 orc_once_mutex_unlock ();
4359 ex->arrays[ORC_VAR_D1] = d1;
4360 ex->arrays[ORC_VAR_S1] = (void *) s1;
4362 func = p->code_exec;
4368 /* cogorc_putline_ABGR */
4371 cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4375 orc_union32 *ORC_RESTRICT ptr0;
4376 const orc_union32 *ORC_RESTRICT ptr4;
4388 ptr0 = (orc_union32 *) d1;
4389 ptr4 = (orc_union32 *) s1;
4392 for (i = 0; i < n; i++) {
4399 var42.i = _src.x2[1];
4400 var43.i = _src.x2[0];
4419 _dest.x2[0] = var47;
4420 _dest.x2[1] = var44;
4426 _dest.x2[0] = var45;
4427 _dest.x2[1] = var46;
4433 _dest.x2[0] = var48.i;
4434 _dest.x2[1] = var49.i;
4445 _backup_cogorc_putline_ABGR (OrcExecutor * ORC_RESTRICT ex)
4449 orc_union32 *ORC_RESTRICT ptr0;
4450 const orc_union32 *ORC_RESTRICT ptr4;
4462 ptr0 = (orc_union32 *) ex->arrays[0];
4463 ptr4 = (orc_union32 *) ex->arrays[4];
4466 for (i = 0; i < n; i++) {
4473 var42.i = _src.x2[1];
4474 var43.i = _src.x2[0];
4493 _dest.x2[0] = var47;
4494 _dest.x2[1] = var44;
4500 _dest.x2[0] = var45;
4501 _dest.x2[1] = var46;
4507 _dest.x2[0] = var48.i;
4508 _dest.x2[1] = var49.i;
4518 cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4521 OrcExecutor _ex, *ex = &_ex;
4522 static volatile int p_inited = 0;
4523 static OrcProgram *p = 0;
4524 void (*func) (OrcExecutor *);
4527 orc_once_mutex_lock ();
4530 p = orc_program_new ();
4531 orc_program_set_name (p, "cogorc_putline_ABGR");
4532 orc_program_set_backup_function (p, _backup_cogorc_putline_ABGR);
4533 orc_program_add_destination (p, 4, "d1");
4534 orc_program_add_source (p, 4, "s1");
4535 orc_program_add_temporary (p, 1, "t1");
4536 orc_program_add_temporary (p, 1, "t2");
4537 orc_program_add_temporary (p, 1, "t3");
4538 orc_program_add_temporary (p, 1, "t4");
4539 orc_program_add_temporary (p, 2, "t5");
4540 orc_program_add_temporary (p, 2, "t6");
4541 orc_program_add_temporary (p, 2, "t7");
4542 orc_program_add_temporary (p, 2, "t8");
4544 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
4546 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
4548 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
4550 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T4,
4552 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T2,
4554 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
4557 orc_program_compile (p);
4560 orc_once_mutex_unlock ();
4565 ex->arrays[ORC_VAR_D1] = d1;
4566 ex->arrays[ORC_VAR_S1] = (void *) s1;
4568 func = p->code_exec;
4574 /* cogorc_getline_NV12 */
4577 cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4578 const guint8 * ORC_RESTRICT s2, int n)
4581 orc_union64 *ORC_RESTRICT ptr0;
4582 const orc_union16 *ORC_RESTRICT ptr4;
4583 const orc_union16 *ORC_RESTRICT ptr5;
4592 ptr0 = (orc_union64 *) d1;
4593 ptr4 = (orc_union16 *) s1;
4594 ptr5 = (orc_union16 *) s2;
4597 var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
4598 var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
4600 for (i = 0; i < n; i++) {
4608 _dest.x2[0] = var34.i;
4609 _dest.x2[1] = var35.i;
4617 _dest.x2[0] = var36.x2[0];
4618 _dest.x2[1] = var37.x2[0];
4619 var40.x2[0] = _dest.i;
4623 _dest.x2[0] = var36.x2[1];
4624 _dest.x2[1] = var37.x2[1];
4625 var40.x2[1] = _dest.i;
4630 _dest.x2[0] = var40.x2[0];
4631 _dest.x2[1] = var39.x2[0];
4632 var38.x2[0] = _dest.i;
4636 _dest.x2[0] = var40.x2[1];
4637 _dest.x2[1] = var39.x2[1];
4638 var38.x2[1] = _dest.i;
4648 _backup_cogorc_getline_NV12 (OrcExecutor * ORC_RESTRICT ex)
4652 orc_union64 *ORC_RESTRICT ptr0;
4653 const orc_union16 *ORC_RESTRICT ptr4;
4654 const orc_union16 *ORC_RESTRICT ptr5;
4663 ptr0 = (orc_union64 *) ex->arrays[0];
4664 ptr4 = (orc_union16 *) ex->arrays[4];
4665 ptr5 = (orc_union16 *) ex->arrays[5];
4668 var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
4669 var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
4671 for (i = 0; i < n; i++) {
4679 _dest.x2[0] = var34.i;
4680 _dest.x2[1] = var35.i;
4688 _dest.x2[0] = var36.x2[0];
4689 _dest.x2[1] = var37.x2[0];
4690 var40.x2[0] = _dest.i;
4694 _dest.x2[0] = var36.x2[1];
4695 _dest.x2[1] = var37.x2[1];
4696 var40.x2[1] = _dest.i;
4701 _dest.x2[0] = var40.x2[0];
4702 _dest.x2[1] = var39.x2[0];
4703 var38.x2[0] = _dest.i;
4707 _dest.x2[0] = var40.x2[1];
4708 _dest.x2[1] = var39.x2[1];
4709 var38.x2[1] = _dest.i;
4718 cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4719 const guint8 * ORC_RESTRICT s2, int n)
4721 OrcExecutor _ex, *ex = &_ex;
4722 static volatile int p_inited = 0;
4723 static OrcProgram *p = 0;
4724 void (*func) (OrcExecutor *);
4727 orc_once_mutex_lock ();
4730 p = orc_program_new ();
4731 orc_program_set_name (p, "cogorc_getline_NV12");
4732 orc_program_set_backup_function (p, _backup_cogorc_getline_NV12);
4733 orc_program_add_destination (p, 8, "d1");
4734 orc_program_add_source (p, 2, "s1");
4735 orc_program_add_source (p, 2, "s2");
4736 orc_program_add_constant (p, 1, 0x000000ff, "c1");
4737 orc_program_add_temporary (p, 4, "t1");
4738 orc_program_add_temporary (p, 4, "t2");
4740 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S2,
4742 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
4744 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
4747 orc_program_compile (p);
4750 orc_once_mutex_unlock ();
4755 ex->arrays[ORC_VAR_D1] = d1;
4756 ex->arrays[ORC_VAR_S1] = (void *) s1;
4757 ex->arrays[ORC_VAR_S2] = (void *) s2;
4759 func = p->code_exec;
4765 /* cogorc_putline_NV12 */
4768 cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
4769 const guint8 * ORC_RESTRICT s1, int n)
4772 orc_union16 *ORC_RESTRICT ptr0;
4773 orc_union16 *ORC_RESTRICT ptr1;
4774 const orc_union64 *ORC_RESTRICT ptr4;
4783 ptr0 = (orc_union16 *) d1;
4784 ptr1 = (orc_union16 *) d2;
4785 ptr4 = (orc_union64 *) s1;
4788 for (i = 0; i < n; i++) {
4794 _src.i = var36.x2[0];
4795 var39.x2[0] = _src.x2[1];
4796 var40.x2[0] = _src.x2[0];
4800 _src.i = var36.x2[1];
4801 var39.x2[1] = _src.x2[1];
4802 var40.x2[1] = _src.x2[0];
4807 _src.i = var40.x2[0];
4808 var37.x2[0] = _src.x2[1];
4812 _src.i = var40.x2[1];
4813 var37.x2[1] = _src.x2[1];
4821 var41.i = _src.x2[1];
4822 var42.i = _src.x2[0];
4825 var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
4826 var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
4835 _backup_cogorc_putline_NV12 (OrcExecutor * ORC_RESTRICT ex)
4839 orc_union16 *ORC_RESTRICT ptr0;
4840 orc_union16 *ORC_RESTRICT ptr1;
4841 const orc_union64 *ORC_RESTRICT ptr4;
4850 ptr0 = (orc_union16 *) ex->arrays[0];
4851 ptr1 = (orc_union16 *) ex->arrays[1];
4852 ptr4 = (orc_union64 *) ex->arrays[4];
4855 for (i = 0; i < n; i++) {
4861 _src.i = var36.x2[0];
4862 var39.x2[0] = _src.x2[1];
4863 var40.x2[0] = _src.x2[0];
4867 _src.i = var36.x2[1];
4868 var39.x2[1] = _src.x2[1];
4869 var40.x2[1] = _src.x2[0];
4874 _src.i = var40.x2[0];
4875 var37.x2[0] = _src.x2[1];
4879 _src.i = var40.x2[1];
4880 var37.x2[1] = _src.x2[1];
4888 var41.i = _src.x2[1];
4889 var42.i = _src.x2[0];
4892 var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
4893 var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
4901 cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
4902 const guint8 * ORC_RESTRICT s1, int n)
4904 OrcExecutor _ex, *ex = &_ex;
4905 static volatile int p_inited = 0;
4906 static OrcProgram *p = 0;
4907 void (*func) (OrcExecutor *);
4910 orc_once_mutex_lock ();
4913 p = orc_program_new ();
4914 orc_program_set_name (p, "cogorc_putline_NV12");
4915 orc_program_set_backup_function (p, _backup_cogorc_putline_NV12);
4916 orc_program_add_destination (p, 2, "d1");
4917 orc_program_add_destination (p, 2, "d2");
4918 orc_program_add_source (p, 8, "s1");
4919 orc_program_add_temporary (p, 4, "t1");
4920 orc_program_add_temporary (p, 4, "t2");
4921 orc_program_add_temporary (p, 2, "t3");
4922 orc_program_add_temporary (p, 2, "t4");
4924 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
4926 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
4927 ORC_VAR_D1, ORC_VAR_D1);
4928 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
4930 orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
4933 orc_program_compile (p);
4936 orc_once_mutex_unlock ();
4941 ex->arrays[ORC_VAR_D1] = d1;
4942 ex->arrays[ORC_VAR_D2] = d2;
4943 ex->arrays[ORC_VAR_S1] = (void *) s1;
4945 func = p->code_exec;
4951 /* cogorc_getline_NV21 */
4954 cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4955 const guint8 * ORC_RESTRICT s2, int n)
4958 orc_union64 *ORC_RESTRICT ptr0;
4959 const orc_union16 *ORC_RESTRICT ptr4;
4960 const orc_union16 *ORC_RESTRICT ptr5;
4969 ptr0 = (orc_union64 *) d1;
4970 ptr4 = (orc_union16 *) s1;
4971 ptr5 = (orc_union16 *) s2;
4974 var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
4975 var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
4977 for (i = 0; i < n; i++) {
4981 var39.i = ORC_SWAP_W (var35.i);
4985 _dest.x2[0] = var39.i;
4986 _dest.x2[1] = var39.i;
4994 _dest.x2[0] = var36.x2[0];
4995 _dest.x2[1] = var37.x2[0];
4996 var41.x2[0] = _dest.i;
5000 _dest.x2[0] = var36.x2[1];
5001 _dest.x2[1] = var37.x2[1];
5002 var41.x2[1] = _dest.i;
5007 _dest.x2[0] = var41.x2[0];
5008 _dest.x2[1] = var40.x2[0];
5009 var38.x2[0] = _dest.i;
5013 _dest.x2[0] = var41.x2[1];
5014 _dest.x2[1] = var40.x2[1];
5015 var38.x2[1] = _dest.i;
5025 _backup_cogorc_getline_NV21 (OrcExecutor * ORC_RESTRICT ex)
5029 orc_union64 *ORC_RESTRICT ptr0;
5030 const orc_union16 *ORC_RESTRICT ptr4;
5031 const orc_union16 *ORC_RESTRICT ptr5;
5040 ptr0 = (orc_union64 *) ex->arrays[0];
5041 ptr4 = (orc_union16 *) ex->arrays[4];
5042 ptr5 = (orc_union16 *) ex->arrays[5];
5045 var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
5046 var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
5048 for (i = 0; i < n; i++) {
5052 var39.i = ORC_SWAP_W (var35.i);
5056 _dest.x2[0] = var39.i;
5057 _dest.x2[1] = var39.i;
5065 _dest.x2[0] = var36.x2[0];
5066 _dest.x2[1] = var37.x2[0];
5067 var41.x2[0] = _dest.i;
5071 _dest.x2[0] = var36.x2[1];
5072 _dest.x2[1] = var37.x2[1];
5073 var41.x2[1] = _dest.i;
5078 _dest.x2[0] = var41.x2[0];
5079 _dest.x2[1] = var40.x2[0];
5080 var38.x2[0] = _dest.i;
5084 _dest.x2[0] = var41.x2[1];
5085 _dest.x2[1] = var40.x2[1];
5086 var38.x2[1] = _dest.i;
5095 cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
5096 const guint8 * ORC_RESTRICT s2, int n)
5098 OrcExecutor _ex, *ex = &_ex;
5099 static volatile int p_inited = 0;
5100 static OrcProgram *p = 0;
5101 void (*func) (OrcExecutor *);
5104 orc_once_mutex_lock ();
5107 p = orc_program_new ();
5108 orc_program_set_name (p, "cogorc_getline_NV21");
5109 orc_program_set_backup_function (p, _backup_cogorc_getline_NV21);
5110 orc_program_add_destination (p, 8, "d1");
5111 orc_program_add_source (p, 2, "s1");
5112 orc_program_add_source (p, 2, "s2");
5113 orc_program_add_constant (p, 1, 0x000000ff, "c1");
5114 orc_program_add_temporary (p, 2, "t1");
5115 orc_program_add_temporary (p, 4, "t2");
5116 orc_program_add_temporary (p, 4, "t3");
5118 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_D1,
5120 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
5122 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
5124 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
5127 orc_program_compile (p);
5130 orc_once_mutex_unlock ();
5135 ex->arrays[ORC_VAR_D1] = d1;
5136 ex->arrays[ORC_VAR_S1] = (void *) s1;
5137 ex->arrays[ORC_VAR_S2] = (void *) s2;
5139 func = p->code_exec;
5145 /* cogorc_putline_NV21 */
5148 cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
5149 const guint8 * ORC_RESTRICT s1, int n)
5152 orc_union16 *ORC_RESTRICT ptr0;
5153 orc_union16 *ORC_RESTRICT ptr1;
5154 const orc_union64 *ORC_RESTRICT ptr4;
5164 ptr0 = (orc_union16 *) d1;
5165 ptr1 = (orc_union16 *) d2;
5166 ptr4 = (orc_union64 *) s1;
5169 for (i = 0; i < n; i++) {
5175 _src.i = var37.x2[0];
5176 var40.x2[0] = _src.x2[1];
5177 var41.x2[0] = _src.x2[0];
5181 _src.i = var37.x2[1];
5182 var40.x2[1] = _src.x2[1];
5183 var41.x2[1] = _src.x2[0];
5188 _src.i = var41.x2[0];
5189 var38.x2[0] = _src.x2[1];
5193 _src.i = var41.x2[1];
5194 var38.x2[1] = _src.x2[1];
5202 var42.i = _src.x2[1];
5203 var43.i = _src.x2[0];
5206 var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
5207 var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
5209 var39.i = ORC_SWAP_W (var44.i);
5218 _backup_cogorc_putline_NV21 (OrcExecutor * ORC_RESTRICT ex)
5222 orc_union16 *ORC_RESTRICT ptr0;
5223 orc_union16 *ORC_RESTRICT ptr1;
5224 const orc_union64 *ORC_RESTRICT ptr4;
5234 ptr0 = (orc_union16 *) ex->arrays[0];
5235 ptr1 = (orc_union16 *) ex->arrays[1];
5236 ptr4 = (orc_union64 *) ex->arrays[4];
5239 for (i = 0; i < n; i++) {
5245 _src.i = var37.x2[0];
5246 var40.x2[0] = _src.x2[1];
5247 var41.x2[0] = _src.x2[0];
5251 _src.i = var37.x2[1];
5252 var40.x2[1] = _src.x2[1];
5253 var41.x2[1] = _src.x2[0];
5258 _src.i = var41.x2[0];
5259 var38.x2[0] = _src.x2[1];
5263 _src.i = var41.x2[1];
5264 var38.x2[1] = _src.x2[1];
5272 var42.i = _src.x2[1];
5273 var43.i = _src.x2[0];
5276 var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
5277 var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
5279 var39.i = ORC_SWAP_W (var44.i);
5287 cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
5288 const guint8 * ORC_RESTRICT s1, int n)
5290 OrcExecutor _ex, *ex = &_ex;
5291 static volatile int p_inited = 0;
5292 static OrcProgram *p = 0;
5293 void (*func) (OrcExecutor *);
5296 orc_once_mutex_lock ();
5299 p = orc_program_new ();
5300 orc_program_set_name (p, "cogorc_putline_NV21");
5301 orc_program_set_backup_function (p, _backup_cogorc_putline_NV21);
5302 orc_program_add_destination (p, 2, "d1");
5303 orc_program_add_destination (p, 2, "d2");
5304 orc_program_add_source (p, 8, "s1");
5305 orc_program_add_temporary (p, 4, "t1");
5306 orc_program_add_temporary (p, 4, "t2");
5307 orc_program_add_temporary (p, 2, "t3");
5308 orc_program_add_temporary (p, 2, "t4");
5309 orc_program_add_temporary (p, 2, "t5");
5311 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
5313 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
5314 ORC_VAR_D1, ORC_VAR_D1);
5315 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
5317 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
5319 orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
5322 orc_program_compile (p);
5325 orc_once_mutex_unlock ();
5330 ex->arrays[ORC_VAR_D1] = d1;
5331 ex->arrays[ORC_VAR_D2] = d2;
5332 ex->arrays[ORC_VAR_S1] = (void *) s1;
5334 func = p->code_exec;
5340 /* cogorc_getline_A420 */
5343 cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
5344 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
5345 const guint8 * ORC_RESTRICT s4, int n)
5348 orc_union32 *ORC_RESTRICT ptr0;
5349 const orc_int8 *ORC_RESTRICT ptr4;
5350 const orc_int8 *ORC_RESTRICT ptr5;
5351 const orc_int8 *ORC_RESTRICT ptr6;
5352 const orc_int8 *ORC_RESTRICT ptr7;
5361 ptr0 = (orc_union32 *) d1;
5362 ptr4 = (orc_int8 *) s1;
5363 ptr5 = (orc_int8 *) s2;
5364 ptr6 = (orc_int8 *) s3;
5365 ptr7 = (orc_int8 *) s4;
5368 for (i = 0; i < n; i++) {
5370 var39 = ptr5[i >> 1];
5372 var40 = ptr6[i >> 1];
5376 _dest.x2[0] = var39;
5377 _dest.x2[1] = var40;
5387 _dest.x2[0] = var36;
5388 _dest.x2[1] = var37;
5394 _dest.x2[0] = var42.i;
5395 _dest.x2[1] = var41.i;
5406 _backup_cogorc_getline_A420 (OrcExecutor * ORC_RESTRICT ex)
5410 orc_union32 *ORC_RESTRICT ptr0;
5411 const orc_int8 *ORC_RESTRICT ptr4;
5412 const orc_int8 *ORC_RESTRICT ptr5;
5413 const orc_int8 *ORC_RESTRICT ptr6;
5414 const orc_int8 *ORC_RESTRICT ptr7;
5423 ptr0 = (orc_union32 *) ex->arrays[0];
5424 ptr4 = (orc_int8 *) ex->arrays[4];
5425 ptr5 = (orc_int8 *) ex->arrays[5];
5426 ptr6 = (orc_int8 *) ex->arrays[6];
5427 ptr7 = (orc_int8 *) ex->arrays[7];
5430 for (i = 0; i < n; i++) {
5432 var39 = ptr5[i >> 1];
5434 var40 = ptr6[i >> 1];
5438 _dest.x2[0] = var39;
5439 _dest.x2[1] = var40;
5449 _dest.x2[0] = var36;
5450 _dest.x2[1] = var37;
5456 _dest.x2[0] = var42.i;
5457 _dest.x2[1] = var41.i;
5467 cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
5468 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
5469 const guint8 * ORC_RESTRICT s4, int n)
5471 OrcExecutor _ex, *ex = &_ex;
5472 static volatile int p_inited = 0;
5473 static OrcProgram *p = 0;
5474 void (*func) (OrcExecutor *);
5477 orc_once_mutex_lock ();
5480 p = orc_program_new ();
5481 orc_program_set_name (p, "cogorc_getline_A420");
5482 orc_program_set_backup_function (p, _backup_cogorc_getline_A420);
5483 orc_program_add_destination (p, 4, "d1");
5484 orc_program_add_source (p, 1, "s1");
5485 orc_program_add_source (p, 1, "s2");
5486 orc_program_add_source (p, 1, "s3");
5487 orc_program_add_source (p, 1, "s4");
5488 orc_program_add_temporary (p, 2, "t1");
5489 orc_program_add_temporary (p, 2, "t2");
5490 orc_program_add_temporary (p, 1, "t3");
5491 orc_program_add_temporary (p, 1, "t4");
5493 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
5494 ORC_VAR_D1, ORC_VAR_D1);
5495 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
5496 ORC_VAR_D1, ORC_VAR_D1);
5497 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
5499 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_S1,
5501 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
5504 orc_program_compile (p);
5507 orc_once_mutex_unlock ();
5512 ex->arrays[ORC_VAR_D1] = d1;
5513 ex->arrays[ORC_VAR_S1] = (void *) s1;
5514 ex->arrays[ORC_VAR_S2] = (void *) s2;
5515 ex->arrays[ORC_VAR_S3] = (void *) s3;
5516 ex->arrays[ORC_VAR_S4] = (void *) s4;
5518 func = p->code_exec;
5524 /* cogorc_putline_A420 */
5527 cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
5528 guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
5529 const guint8 * ORC_RESTRICT s1, int n)
5532 orc_union16 *ORC_RESTRICT ptr0;
5533 orc_int8 *ORC_RESTRICT ptr1;
5534 orc_int8 *ORC_RESTRICT ptr2;
5535 orc_union16 *ORC_RESTRICT ptr3;
5536 const orc_union64 *ORC_RESTRICT ptr4;
5551 ptr0 = (orc_union16 *) d1;
5552 ptr1 = (orc_int8 *) d2;
5553 ptr2 = (orc_int8 *) d3;
5554 ptr3 = (orc_union16 *) d4;
5555 ptr4 = (orc_union64 *) s1;
5558 for (i = 0; i < n; i++) {
5564 _src.i = var38.x2[0];
5565 var43.x2[0] = _src.x2[1];
5566 var44.x2[0] = _src.x2[0];
5570 _src.i = var38.x2[1];
5571 var43.x2[1] = _src.x2[1];
5572 var44.x2[1] = _src.x2[0];
5577 _src.i = var44.x2[0];
5578 var39.x2[0] = _src.x2[1];
5582 _src.i = var44.x2[1];
5583 var39.x2[1] = _src.x2[1];
5590 _src.i = var44.x2[0];
5591 var40.x2[0] = _src.x2[0];
5595 _src.i = var44.x2[1];
5596 var40.x2[1] = _src.x2[0];
5603 _src.i = var43.x2[0];
5604 var45.x2[0] = _src.x2[1];
5605 var46.x2[0] = _src.x2[0];
5609 _src.i = var43.x2[1];
5610 var45.x2[1] = _src.x2[1];
5611 var46.x2[1] = _src.x2[0];
5621 var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
5632 var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
5641 _backup_cogorc_putline_A420 (OrcExecutor * ORC_RESTRICT ex)
5645 orc_union16 *ORC_RESTRICT ptr0;
5646 orc_int8 *ORC_RESTRICT ptr1;
5647 orc_int8 *ORC_RESTRICT ptr2;
5648 orc_union16 *ORC_RESTRICT ptr3;
5649 const orc_union64 *ORC_RESTRICT ptr4;
5664 ptr0 = (orc_union16 *) ex->arrays[0];
5665 ptr1 = (orc_int8 *) ex->arrays[1];
5666 ptr2 = (orc_int8 *) ex->arrays[2];
5667 ptr3 = (orc_union16 *) ex->arrays[3];
5668 ptr4 = (orc_union64 *) ex->arrays[4];
5671 for (i = 0; i < n; i++) {
5677 _src.i = var38.x2[0];
5678 var43.x2[0] = _src.x2[1];
5679 var44.x2[0] = _src.x2[0];
5683 _src.i = var38.x2[1];
5684 var43.x2[1] = _src.x2[1];
5685 var44.x2[1] = _src.x2[0];
5690 _src.i = var44.x2[0];
5691 var39.x2[0] = _src.x2[1];
5695 _src.i = var44.x2[1];
5696 var39.x2[1] = _src.x2[1];
5703 _src.i = var44.x2[0];
5704 var40.x2[0] = _src.x2[0];
5708 _src.i = var44.x2[1];
5709 var40.x2[1] = _src.x2[0];
5716 _src.i = var43.x2[0];
5717 var45.x2[0] = _src.x2[1];
5718 var46.x2[0] = _src.x2[0];
5722 _src.i = var43.x2[1];
5723 var45.x2[1] = _src.x2[1];
5724 var46.x2[1] = _src.x2[0];
5734 var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
5745 var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
5753 cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
5754 guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
5755 const guint8 * ORC_RESTRICT s1, int n)
5757 OrcExecutor _ex, *ex = &_ex;
5758 static volatile int p_inited = 0;
5759 static OrcProgram *p = 0;
5760 void (*func) (OrcExecutor *);
5763 orc_once_mutex_lock ();
5766 p = orc_program_new ();
5767 orc_program_set_name (p, "cogorc_putline_A420");
5768 orc_program_set_backup_function (p, _backup_cogorc_putline_A420);
5769 orc_program_add_destination (p, 2, "d1");
5770 orc_program_add_destination (p, 1, "d2");
5771 orc_program_add_destination (p, 1, "d3");
5772 orc_program_add_destination (p, 2, "d4");
5773 orc_program_add_source (p, 8, "s1");
5774 orc_program_add_temporary (p, 4, "t1");
5775 orc_program_add_temporary (p, 4, "t2");
5776 orc_program_add_temporary (p, 2, "t3");
5777 orc_program_add_temporary (p, 2, "t4");
5778 orc_program_add_temporary (p, 1, "t5");
5779 orc_program_add_temporary (p, 1, "t6");
5781 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
5783 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
5784 ORC_VAR_D1, ORC_VAR_D1);
5785 orc_program_append_2 (p, "select0wb", 1, ORC_VAR_D4, ORC_VAR_T1,
5786 ORC_VAR_D1, ORC_VAR_D1);
5787 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
5789 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
5791 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
5793 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
5795 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
5798 orc_program_compile (p);
5801 orc_once_mutex_unlock ();
5806 ex->arrays[ORC_VAR_D1] = d1;
5807 ex->arrays[ORC_VAR_D2] = d2;
5808 ex->arrays[ORC_VAR_D3] = d3;
5809 ex->arrays[ORC_VAR_D4] = d4;
5810 ex->arrays[ORC_VAR_S1] = (void *) s1;
5812 func = p->code_exec;
5818 /* orc_resample_bilinear_u32 */
5821 orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
5822 const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
5825 orc_union32 *ORC_RESTRICT ptr0;
5826 const orc_union32 *ORC_RESTRICT ptr4;
5829 ptr0 = (orc_union32 *) d1;
5830 ptr4 = (orc_union32 *) s1;
5833 for (i = 0; i < n; i++) {
5836 int tmp = p1 + i * p2;
5837 orc_union32 a = ptr4[tmp >> 16];
5838 orc_union32 b = ptr4[(tmp >> 16) + 1];
5840 ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
5841 (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
5843 ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
5844 (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
5846 ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
5847 (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
5849 ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
5850 (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
5860 _backup_orc_resample_bilinear_u32 (OrcExecutor * ORC_RESTRICT ex)
5864 orc_union32 *ORC_RESTRICT ptr0;
5865 const orc_union32 *ORC_RESTRICT ptr4;
5868 ptr0 = (orc_union32 *) ex->arrays[0];
5869 ptr4 = (orc_union32 *) ex->arrays[4];
5872 for (i = 0; i < n; i++) {
5875 int tmp = ex->params[24] + i * ex->params[25];
5876 orc_union32 a = ptr4[tmp >> 16];
5877 orc_union32 b = ptr4[(tmp >> 16) + 1];
5879 ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
5880 (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
5882 ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
5883 (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
5885 ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
5886 (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
5888 ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
5889 (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
5898 orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
5899 const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
5901 OrcExecutor _ex, *ex = &_ex;
5902 static volatile int p_inited = 0;
5903 static OrcProgram *p = 0;
5904 void (*func) (OrcExecutor *);
5907 orc_once_mutex_lock ();
5910 p = orc_program_new ();
5911 orc_program_set_name (p, "orc_resample_bilinear_u32");
5912 orc_program_set_backup_function (p, _backup_orc_resample_bilinear_u32);
5913 orc_program_add_destination (p, 4, "d1");
5914 orc_program_add_source (p, 4, "s1");
5915 orc_program_add_parameter (p, 4, "p1");
5916 orc_program_add_parameter (p, 4, "p2");
5918 orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
5919 ORC_VAR_P1, ORC_VAR_P2);
5921 orc_program_compile (p);
5924 orc_once_mutex_unlock ();
5929 ex->arrays[ORC_VAR_D1] = d1;
5930 ex->arrays[ORC_VAR_S1] = (void *) s1;
5931 ex->params[ORC_VAR_P1] = p1;
5932 ex->params[ORC_VAR_P2] = p2;
5934 func = p->code_exec;
5940 /* orc_merge_linear_u8 */
5943 orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
5944 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
5948 orc_int8 *ORC_RESTRICT ptr0;
5949 const orc_int8 *ORC_RESTRICT ptr4;
5950 const orc_int8 *ORC_RESTRICT ptr5;
5964 ptr0 = (orc_int8 *) d1;
5965 ptr4 = (orc_int8 *) s1;
5966 ptr5 = (orc_int8 *) s2;
5971 var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
5973 for (i = 0; i < n; i++) {
5979 var42.i = (orc_uint8) var36;
5983 var43.i = (orc_uint8) var37;
5985 var44.i = var43.i - var42.i;
5987 var45.i = (var44.i * var38.i) & 0xffff;
5989 var46.i = var45.i + var39.i;
5991 var47 = ((orc_uint16) var46.i) >> 8;
5993 var40 = var47 + var41;
6002 _backup_orc_merge_linear_u8 (OrcExecutor * ORC_RESTRICT ex)
6006 orc_int8 *ORC_RESTRICT ptr0;
6007 const orc_int8 *ORC_RESTRICT ptr4;
6008 const orc_int8 *ORC_RESTRICT ptr5;
6022 ptr0 = (orc_int8 *) ex->arrays[0];
6023 ptr4 = (orc_int8 *) ex->arrays[4];
6024 ptr5 = (orc_int8 *) ex->arrays[5];
6027 var38.i = ex->params[24];
6029 var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
6031 for (i = 0; i < n; i++) {
6037 var42.i = (orc_uint8) var36;
6041 var43.i = (orc_uint8) var37;
6043 var44.i = var43.i - var42.i;
6045 var45.i = (var44.i * var38.i) & 0xffff;
6047 var46.i = var45.i + var39.i;
6049 var47 = ((orc_uint16) var46.i) >> 8;
6051 var40 = var47 + var41;
6059 orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
6060 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
6063 OrcExecutor _ex, *ex = &_ex;
6064 static volatile int p_inited = 0;
6065 static OrcProgram *p = 0;
6066 void (*func) (OrcExecutor *);
6069 orc_once_mutex_lock ();
6072 p = orc_program_new ();
6073 orc_program_set_name (p, "orc_merge_linear_u8");
6074 orc_program_set_backup_function (p, _backup_orc_merge_linear_u8);
6075 orc_program_add_destination (p, 1, "d1");
6076 orc_program_add_source (p, 1, "s1");
6077 orc_program_add_source (p, 1, "s2");
6078 orc_program_add_constant (p, 4, 0x00000080, "c1");
6079 orc_program_add_parameter (p, 1, "p1");
6080 orc_program_add_temporary (p, 2, "t1");
6081 orc_program_add_temporary (p, 2, "t2");
6082 orc_program_add_temporary (p, 1, "t3");
6083 orc_program_add_temporary (p, 1, "t4");
6085 orc_program_append_2 (p, "loadb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
6087 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6089 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
6091 orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
6093 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
6095 orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
6097 orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
6099 orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
6102 orc_program_compile (p);
6105 orc_once_mutex_unlock ();
6110 ex->arrays[ORC_VAR_D1] = d1;
6111 ex->arrays[ORC_VAR_S1] = (void *) s1;
6112 ex->arrays[ORC_VAR_S2] = (void *) s2;
6113 ex->params[ORC_VAR_P1] = p1;
6115 func = p->code_exec;