2 /* autogenerated from compositororc.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__
83 #if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
84 #define ORC_INTERNAL __attribute__((visibility("hidden")))
85 #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
86 #define ORC_INTERNAL __hidden
87 #elif defined (__GNUC__)
88 #define ORC_INTERNAL __attribute__((visibility("hidden")))
98 void compositor_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
99 void compositor_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
100 const guint32 * ORC_RESTRICT s1, int n);
101 void compositor_orc_memset_u16_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
102 int p1, int n, int m);
103 void compositor_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
104 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
105 void compositor_orc_blend_u10 (guint8 * ORC_RESTRICT d1, int d1_stride,
106 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
107 void compositor_orc_blend_u12 (guint8 * ORC_RESTRICT d1, int d1_stride,
108 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
109 void compositor_orc_blend_u16 (guint8 * ORC_RESTRICT d1, int d1_stride,
110 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
111 void compositor_orc_blend_u10_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
112 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
113 void compositor_orc_blend_u12_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
114 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
115 void compositor_orc_blend_u16_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
116 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
117 void compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
118 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
119 void compositor_orc_source_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
120 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
121 void compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
122 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
123 void compositor_orc_source_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
124 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
125 void compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
126 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
127 void compositor_orc_overlay_argb_addition (guint8 * ORC_RESTRICT d1,
128 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n,
130 void compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
131 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
132 void compositor_orc_overlay_bgra_addition (guint8 * ORC_RESTRICT d1,
133 int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n,
137 /* begin Orc C target preamble */
138 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
139 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
140 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
141 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
142 #define ORC_SB_MAX 127
143 #define ORC_SB_MIN (-1-ORC_SB_MAX)
144 #define ORC_UB_MAX (orc_uint8) 255
146 #define ORC_SW_MAX 32767
147 #define ORC_SW_MIN (-1-ORC_SW_MAX)
148 #define ORC_UW_MAX (orc_uint16)65535
150 #define ORC_SL_MAX 2147483647
151 #define ORC_SL_MIN (-1-ORC_SL_MAX)
152 #define ORC_UL_MAX 4294967295U
154 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
155 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
156 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
157 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
158 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
159 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
160 #define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
161 #define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
162 #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))
163 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
164 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
165 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
166 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
167 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
169 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
170 #define ORC_RESTRICT restrict
171 #elif defined(__GNUC__) && __GNUC__ >= 4
172 #define ORC_RESTRICT __restrict__
177 /* end Orc C target preamble */
181 /* compositor_orc_splat_u32 */
184 compositor_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
187 orc_union32 *ORC_RESTRICT ptr0;
191 ptr0 = (orc_union32 *) d1;
196 for (i = 0; i < n; i++) {
207 _backup_compositor_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
211 orc_union32 *ORC_RESTRICT ptr0;
215 ptr0 = (orc_union32 *) ex->arrays[0];
218 var32.i = ex->params[24];
220 for (i = 0; i < n; i++) {
230 compositor_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
232 OrcExecutor _ex, *ex = &_ex;
233 static volatile int p_inited = 0;
234 static OrcCode *c = 0;
235 void (*func) (OrcExecutor *);
238 orc_once_mutex_lock ();
243 static const orc_uint8 bc[] = {
244 1, 9, 24, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111, 114,
245 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16, 4,
248 p = orc_program_new_from_static_bytecode (bc);
249 orc_program_set_backup_function (p, _backup_compositor_orc_splat_u32);
251 p = orc_program_new ();
252 orc_program_set_name (p, "compositor_orc_splat_u32");
253 orc_program_set_backup_function (p, _backup_compositor_orc_splat_u32);
254 orc_program_add_destination (p, 4, "d1");
255 orc_program_add_parameter (p, 4, "p1");
257 orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
261 orc_program_compile (p);
262 c = orc_program_take_code (p);
263 orc_program_free (p);
266 orc_once_mutex_unlock ();
268 ex->arrays[ORC_VAR_A2] = c;
272 ex->arrays[ORC_VAR_D1] = d1;
273 ex->params[ORC_VAR_P1] = p1;
281 /* compositor_orc_memcpy_u32 */
284 compositor_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
285 const guint32 * ORC_RESTRICT s1, int n)
288 orc_union32 *ORC_RESTRICT ptr0;
289 const orc_union32 *ORC_RESTRICT ptr4;
293 ptr0 = (orc_union32 *) d1;
294 ptr4 = (orc_union32 *) s1;
297 for (i = 0; i < n; i++) {
310 _backup_compositor_orc_memcpy_u32 (OrcExecutor * ORC_RESTRICT ex)
314 orc_union32 *ORC_RESTRICT ptr0;
315 const orc_union32 *ORC_RESTRICT ptr4;
319 ptr0 = (orc_union32 *) ex->arrays[0];
320 ptr4 = (orc_union32 *) ex->arrays[4];
323 for (i = 0; i < n; i++) {
335 compositor_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
336 const guint32 * ORC_RESTRICT s1, int n)
338 OrcExecutor _ex, *ex = &_ex;
339 static volatile int p_inited = 0;
340 static OrcCode *c = 0;
341 void (*func) (OrcExecutor *);
344 orc_once_mutex_lock ();
349 static const orc_uint8 bc[] = {
350 1, 9, 25, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111, 114,
351 99, 95, 109, 101, 109, 99, 112, 121, 95, 117, 51, 50, 11, 4, 4, 12,
352 4, 4, 112, 0, 4, 2, 0,
354 p = orc_program_new_from_static_bytecode (bc);
355 orc_program_set_backup_function (p, _backup_compositor_orc_memcpy_u32);
357 p = orc_program_new ();
358 orc_program_set_name (p, "compositor_orc_memcpy_u32");
359 orc_program_set_backup_function (p, _backup_compositor_orc_memcpy_u32);
360 orc_program_add_destination (p, 4, "d1");
361 orc_program_add_source (p, 4, "s1");
363 orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
367 orc_program_compile (p);
368 c = orc_program_take_code (p);
369 orc_program_free (p);
372 orc_once_mutex_unlock ();
374 ex->arrays[ORC_VAR_A2] = c;
378 ex->arrays[ORC_VAR_D1] = d1;
379 ex->arrays[ORC_VAR_S1] = (void *) s1;
387 /* compositor_orc_memset_u16_2d */
390 compositor_orc_memset_u16_2d (guint8 * ORC_RESTRICT d1, int d1_stride, int p1,
395 orc_union16 *ORC_RESTRICT ptr0;
398 for (j = 0; j < m; j++) {
399 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
404 for (i = 0; i < n; i++) {
414 _backup_compositor_orc_memset_u16_2d (OrcExecutor * ORC_RESTRICT ex)
419 int m = ex->params[ORC_VAR_A1];
420 orc_union16 *ORC_RESTRICT ptr0;
423 for (j = 0; j < m; j++) {
424 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
427 var32.i = ex->params[24];
429 for (i = 0; i < n; i++) {
438 compositor_orc_memset_u16_2d (guint8 * ORC_RESTRICT d1, int d1_stride, int p1,
441 OrcExecutor _ex, *ex = &_ex;
442 static volatile int p_inited = 0;
443 static OrcCode *c = 0;
444 void (*func) (OrcExecutor *);
447 orc_once_mutex_lock ();
452 static const orc_uint8 bc[] = {
453 1, 7, 9, 28, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
454 114, 99, 95, 109, 101, 109, 115, 101, 116, 95, 117, 49, 54, 95, 50, 100,
455 11, 2, 2, 16, 2, 97, 0, 24, 2, 0,
457 p = orc_program_new_from_static_bytecode (bc);
458 orc_program_set_backup_function (p, _backup_compositor_orc_memset_u16_2d);
460 p = orc_program_new ();
461 orc_program_set_2d (p);
462 orc_program_set_name (p, "compositor_orc_memset_u16_2d");
463 orc_program_set_backup_function (p, _backup_compositor_orc_memset_u16_2d);
464 orc_program_add_destination (p, 2, "d1");
465 orc_program_add_parameter (p, 2, "p1");
467 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
471 orc_program_compile (p);
472 c = orc_program_take_code (p);
473 orc_program_free (p);
476 orc_once_mutex_unlock ();
478 ex->arrays[ORC_VAR_A2] = c;
482 ORC_EXECUTOR_M (ex) = m;
483 ex->arrays[ORC_VAR_D1] = d1;
484 ex->params[ORC_VAR_D1] = d1_stride;
485 ex->params[ORC_VAR_P1] = p1;
493 /* compositor_orc_blend_u8 */
496 compositor_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
497 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
501 orc_int8 *ORC_RESTRICT ptr0;
502 const orc_int8 *ORC_RESTRICT ptr4;
515 for (j = 0; j < m; j++) {
516 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
517 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
522 for (i = 0; i < n; i++) {
526 var38.i = (orc_uint8) var34;
530 var39.i = (orc_uint8) var35;
532 var40.i = var39.i - var38.i;
534 var41.i = (var40.i * var36.i) & 0xffff;
536 var42.i = ((orc_uint16) var38.i) << 8;
538 var43.i = var42.i + var41.i;
540 var44.i = ((orc_uint16) var43.i) >> 8;
542 var37 = ORC_CLAMP_UB (var44.i);
552 _backup_compositor_orc_blend_u8 (OrcExecutor * ORC_RESTRICT ex)
557 int m = ex->params[ORC_VAR_A1];
558 orc_int8 *ORC_RESTRICT ptr0;
559 const orc_int8 *ORC_RESTRICT ptr4;
572 for (j = 0; j < m; j++) {
573 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
574 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
577 var36.i = ex->params[24];
579 for (i = 0; i < n; i++) {
583 var38.i = (orc_uint8) var34;
587 var39.i = (orc_uint8) var35;
589 var40.i = var39.i - var38.i;
591 var41.i = (var40.i * var36.i) & 0xffff;
593 var42.i = ((orc_uint16) var38.i) << 8;
595 var43.i = var42.i + var41.i;
597 var44.i = ((orc_uint16) var43.i) >> 8;
599 var37 = ORC_CLAMP_UB (var44.i);
608 compositor_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
609 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
611 OrcExecutor _ex, *ex = &_ex;
612 static volatile int p_inited = 0;
613 static OrcCode *c = 0;
614 void (*func) (OrcExecutor *);
617 orc_once_mutex_lock ();
622 static const orc_uint8 bc[] = {
623 1, 7, 9, 23, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
624 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 56, 11, 1, 1, 12, 1,
625 1, 14, 1, 8, 0, 0, 0, 16, 2, 20, 2, 20, 2, 150, 32, 0,
626 150, 33, 4, 98, 33, 33, 32, 89, 33, 33, 24, 93, 32, 32, 16, 70,
627 33, 32, 33, 95, 33, 33, 16, 160, 0, 33, 2, 0,
629 p = orc_program_new_from_static_bytecode (bc);
630 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u8);
632 p = orc_program_new ();
633 orc_program_set_2d (p);
634 orc_program_set_name (p, "compositor_orc_blend_u8");
635 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u8);
636 orc_program_add_destination (p, 1, "d1");
637 orc_program_add_source (p, 1, "s1");
638 orc_program_add_constant (p, 1, 0x00000008, "c1");
639 orc_program_add_parameter (p, 2, "p1");
640 orc_program_add_temporary (p, 2, "t1");
641 orc_program_add_temporary (p, 2, "t2");
643 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
645 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
647 orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
649 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
651 orc_program_append_2 (p, "shlw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
653 orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
655 orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
657 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
658 ORC_VAR_D1, ORC_VAR_D1);
661 orc_program_compile (p);
662 c = orc_program_take_code (p);
663 orc_program_free (p);
666 orc_once_mutex_unlock ();
668 ex->arrays[ORC_VAR_A2] = c;
672 ORC_EXECUTOR_M (ex) = m;
673 ex->arrays[ORC_VAR_D1] = d1;
674 ex->params[ORC_VAR_D1] = d1_stride;
675 ex->arrays[ORC_VAR_S1] = (void *) s1;
676 ex->params[ORC_VAR_S1] = s1_stride;
677 ex->params[ORC_VAR_P1] = p1;
685 /* compositor_orc_blend_u10 */
688 compositor_orc_blend_u10 (guint8 * ORC_RESTRICT d1, int d1_stride,
689 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
693 orc_union16 *ORC_RESTRICT ptr0;
694 const orc_union16 *ORC_RESTRICT ptr4;
707 for (j = 0; j < m; j++) {
708 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
709 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
714 for (i = 0; i < n; i++) {
718 var38.i = (orc_uint16) var34.i;
722 var39.i = (orc_uint16) var35.i;
724 var40.i = ((orc_uint32) var39.i) - ((orc_uint32) var38.i);
726 var41.i = (((orc_uint32) var40.i) * ((orc_uint32) var36.i)) & 0xffffffff;
728 var42.i = ((orc_uint32) var38.i) << 10;
730 var43.i = ((orc_uint32) var42.i) + ((orc_uint32) var41.i);
732 var44.i = ((orc_uint32) var43.i) >> 10;
734 var37.i = ORC_CLAMP_UW (var44.i);
744 _backup_compositor_orc_blend_u10 (OrcExecutor * ORC_RESTRICT ex)
749 int m = ex->params[ORC_VAR_A1];
750 orc_union16 *ORC_RESTRICT ptr0;
751 const orc_union16 *ORC_RESTRICT ptr4;
764 for (j = 0; j < m; j++) {
765 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
766 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
769 var36.i = ex->params[24];
771 for (i = 0; i < n; i++) {
775 var38.i = (orc_uint16) var34.i;
779 var39.i = (orc_uint16) var35.i;
781 var40.i = ((orc_uint32) var39.i) - ((orc_uint32) var38.i);
783 var41.i = (((orc_uint32) var40.i) * ((orc_uint32) var36.i)) & 0xffffffff;
785 var42.i = ((orc_uint32) var38.i) << 10;
787 var43.i = ((orc_uint32) var42.i) + ((orc_uint32) var41.i);
789 var44.i = ((orc_uint32) var43.i) >> 10;
791 var37.i = ORC_CLAMP_UW (var44.i);
800 compositor_orc_blend_u10 (guint8 * ORC_RESTRICT d1, int d1_stride,
801 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
803 OrcExecutor _ex, *ex = &_ex;
804 static volatile int p_inited = 0;
805 static OrcCode *c = 0;
806 void (*func) (OrcExecutor *);
809 orc_once_mutex_lock ();
814 static const orc_uint8 bc[] = {
815 1, 7, 9, 24, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
816 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 49, 48, 11, 2, 2, 12,
817 2, 2, 14, 1, 10, 0, 0, 0, 16, 2, 20, 4, 20, 4, 154, 32,
818 0, 154, 33, 4, 129, 33, 33, 32, 120, 33, 33, 24, 124, 32, 32, 16,
819 103, 33, 32, 33, 126, 33, 33, 16, 166, 0, 33, 2, 0,
821 p = orc_program_new_from_static_bytecode (bc);
822 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u10);
824 p = orc_program_new ();
825 orc_program_set_2d (p);
826 orc_program_set_name (p, "compositor_orc_blend_u10");
827 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u10);
828 orc_program_add_destination (p, 2, "d1");
829 orc_program_add_source (p, 2, "s1");
830 orc_program_add_constant (p, 1, 0x0000000a, "c1");
831 orc_program_add_parameter (p, 2, "p1");
832 orc_program_add_temporary (p, 4, "t1");
833 orc_program_add_temporary (p, 4, "t2");
835 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
837 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
839 orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
841 orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
843 orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
845 orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
847 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
849 orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T2,
850 ORC_VAR_D1, ORC_VAR_D1);
853 orc_program_compile (p);
854 c = orc_program_take_code (p);
855 orc_program_free (p);
858 orc_once_mutex_unlock ();
860 ex->arrays[ORC_VAR_A2] = c;
864 ORC_EXECUTOR_M (ex) = m;
865 ex->arrays[ORC_VAR_D1] = d1;
866 ex->params[ORC_VAR_D1] = d1_stride;
867 ex->arrays[ORC_VAR_S1] = (void *) s1;
868 ex->params[ORC_VAR_S1] = s1_stride;
869 ex->params[ORC_VAR_P1] = p1;
877 /* compositor_orc_blend_u12 */
880 compositor_orc_blend_u12 (guint8 * ORC_RESTRICT d1, int d1_stride,
881 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
885 orc_union16 *ORC_RESTRICT ptr0;
886 const orc_union16 *ORC_RESTRICT ptr4;
899 for (j = 0; j < m; j++) {
900 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
901 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
906 for (i = 0; i < n; i++) {
910 var38.i = (orc_uint16) var34.i;
914 var39.i = (orc_uint16) var35.i;
916 var40.i = ((orc_uint32) var39.i) - ((orc_uint32) var38.i);
918 var41.i = (((orc_uint32) var40.i) * ((orc_uint32) var36.i)) & 0xffffffff;
920 var42.i = ((orc_uint32) var38.i) << 12;
922 var43.i = ((orc_uint32) var42.i) + ((orc_uint32) var41.i);
924 var44.i = ((orc_uint32) var43.i) >> 12;
926 var37.i = ORC_CLAMP_UW (var44.i);
936 _backup_compositor_orc_blend_u12 (OrcExecutor * ORC_RESTRICT ex)
941 int m = ex->params[ORC_VAR_A1];
942 orc_union16 *ORC_RESTRICT ptr0;
943 const orc_union16 *ORC_RESTRICT ptr4;
956 for (j = 0; j < m; j++) {
957 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
958 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
961 var36.i = ex->params[24];
963 for (i = 0; i < n; i++) {
967 var38.i = (orc_uint16) var34.i;
971 var39.i = (orc_uint16) var35.i;
973 var40.i = ((orc_uint32) var39.i) - ((orc_uint32) var38.i);
975 var41.i = (((orc_uint32) var40.i) * ((orc_uint32) var36.i)) & 0xffffffff;
977 var42.i = ((orc_uint32) var38.i) << 12;
979 var43.i = ((orc_uint32) var42.i) + ((orc_uint32) var41.i);
981 var44.i = ((orc_uint32) var43.i) >> 12;
983 var37.i = ORC_CLAMP_UW (var44.i);
992 compositor_orc_blend_u12 (guint8 * ORC_RESTRICT d1, int d1_stride,
993 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
995 OrcExecutor _ex, *ex = &_ex;
996 static volatile int p_inited = 0;
997 static OrcCode *c = 0;
998 void (*func) (OrcExecutor *);
1001 orc_once_mutex_lock ();
1006 static const orc_uint8 bc[] = {
1007 1, 7, 9, 24, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
1008 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 49, 50, 11, 2, 2, 12,
1009 2, 2, 14, 1, 12, 0, 0, 0, 16, 2, 20, 4, 20, 4, 154, 32,
1010 0, 154, 33, 4, 129, 33, 33, 32, 120, 33, 33, 24, 124, 32, 32, 16,
1011 103, 33, 32, 33, 126, 33, 33, 16, 166, 0, 33, 2, 0,
1013 p = orc_program_new_from_static_bytecode (bc);
1014 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u12);
1016 p = orc_program_new ();
1017 orc_program_set_2d (p);
1018 orc_program_set_name (p, "compositor_orc_blend_u12");
1019 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u12);
1020 orc_program_add_destination (p, 2, "d1");
1021 orc_program_add_source (p, 2, "s1");
1022 orc_program_add_constant (p, 1, 0x0000000c, "c1");
1023 orc_program_add_parameter (p, 2, "p1");
1024 orc_program_add_temporary (p, 4, "t1");
1025 orc_program_add_temporary (p, 4, "t2");
1027 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
1029 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
1031 orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
1033 orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
1035 orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1037 orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
1039 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1041 orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T2,
1042 ORC_VAR_D1, ORC_VAR_D1);
1045 orc_program_compile (p);
1046 c = orc_program_take_code (p);
1047 orc_program_free (p);
1050 orc_once_mutex_unlock ();
1052 ex->arrays[ORC_VAR_A2] = c;
1056 ORC_EXECUTOR_M (ex) = m;
1057 ex->arrays[ORC_VAR_D1] = d1;
1058 ex->params[ORC_VAR_D1] = d1_stride;
1059 ex->arrays[ORC_VAR_S1] = (void *) s1;
1060 ex->params[ORC_VAR_S1] = s1_stride;
1061 ex->params[ORC_VAR_P1] = p1;
1069 /* compositor_orc_blend_u16 */
1072 compositor_orc_blend_u16 (guint8 * ORC_RESTRICT d1, int d1_stride,
1073 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1077 orc_union16 *ORC_RESTRICT ptr0;
1078 const orc_union16 *ORC_RESTRICT ptr4;
1091 for (j = 0; j < m; j++) {
1092 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1093 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1098 for (i = 0; i < n; i++) {
1102 var38.i = (orc_uint16) var34.i;
1106 var39.i = (orc_uint16) var35.i;
1108 var40.i = ((orc_uint32) var39.i) - ((orc_uint32) var38.i);
1110 var41.i = (((orc_uint32) var40.i) * ((orc_uint32) var36.i)) & 0xffffffff;
1112 var42.i = ((orc_uint32) var38.i) << 16;
1114 var43.i = ((orc_uint32) var42.i) + ((orc_uint32) var41.i);
1116 var44.i = ((orc_uint32) var43.i) >> 16;
1118 var37.i = ORC_CLAMP_UW (var44.i);
1128 _backup_compositor_orc_blend_u16 (OrcExecutor * ORC_RESTRICT ex)
1133 int m = ex->params[ORC_VAR_A1];
1134 orc_union16 *ORC_RESTRICT ptr0;
1135 const orc_union16 *ORC_RESTRICT ptr4;
1148 for (j = 0; j < m; j++) {
1149 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1150 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1153 var36.i = ex->params[24];
1155 for (i = 0; i < n; i++) {
1159 var38.i = (orc_uint16) var34.i;
1163 var39.i = (orc_uint16) var35.i;
1165 var40.i = ((orc_uint32) var39.i) - ((orc_uint32) var38.i);
1167 var41.i = (((orc_uint32) var40.i) * ((orc_uint32) var36.i)) & 0xffffffff;
1169 var42.i = ((orc_uint32) var38.i) << 16;
1171 var43.i = ((orc_uint32) var42.i) + ((orc_uint32) var41.i);
1173 var44.i = ((orc_uint32) var43.i) >> 16;
1175 var37.i = ORC_CLAMP_UW (var44.i);
1184 compositor_orc_blend_u16 (guint8 * ORC_RESTRICT d1, int d1_stride,
1185 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1187 OrcExecutor _ex, *ex = &_ex;
1188 static volatile int p_inited = 0;
1189 static OrcCode *c = 0;
1190 void (*func) (OrcExecutor *);
1193 orc_once_mutex_lock ();
1198 static const orc_uint8 bc[] = {
1199 1, 7, 9, 24, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
1200 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 49, 54, 11, 2, 2, 12,
1201 2, 2, 14, 1, 16, 0, 0, 0, 16, 2, 20, 4, 20, 4, 154, 32,
1202 0, 154, 33, 4, 129, 33, 33, 32, 120, 33, 33, 24, 124, 32, 32, 16,
1203 103, 33, 32, 33, 126, 33, 33, 16, 166, 0, 33, 2, 0,
1205 p = orc_program_new_from_static_bytecode (bc);
1206 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u16);
1208 p = orc_program_new ();
1209 orc_program_set_2d (p);
1210 orc_program_set_name (p, "compositor_orc_blend_u16");
1211 orc_program_set_backup_function (p, _backup_compositor_orc_blend_u16);
1212 orc_program_add_destination (p, 2, "d1");
1213 orc_program_add_source (p, 2, "s1");
1214 orc_program_add_constant (p, 1, 0x00000010, "c1");
1215 orc_program_add_parameter (p, 2, "p1");
1216 orc_program_add_temporary (p, 4, "t1");
1217 orc_program_add_temporary (p, 4, "t2");
1219 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
1221 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
1223 orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
1225 orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
1227 orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1229 orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
1231 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1233 orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T2,
1234 ORC_VAR_D1, ORC_VAR_D1);
1237 orc_program_compile (p);
1238 c = orc_program_take_code (p);
1239 orc_program_free (p);
1242 orc_once_mutex_unlock ();
1244 ex->arrays[ORC_VAR_A2] = c;
1248 ORC_EXECUTOR_M (ex) = m;
1249 ex->arrays[ORC_VAR_D1] = d1;
1250 ex->params[ORC_VAR_D1] = d1_stride;
1251 ex->arrays[ORC_VAR_S1] = (void *) s1;
1252 ex->params[ORC_VAR_S1] = s1_stride;
1253 ex->params[ORC_VAR_P1] = p1;
1261 /* compositor_orc_blend_u10_swap */
1264 compositor_orc_blend_u10_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
1265 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1269 orc_union16 *ORC_RESTRICT ptr0;
1270 const orc_union16 *ORC_RESTRICT ptr4;
1286 for (j = 0; j < m; j++) {
1287 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1288 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1293 for (i = 0; i < n; i++) {
1297 var39.i = ORC_SWAP_W (var35.i);
1299 var40.i = (orc_uint16) var39.i;
1303 var41.i = ORC_SWAP_W (var36.i);
1305 var42.i = (orc_uint16) var41.i;
1307 var43.i = ((orc_uint32) var42.i) - ((orc_uint32) var40.i);
1309 var44.i = (((orc_uint32) var43.i) * ((orc_uint32) var37.i)) & 0xffffffff;
1311 var45.i = ((orc_uint32) var40.i) << 10;
1313 var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var44.i);
1315 var47.i = ((orc_uint32) var46.i) >> 10;
1317 var48.i = ORC_CLAMP_UW (var47.i);
1319 var38.i = ORC_SWAP_W (var48.i);
1329 _backup_compositor_orc_blend_u10_swap (OrcExecutor * ORC_RESTRICT ex)
1334 int m = ex->params[ORC_VAR_A1];
1335 orc_union16 *ORC_RESTRICT ptr0;
1336 const orc_union16 *ORC_RESTRICT ptr4;
1352 for (j = 0; j < m; j++) {
1353 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1354 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1357 var37.i = ex->params[24];
1359 for (i = 0; i < n; i++) {
1363 var39.i = ORC_SWAP_W (var35.i);
1365 var40.i = (orc_uint16) var39.i;
1369 var41.i = ORC_SWAP_W (var36.i);
1371 var42.i = (orc_uint16) var41.i;
1373 var43.i = ((orc_uint32) var42.i) - ((orc_uint32) var40.i);
1375 var44.i = (((orc_uint32) var43.i) * ((orc_uint32) var37.i)) & 0xffffffff;
1377 var45.i = ((orc_uint32) var40.i) << 10;
1379 var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var44.i);
1381 var47.i = ((orc_uint32) var46.i) >> 10;
1383 var48.i = ORC_CLAMP_UW (var47.i);
1385 var38.i = ORC_SWAP_W (var48.i);
1394 compositor_orc_blend_u10_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
1395 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1397 OrcExecutor _ex, *ex = &_ex;
1398 static volatile int p_inited = 0;
1399 static OrcCode *c = 0;
1400 void (*func) (OrcExecutor *);
1403 orc_once_mutex_lock ();
1408 static const orc_uint8 bc[] = {
1409 1, 7, 9, 29, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
1410 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 49, 48, 95, 115, 119, 97,
1411 112, 11, 2, 2, 12, 2, 2, 14, 1, 10, 0, 0, 0, 16, 2, 20,
1412 4, 20, 4, 20, 2, 183, 34, 0, 154, 32, 34, 183, 34, 4, 154, 33,
1413 34, 129, 33, 33, 32, 120, 33, 33, 24, 124, 32, 32, 16, 103, 33, 32,
1414 33, 126, 33, 33, 16, 166, 34, 33, 183, 0, 34, 2, 0,
1416 p = orc_program_new_from_static_bytecode (bc);
1417 orc_program_set_backup_function (p,
1418 _backup_compositor_orc_blend_u10_swap);
1420 p = orc_program_new ();
1421 orc_program_set_2d (p);
1422 orc_program_set_name (p, "compositor_orc_blend_u10_swap");
1423 orc_program_set_backup_function (p,
1424 _backup_compositor_orc_blend_u10_swap);
1425 orc_program_add_destination (p, 2, "d1");
1426 orc_program_add_source (p, 2, "s1");
1427 orc_program_add_constant (p, 1, 0x0000000a, "c1");
1428 orc_program_add_parameter (p, 2, "p1");
1429 orc_program_add_temporary (p, 4, "t1");
1430 orc_program_add_temporary (p, 4, "t2");
1431 orc_program_add_temporary (p, 2, "t3");
1433 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_D1, ORC_VAR_D1,
1435 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
1437 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
1439 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_D1,
1441 orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
1443 orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
1445 orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1447 orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
1449 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1451 orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_T3, ORC_VAR_T2,
1452 ORC_VAR_D1, ORC_VAR_D1);
1453 orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
1457 orc_program_compile (p);
1458 c = orc_program_take_code (p);
1459 orc_program_free (p);
1462 orc_once_mutex_unlock ();
1464 ex->arrays[ORC_VAR_A2] = c;
1468 ORC_EXECUTOR_M (ex) = m;
1469 ex->arrays[ORC_VAR_D1] = d1;
1470 ex->params[ORC_VAR_D1] = d1_stride;
1471 ex->arrays[ORC_VAR_S1] = (void *) s1;
1472 ex->params[ORC_VAR_S1] = s1_stride;
1473 ex->params[ORC_VAR_P1] = p1;
1481 /* compositor_orc_blend_u12_swap */
1484 compositor_orc_blend_u12_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
1485 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1489 orc_union16 *ORC_RESTRICT ptr0;
1490 const orc_union16 *ORC_RESTRICT ptr4;
1506 for (j = 0; j < m; j++) {
1507 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1508 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1513 for (i = 0; i < n; i++) {
1517 var39.i = ORC_SWAP_W (var35.i);
1519 var40.i = (orc_uint16) var39.i;
1523 var41.i = ORC_SWAP_W (var36.i);
1525 var42.i = (orc_uint16) var41.i;
1527 var43.i = ((orc_uint32) var42.i) - ((orc_uint32) var40.i);
1529 var44.i = (((orc_uint32) var43.i) * ((orc_uint32) var37.i)) & 0xffffffff;
1531 var45.i = ((orc_uint32) var40.i) << 12;
1533 var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var44.i);
1535 var47.i = ((orc_uint32) var46.i) >> 12;
1537 var48.i = ORC_CLAMP_UW (var47.i);
1539 var38.i = ORC_SWAP_W (var48.i);
1549 _backup_compositor_orc_blend_u12_swap (OrcExecutor * ORC_RESTRICT ex)
1554 int m = ex->params[ORC_VAR_A1];
1555 orc_union16 *ORC_RESTRICT ptr0;
1556 const orc_union16 *ORC_RESTRICT ptr4;
1572 for (j = 0; j < m; j++) {
1573 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1574 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1577 var37.i = ex->params[24];
1579 for (i = 0; i < n; i++) {
1583 var39.i = ORC_SWAP_W (var35.i);
1585 var40.i = (orc_uint16) var39.i;
1589 var41.i = ORC_SWAP_W (var36.i);
1591 var42.i = (orc_uint16) var41.i;
1593 var43.i = ((orc_uint32) var42.i) - ((orc_uint32) var40.i);
1595 var44.i = (((orc_uint32) var43.i) * ((orc_uint32) var37.i)) & 0xffffffff;
1597 var45.i = ((orc_uint32) var40.i) << 12;
1599 var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var44.i);
1601 var47.i = ((orc_uint32) var46.i) >> 12;
1603 var48.i = ORC_CLAMP_UW (var47.i);
1605 var38.i = ORC_SWAP_W (var48.i);
1614 compositor_orc_blend_u12_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
1615 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1617 OrcExecutor _ex, *ex = &_ex;
1618 static volatile int p_inited = 0;
1619 static OrcCode *c = 0;
1620 void (*func) (OrcExecutor *);
1623 orc_once_mutex_lock ();
1628 static const orc_uint8 bc[] = {
1629 1, 7, 9, 29, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
1630 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 49, 50, 95, 115, 119, 97,
1631 112, 11, 2, 2, 12, 2, 2, 14, 1, 12, 0, 0, 0, 16, 2, 20,
1632 4, 20, 4, 20, 2, 183, 34, 0, 154, 32, 34, 183, 34, 4, 154, 33,
1633 34, 129, 33, 33, 32, 120, 33, 33, 24, 124, 32, 32, 16, 103, 33, 32,
1634 33, 126, 33, 33, 16, 166, 34, 33, 183, 0, 34, 2, 0,
1636 p = orc_program_new_from_static_bytecode (bc);
1637 orc_program_set_backup_function (p,
1638 _backup_compositor_orc_blend_u12_swap);
1640 p = orc_program_new ();
1641 orc_program_set_2d (p);
1642 orc_program_set_name (p, "compositor_orc_blend_u12_swap");
1643 orc_program_set_backup_function (p,
1644 _backup_compositor_orc_blend_u12_swap);
1645 orc_program_add_destination (p, 2, "d1");
1646 orc_program_add_source (p, 2, "s1");
1647 orc_program_add_constant (p, 1, 0x0000000c, "c1");
1648 orc_program_add_parameter (p, 2, "p1");
1649 orc_program_add_temporary (p, 4, "t1");
1650 orc_program_add_temporary (p, 4, "t2");
1651 orc_program_add_temporary (p, 2, "t3");
1653 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_D1, ORC_VAR_D1,
1655 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
1657 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
1659 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_D1,
1661 orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
1663 orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
1665 orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1667 orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
1669 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1671 orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_T3, ORC_VAR_T2,
1672 ORC_VAR_D1, ORC_VAR_D1);
1673 orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
1677 orc_program_compile (p);
1678 c = orc_program_take_code (p);
1679 orc_program_free (p);
1682 orc_once_mutex_unlock ();
1684 ex->arrays[ORC_VAR_A2] = c;
1688 ORC_EXECUTOR_M (ex) = m;
1689 ex->arrays[ORC_VAR_D1] = d1;
1690 ex->params[ORC_VAR_D1] = d1_stride;
1691 ex->arrays[ORC_VAR_S1] = (void *) s1;
1692 ex->params[ORC_VAR_S1] = s1_stride;
1693 ex->params[ORC_VAR_P1] = p1;
1701 /* compositor_orc_blend_u16_swap */
1704 compositor_orc_blend_u16_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
1705 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1709 orc_union16 *ORC_RESTRICT ptr0;
1710 const orc_union16 *ORC_RESTRICT ptr4;
1726 for (j = 0; j < m; j++) {
1727 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1728 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1733 for (i = 0; i < n; i++) {
1737 var39.i = ORC_SWAP_W (var35.i);
1739 var40.i = (orc_uint16) var39.i;
1743 var41.i = ORC_SWAP_W (var36.i);
1745 var42.i = (orc_uint16) var41.i;
1747 var43.i = ((orc_uint32) var42.i) - ((orc_uint32) var40.i);
1749 var44.i = (((orc_uint32) var43.i) * ((orc_uint32) var37.i)) & 0xffffffff;
1751 var45.i = ((orc_uint32) var40.i) << 16;
1753 var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var44.i);
1755 var47.i = ((orc_uint32) var46.i) >> 16;
1757 var48.i = ORC_CLAMP_UW (var47.i);
1759 var38.i = ORC_SWAP_W (var48.i);
1769 _backup_compositor_orc_blend_u16_swap (OrcExecutor * ORC_RESTRICT ex)
1774 int m = ex->params[ORC_VAR_A1];
1775 orc_union16 *ORC_RESTRICT ptr0;
1776 const orc_union16 *ORC_RESTRICT ptr4;
1792 for (j = 0; j < m; j++) {
1793 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
1794 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
1797 var37.i = ex->params[24];
1799 for (i = 0; i < n; i++) {
1803 var39.i = ORC_SWAP_W (var35.i);
1805 var40.i = (orc_uint16) var39.i;
1809 var41.i = ORC_SWAP_W (var36.i);
1811 var42.i = (orc_uint16) var41.i;
1813 var43.i = ((orc_uint32) var42.i) - ((orc_uint32) var40.i);
1815 var44.i = (((orc_uint32) var43.i) * ((orc_uint32) var37.i)) & 0xffffffff;
1817 var45.i = ((orc_uint32) var40.i) << 16;
1819 var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var44.i);
1821 var47.i = ((orc_uint32) var46.i) >> 16;
1823 var48.i = ORC_CLAMP_UW (var47.i);
1825 var38.i = ORC_SWAP_W (var48.i);
1834 compositor_orc_blend_u16_swap (guint8 * ORC_RESTRICT d1, int d1_stride,
1835 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1837 OrcExecutor _ex, *ex = &_ex;
1838 static volatile int p_inited = 0;
1839 static OrcCode *c = 0;
1840 void (*func) (OrcExecutor *);
1843 orc_once_mutex_lock ();
1848 static const orc_uint8 bc[] = {
1849 1, 7, 9, 29, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
1850 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 49, 54, 95, 115, 119, 97,
1851 112, 11, 2, 2, 12, 2, 2, 14, 1, 16, 0, 0, 0, 16, 2, 20,
1852 4, 20, 4, 20, 2, 183, 34, 0, 154, 32, 34, 183, 34, 4, 154, 33,
1853 34, 129, 33, 33, 32, 120, 33, 33, 24, 124, 32, 32, 16, 103, 33, 32,
1854 33, 126, 33, 33, 16, 166, 34, 33, 183, 0, 34, 2, 0,
1856 p = orc_program_new_from_static_bytecode (bc);
1857 orc_program_set_backup_function (p,
1858 _backup_compositor_orc_blend_u16_swap);
1860 p = orc_program_new ();
1861 orc_program_set_2d (p);
1862 orc_program_set_name (p, "compositor_orc_blend_u16_swap");
1863 orc_program_set_backup_function (p,
1864 _backup_compositor_orc_blend_u16_swap);
1865 orc_program_add_destination (p, 2, "d1");
1866 orc_program_add_source (p, 2, "s1");
1867 orc_program_add_constant (p, 1, 0x00000010, "c1");
1868 orc_program_add_parameter (p, 2, "p1");
1869 orc_program_add_temporary (p, 4, "t1");
1870 orc_program_add_temporary (p, 4, "t2");
1871 orc_program_add_temporary (p, 2, "t3");
1873 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_D1, ORC_VAR_D1,
1875 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
1877 orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
1879 orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_D1,
1881 orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
1883 orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
1885 orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1887 orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
1889 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1891 orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_T3, ORC_VAR_T2,
1892 ORC_VAR_D1, ORC_VAR_D1);
1893 orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
1897 orc_program_compile (p);
1898 c = orc_program_take_code (p);
1899 orc_program_free (p);
1902 orc_once_mutex_unlock ();
1904 ex->arrays[ORC_VAR_A2] = c;
1908 ORC_EXECUTOR_M (ex) = m;
1909 ex->arrays[ORC_VAR_D1] = d1;
1910 ex->params[ORC_VAR_D1] = d1_stride;
1911 ex->arrays[ORC_VAR_S1] = (void *) s1;
1912 ex->params[ORC_VAR_S1] = s1_stride;
1913 ex->params[ORC_VAR_P1] = p1;
1921 /* compositor_orc_blend_argb */
1924 compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
1925 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
1929 orc_union32 *ORC_RESTRICT ptr0;
1930 const orc_union32 *ORC_RESTRICT ptr4;
1932 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
1933 volatile orc_union64 var40;
1937 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
1938 volatile orc_union32 var41;
1960 for (j = 0; j < m; j++) {
1961 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
1962 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
1970 var40.x4[0] = 0x000000ff; /* 255 or 1.25987e-321f */
1971 var40.x4[1] = 0x000000ff; /* 255 or 1.25987e-321f */
1972 var40.x4[2] = 0x000000ff; /* 255 or 1.25987e-321f */
1973 var40.x4[3] = 0x000000ff; /* 255 or 1.25987e-321f */
1975 var41.i = 0x000000ff; /* 255 or 1.25987e-321f */
1977 for (i = 0; i < n; i++) {
1986 ((((orc_uint32) var44) & 0xff) << 24) | ((((orc_uint32) var44) & 0xff)
1987 << 16) | ((((orc_uint32) var44) & 0xff) << 8) | (((orc_uint32) var44)
1990 var46.x4[0] = (orc_uint8) var45.x4[0];
1991 var46.x4[1] = (orc_uint8) var45.x4[1];
1992 var46.x4[2] = (orc_uint8) var45.x4[2];
1993 var46.x4[3] = (orc_uint8) var45.x4[3];
1995 var47.x4[0] = (var46.x4[0] * var39.x4[0]) & 0xffff;
1996 var47.x4[1] = (var46.x4[1] * var39.x4[1]) & 0xffff;
1997 var47.x4[2] = (var46.x4[2] * var39.x4[2]) & 0xffff;
1998 var47.x4[3] = (var46.x4[3] * var39.x4[3]) & 0xffff;
2001 ((orc_uint16) (((orc_uint16) (var47.x4[0] + 128)) +
2002 (((orc_uint16) (var47.x4[0] + 128)) >> 8))) >> 8;
2004 ((orc_uint16) (((orc_uint16) (var47.x4[1] + 128)) +
2005 (((orc_uint16) (var47.x4[1] + 128)) >> 8))) >> 8;
2007 ((orc_uint16) (((orc_uint16) (var47.x4[2] + 128)) +
2008 (((orc_uint16) (var47.x4[2] + 128)) >> 8))) >> 8;
2010 ((orc_uint16) (((orc_uint16) (var47.x4[3] + 128)) +
2011 (((orc_uint16) (var47.x4[3] + 128)) >> 8))) >> 8;
2013 var49.x4[0] = (orc_uint8) var42.x4[0];
2014 var49.x4[1] = (orc_uint8) var42.x4[1];
2015 var49.x4[2] = (orc_uint8) var42.x4[2];
2016 var49.x4[3] = (orc_uint8) var42.x4[3];
2018 var50.x4[0] = (var49.x4[0] * var48.x4[0]) & 0xffff;
2019 var50.x4[1] = (var49.x4[1] * var48.x4[1]) & 0xffff;
2020 var50.x4[2] = (var49.x4[2] * var48.x4[2]) & 0xffff;
2021 var50.x4[3] = (var49.x4[3] * var48.x4[3]) & 0xffff;
2023 var51.x4[0] = var40.x4[0] - var48.x4[0];
2024 var51.x4[1] = var40.x4[1] - var48.x4[1];
2025 var51.x4[2] = var40.x4[2] - var48.x4[2];
2026 var51.x4[3] = var40.x4[3] - var48.x4[3];
2030 var53.x4[0] = (orc_uint8) var52.x4[0];
2031 var53.x4[1] = (orc_uint8) var52.x4[1];
2032 var53.x4[2] = (orc_uint8) var52.x4[2];
2033 var53.x4[3] = (orc_uint8) var52.x4[3];
2035 var54.x4[0] = (var53.x4[0] * var51.x4[0]) & 0xffff;
2036 var54.x4[1] = (var53.x4[1] * var51.x4[1]) & 0xffff;
2037 var54.x4[2] = (var53.x4[2] * var51.x4[2]) & 0xffff;
2038 var54.x4[3] = (var53.x4[3] * var51.x4[3]) & 0xffff;
2040 var55.x4[0] = var54.x4[0] + var50.x4[0];
2041 var55.x4[1] = var54.x4[1] + var50.x4[1];
2042 var55.x4[2] = var54.x4[2] + var50.x4[2];
2043 var55.x4[3] = var54.x4[3] + var50.x4[3];
2046 ((orc_uint16) (((orc_uint16) (var55.x4[0] + 128)) +
2047 (((orc_uint16) (var55.x4[0] + 128)) >> 8))) >> 8;
2049 ((orc_uint16) (((orc_uint16) (var55.x4[1] + 128)) +
2050 (((orc_uint16) (var55.x4[1] + 128)) >> 8))) >> 8;
2052 ((orc_uint16) (((orc_uint16) (var55.x4[2] + 128)) +
2053 (((orc_uint16) (var55.x4[2] + 128)) >> 8))) >> 8;
2055 ((orc_uint16) (((orc_uint16) (var55.x4[3] + 128)) +
2056 (((orc_uint16) (var55.x4[3] + 128)) >> 8))) >> 8;
2058 var57.x4[0] = var56.x4[0];
2059 var57.x4[1] = var56.x4[1];
2060 var57.x4[2] = var56.x4[2];
2061 var57.x4[3] = var56.x4[3];
2063 var58.i = var57.i | var41.i;
2073 _backup_compositor_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex)
2078 int m = ex->params[ORC_VAR_A1];
2079 orc_union32 *ORC_RESTRICT ptr0;
2080 const orc_union32 *ORC_RESTRICT ptr4;
2082 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2083 volatile orc_union64 var40;
2087 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2088 volatile orc_union32 var41;
2110 for (j = 0; j < m; j++) {
2111 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2112 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2115 var39.x4[0] = ex->params[24];
2116 var39.x4[1] = ex->params[24];
2117 var39.x4[2] = ex->params[24];
2118 var39.x4[3] = ex->params[24];
2120 var40.x4[0] = 0x000000ff; /* 255 or 1.25987e-321f */
2121 var40.x4[1] = 0x000000ff; /* 255 or 1.25987e-321f */
2122 var40.x4[2] = 0x000000ff; /* 255 or 1.25987e-321f */
2123 var40.x4[3] = 0x000000ff; /* 255 or 1.25987e-321f */
2125 var41.i = 0x000000ff; /* 255 or 1.25987e-321f */
2127 for (i = 0; i < n; i++) {
2136 ((((orc_uint32) var44) & 0xff) << 24) | ((((orc_uint32) var44) & 0xff)
2137 << 16) | ((((orc_uint32) var44) & 0xff) << 8) | (((orc_uint32) var44)
2140 var46.x4[0] = (orc_uint8) var45.x4[0];
2141 var46.x4[1] = (orc_uint8) var45.x4[1];
2142 var46.x4[2] = (orc_uint8) var45.x4[2];
2143 var46.x4[3] = (orc_uint8) var45.x4[3];
2145 var47.x4[0] = (var46.x4[0] * var39.x4[0]) & 0xffff;
2146 var47.x4[1] = (var46.x4[1] * var39.x4[1]) & 0xffff;
2147 var47.x4[2] = (var46.x4[2] * var39.x4[2]) & 0xffff;
2148 var47.x4[3] = (var46.x4[3] * var39.x4[3]) & 0xffff;
2151 ((orc_uint16) (((orc_uint16) (var47.x4[0] + 128)) +
2152 (((orc_uint16) (var47.x4[0] + 128)) >> 8))) >> 8;
2154 ((orc_uint16) (((orc_uint16) (var47.x4[1] + 128)) +
2155 (((orc_uint16) (var47.x4[1] + 128)) >> 8))) >> 8;
2157 ((orc_uint16) (((orc_uint16) (var47.x4[2] + 128)) +
2158 (((orc_uint16) (var47.x4[2] + 128)) >> 8))) >> 8;
2160 ((orc_uint16) (((orc_uint16) (var47.x4[3] + 128)) +
2161 (((orc_uint16) (var47.x4[3] + 128)) >> 8))) >> 8;
2163 var49.x4[0] = (orc_uint8) var42.x4[0];
2164 var49.x4[1] = (orc_uint8) var42.x4[1];
2165 var49.x4[2] = (orc_uint8) var42.x4[2];
2166 var49.x4[3] = (orc_uint8) var42.x4[3];
2168 var50.x4[0] = (var49.x4[0] * var48.x4[0]) & 0xffff;
2169 var50.x4[1] = (var49.x4[1] * var48.x4[1]) & 0xffff;
2170 var50.x4[2] = (var49.x4[2] * var48.x4[2]) & 0xffff;
2171 var50.x4[3] = (var49.x4[3] * var48.x4[3]) & 0xffff;
2173 var51.x4[0] = var40.x4[0] - var48.x4[0];
2174 var51.x4[1] = var40.x4[1] - var48.x4[1];
2175 var51.x4[2] = var40.x4[2] - var48.x4[2];
2176 var51.x4[3] = var40.x4[3] - var48.x4[3];
2180 var53.x4[0] = (orc_uint8) var52.x4[0];
2181 var53.x4[1] = (orc_uint8) var52.x4[1];
2182 var53.x4[2] = (orc_uint8) var52.x4[2];
2183 var53.x4[3] = (orc_uint8) var52.x4[3];
2185 var54.x4[0] = (var53.x4[0] * var51.x4[0]) & 0xffff;
2186 var54.x4[1] = (var53.x4[1] * var51.x4[1]) & 0xffff;
2187 var54.x4[2] = (var53.x4[2] * var51.x4[2]) & 0xffff;
2188 var54.x4[3] = (var53.x4[3] * var51.x4[3]) & 0xffff;
2190 var55.x4[0] = var54.x4[0] + var50.x4[0];
2191 var55.x4[1] = var54.x4[1] + var50.x4[1];
2192 var55.x4[2] = var54.x4[2] + var50.x4[2];
2193 var55.x4[3] = var54.x4[3] + var50.x4[3];
2196 ((orc_uint16) (((orc_uint16) (var55.x4[0] + 128)) +
2197 (((orc_uint16) (var55.x4[0] + 128)) >> 8))) >> 8;
2199 ((orc_uint16) (((orc_uint16) (var55.x4[1] + 128)) +
2200 (((orc_uint16) (var55.x4[1] + 128)) >> 8))) >> 8;
2202 ((orc_uint16) (((orc_uint16) (var55.x4[2] + 128)) +
2203 (((orc_uint16) (var55.x4[2] + 128)) >> 8))) >> 8;
2205 ((orc_uint16) (((orc_uint16) (var55.x4[3] + 128)) +
2206 (((orc_uint16) (var55.x4[3] + 128)) >> 8))) >> 8;
2208 var57.x4[0] = var56.x4[0];
2209 var57.x4[1] = var56.x4[1];
2210 var57.x4[2] = var56.x4[2];
2211 var57.x4[3] = var56.x4[3];
2213 var58.i = var57.i | var41.i;
2222 compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
2223 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
2225 OrcExecutor _ex, *ex = &_ex;
2226 static volatile int p_inited = 0;
2227 static OrcCode *c = 0;
2228 void (*func) (OrcExecutor *);
2231 orc_once_mutex_lock ();
2236 static const orc_uint8 bc[] = {
2237 1, 7, 9, 25, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
2238 114, 99, 95, 98, 108, 101, 110, 100, 95, 97, 114, 103, 98, 11, 4, 4,
2239 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 2, 255, 0, 0, 0, 16,
2240 2, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8, 113,
2241 32, 4, 163, 33, 32, 157, 34, 33, 152, 35, 34, 21, 2, 150, 38, 35,
2242 21, 2, 89, 38, 38, 24, 21, 2, 80, 38, 38, 21, 2, 150, 37, 32,
2243 21, 2, 89, 37, 37, 38, 21, 2, 98, 38, 17, 38, 113, 32, 0, 21,
2244 2, 150, 36, 32, 21, 2, 89, 36, 36, 38, 21, 2, 70, 36, 36, 37,
2245 21, 2, 80, 36, 36, 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0,
2248 p = orc_program_new_from_static_bytecode (bc);
2249 orc_program_set_backup_function (p, _backup_compositor_orc_blend_argb);
2251 p = orc_program_new ();
2252 orc_program_set_2d (p);
2253 orc_program_set_name (p, "compositor_orc_blend_argb");
2254 orc_program_set_backup_function (p, _backup_compositor_orc_blend_argb);
2255 orc_program_add_destination (p, 4, "d1");
2256 orc_program_add_source (p, 4, "s1");
2257 orc_program_add_constant (p, 4, 0x000000ff, "c1");
2258 orc_program_add_constant (p, 2, 0x000000ff, "c2");
2259 orc_program_add_parameter (p, 2, "p1");
2260 orc_program_add_temporary (p, 4, "t1");
2261 orc_program_add_temporary (p, 2, "t2");
2262 orc_program_add_temporary (p, 1, "t3");
2263 orc_program_add_temporary (p, 4, "t4");
2264 orc_program_add_temporary (p, 8, "t5");
2265 orc_program_add_temporary (p, 8, "t6");
2266 orc_program_add_temporary (p, 8, "t7");
2268 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2270 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2272 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
2274 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
2276 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
2278 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_P1,
2280 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
2282 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
2284 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
2286 orc_program_append_2 (p, "subw", 2, ORC_VAR_T7, ORC_VAR_C2, ORC_VAR_T7,
2288 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2290 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
2292 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T7,
2294 orc_program_append_2 (p, "addw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T6,
2296 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_D1,
2298 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1,
2300 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2302 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2306 orc_program_compile (p);
2307 c = orc_program_take_code (p);
2308 orc_program_free (p);
2311 orc_once_mutex_unlock ();
2313 ex->arrays[ORC_VAR_A2] = c;
2317 ORC_EXECUTOR_M (ex) = m;
2318 ex->arrays[ORC_VAR_D1] = d1;
2319 ex->params[ORC_VAR_D1] = d1_stride;
2320 ex->arrays[ORC_VAR_S1] = (void *) s1;
2321 ex->params[ORC_VAR_S1] = s1_stride;
2322 ex->params[ORC_VAR_P1] = p1;
2330 /* compositor_orc_source_argb */
2333 compositor_orc_source_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
2334 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
2338 orc_union32 *ORC_RESTRICT ptr0;
2339 const orc_union32 *ORC_RESTRICT ptr4;
2341 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2342 volatile orc_union32 var39;
2346 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2347 volatile orc_union32 var40;
2363 for (j = 0; j < m; j++) {
2364 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2365 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2373 var39.i = 0xffffff00; /* -256 or 2.122e-314f */
2375 var40.i = 0x000000ff; /* 255 or 1.25987e-321f */
2377 for (i = 0; i < n; i++) {
2386 ((((orc_uint32) var43) & 0xff) << 24) | ((((orc_uint32) var43) & 0xff)
2387 << 16) | ((((orc_uint32) var43) & 0xff) << 8) | (((orc_uint32) var43)
2390 var45.x4[0] = (orc_uint8) var44.x4[0];
2391 var45.x4[1] = (orc_uint8) var44.x4[1];
2392 var45.x4[2] = (orc_uint8) var44.x4[2];
2393 var45.x4[3] = (orc_uint8) var44.x4[3];
2395 var46.x4[0] = (var45.x4[0] * var38.x4[0]) & 0xffff;
2396 var46.x4[1] = (var45.x4[1] * var38.x4[1]) & 0xffff;
2397 var46.x4[2] = (var45.x4[2] * var38.x4[2]) & 0xffff;
2398 var46.x4[3] = (var45.x4[3] * var38.x4[3]) & 0xffff;
2401 ((orc_uint16) (((orc_uint16) (var46.x4[0] + 128)) +
2402 (((orc_uint16) (var46.x4[0] + 128)) >> 8))) >> 8;
2404 ((orc_uint16) (((orc_uint16) (var46.x4[1] + 128)) +
2405 (((orc_uint16) (var46.x4[1] + 128)) >> 8))) >> 8;
2407 ((orc_uint16) (((orc_uint16) (var46.x4[2] + 128)) +
2408 (((orc_uint16) (var46.x4[2] + 128)) >> 8))) >> 8;
2410 ((orc_uint16) (((orc_uint16) (var46.x4[3] + 128)) +
2411 (((orc_uint16) (var46.x4[3] + 128)) >> 8))) >> 8;
2413 var48.i = var41.i & var39.i;
2415 var49.x4[0] = var47.x4[0];
2416 var49.x4[1] = var47.x4[1];
2417 var49.x4[2] = var47.x4[2];
2418 var49.x4[3] = var47.x4[3];
2420 var50.i = var49.i & var40.i;
2422 var51.i = var48.i | var50.i;
2432 _backup_compositor_orc_source_argb (OrcExecutor * ORC_RESTRICT ex)
2437 int m = ex->params[ORC_VAR_A1];
2438 orc_union32 *ORC_RESTRICT ptr0;
2439 const orc_union32 *ORC_RESTRICT ptr4;
2441 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2442 volatile orc_union32 var39;
2446 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2447 volatile orc_union32 var40;
2463 for (j = 0; j < m; j++) {
2464 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2465 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2468 var38.x4[0] = ex->params[24];
2469 var38.x4[1] = ex->params[24];
2470 var38.x4[2] = ex->params[24];
2471 var38.x4[3] = ex->params[24];
2473 var39.i = 0xffffff00; /* -256 or 2.122e-314f */
2475 var40.i = 0x000000ff; /* 255 or 1.25987e-321f */
2477 for (i = 0; i < n; i++) {
2486 ((((orc_uint32) var43) & 0xff) << 24) | ((((orc_uint32) var43) & 0xff)
2487 << 16) | ((((orc_uint32) var43) & 0xff) << 8) | (((orc_uint32) var43)
2490 var45.x4[0] = (orc_uint8) var44.x4[0];
2491 var45.x4[1] = (orc_uint8) var44.x4[1];
2492 var45.x4[2] = (orc_uint8) var44.x4[2];
2493 var45.x4[3] = (orc_uint8) var44.x4[3];
2495 var46.x4[0] = (var45.x4[0] * var38.x4[0]) & 0xffff;
2496 var46.x4[1] = (var45.x4[1] * var38.x4[1]) & 0xffff;
2497 var46.x4[2] = (var45.x4[2] * var38.x4[2]) & 0xffff;
2498 var46.x4[3] = (var45.x4[3] * var38.x4[3]) & 0xffff;
2501 ((orc_uint16) (((orc_uint16) (var46.x4[0] + 128)) +
2502 (((orc_uint16) (var46.x4[0] + 128)) >> 8))) >> 8;
2504 ((orc_uint16) (((orc_uint16) (var46.x4[1] + 128)) +
2505 (((orc_uint16) (var46.x4[1] + 128)) >> 8))) >> 8;
2507 ((orc_uint16) (((orc_uint16) (var46.x4[2] + 128)) +
2508 (((orc_uint16) (var46.x4[2] + 128)) >> 8))) >> 8;
2510 ((orc_uint16) (((orc_uint16) (var46.x4[3] + 128)) +
2511 (((orc_uint16) (var46.x4[3] + 128)) >> 8))) >> 8;
2513 var48.i = var41.i & var39.i;
2515 var49.x4[0] = var47.x4[0];
2516 var49.x4[1] = var47.x4[1];
2517 var49.x4[2] = var47.x4[2];
2518 var49.x4[3] = var47.x4[3];
2520 var50.i = var49.i & var40.i;
2522 var51.i = var48.i | var50.i;
2531 compositor_orc_source_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
2532 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
2534 OrcExecutor _ex, *ex = &_ex;
2535 static volatile int p_inited = 0;
2536 static OrcCode *c = 0;
2537 void (*func) (OrcExecutor *);
2540 orc_once_mutex_lock ();
2545 static const orc_uint8 bc[] = {
2546 1, 7, 9, 26, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
2547 114, 99, 95, 115, 111, 117, 114, 99, 101, 95, 97, 114, 103, 98, 11, 4,
2548 4, 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 4, 0, 255, 255, 255,
2549 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 113, 32,
2550 4, 163, 34, 32, 157, 35, 34, 152, 36, 35, 21, 2, 150, 37, 36, 21,
2551 2, 89, 37, 37, 24, 21, 2, 80, 37, 37, 106, 32, 32, 17, 21, 2,
2552 157, 33, 37, 106, 33, 33, 16, 123, 32, 32, 33, 128, 0, 32, 2, 0,
2555 p = orc_program_new_from_static_bytecode (bc);
2556 orc_program_set_backup_function (p, _backup_compositor_orc_source_argb);
2558 p = orc_program_new ();
2559 orc_program_set_2d (p);
2560 orc_program_set_name (p, "compositor_orc_source_argb");
2561 orc_program_set_backup_function (p, _backup_compositor_orc_source_argb);
2562 orc_program_add_destination (p, 4, "d1");
2563 orc_program_add_source (p, 4, "s1");
2564 orc_program_add_constant (p, 4, 0x000000ff, "c1");
2565 orc_program_add_constant (p, 4, 0xffffff00, "c2");
2566 orc_program_add_parameter (p, 2, "p1");
2567 orc_program_add_temporary (p, 4, "t1");
2568 orc_program_add_temporary (p, 4, "t2");
2569 orc_program_add_temporary (p, 2, "t3");
2570 orc_program_add_temporary (p, 1, "t4");
2571 orc_program_add_temporary (p, 4, "t5");
2572 orc_program_add_temporary (p, 8, "t6");
2574 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2576 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_D1,
2578 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
2580 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
2582 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_D1,
2584 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_P1,
2586 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
2588 orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
2590 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T2, ORC_VAR_T6, ORC_VAR_D1,
2592 orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
2594 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
2596 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2600 orc_program_compile (p);
2601 c = orc_program_take_code (p);
2602 orc_program_free (p);
2605 orc_once_mutex_unlock ();
2607 ex->arrays[ORC_VAR_A2] = c;
2611 ORC_EXECUTOR_M (ex) = m;
2612 ex->arrays[ORC_VAR_D1] = d1;
2613 ex->params[ORC_VAR_D1] = d1_stride;
2614 ex->arrays[ORC_VAR_S1] = (void *) s1;
2615 ex->params[ORC_VAR_S1] = s1_stride;
2616 ex->params[ORC_VAR_P1] = p1;
2624 /* compositor_orc_blend_bgra */
2627 compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
2628 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
2632 orc_union32 *ORC_RESTRICT ptr0;
2633 const orc_union32 *ORC_RESTRICT ptr4;
2635 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2636 volatile orc_union64 var41;
2640 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2641 volatile orc_union32 var42;
2664 for (j = 0; j < m; j++) {
2665 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
2666 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
2674 var41.x4[0] = 0x000000ff; /* 255 or 1.25987e-321f */
2675 var41.x4[1] = 0x000000ff; /* 255 or 1.25987e-321f */
2676 var41.x4[2] = 0x000000ff; /* 255 or 1.25987e-321f */
2677 var41.x4[3] = 0x000000ff; /* 255 or 1.25987e-321f */
2679 var42.i = 0xff000000; /* -16777216 or 2.11371e-314f */
2681 for (i = 0; i < n; i++) {
2685 var44.i = ((orc_uint32) var43.i) >> 24;
2692 ((((orc_uint32) var46) & 0xff) << 24) | ((((orc_uint32) var46) & 0xff)
2693 << 16) | ((((orc_uint32) var46) & 0xff) << 8) | (((orc_uint32) var46)
2696 var48.x4[0] = (orc_uint8) var47.x4[0];
2697 var48.x4[1] = (orc_uint8) var47.x4[1];
2698 var48.x4[2] = (orc_uint8) var47.x4[2];
2699 var48.x4[3] = (orc_uint8) var47.x4[3];
2701 var49.x4[0] = (var48.x4[0] * var40.x4[0]) & 0xffff;
2702 var49.x4[1] = (var48.x4[1] * var40.x4[1]) & 0xffff;
2703 var49.x4[2] = (var48.x4[2] * var40.x4[2]) & 0xffff;
2704 var49.x4[3] = (var48.x4[3] * var40.x4[3]) & 0xffff;
2707 ((orc_uint16) (((orc_uint16) (var49.x4[0] + 128)) +
2708 (((orc_uint16) (var49.x4[0] + 128)) >> 8))) >> 8;
2710 ((orc_uint16) (((orc_uint16) (var49.x4[1] + 128)) +
2711 (((orc_uint16) (var49.x4[1] + 128)) >> 8))) >> 8;
2713 ((orc_uint16) (((orc_uint16) (var49.x4[2] + 128)) +
2714 (((orc_uint16) (var49.x4[2] + 128)) >> 8))) >> 8;
2716 ((orc_uint16) (((orc_uint16) (var49.x4[3] + 128)) +
2717 (((orc_uint16) (var49.x4[3] + 128)) >> 8))) >> 8;
2719 var51.x4[0] = (orc_uint8) var43.x4[0];
2720 var51.x4[1] = (orc_uint8) var43.x4[1];
2721 var51.x4[2] = (orc_uint8) var43.x4[2];
2722 var51.x4[3] = (orc_uint8) var43.x4[3];
2724 var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
2725 var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
2726 var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
2727 var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
2729 var53.x4[0] = var41.x4[0] - var50.x4[0];
2730 var53.x4[1] = var41.x4[1] - var50.x4[1];
2731 var53.x4[2] = var41.x4[2] - var50.x4[2];
2732 var53.x4[3] = var41.x4[3] - var50.x4[3];
2736 var55.x4[0] = (orc_uint8) var54.x4[0];
2737 var55.x4[1] = (orc_uint8) var54.x4[1];
2738 var55.x4[2] = (orc_uint8) var54.x4[2];
2739 var55.x4[3] = (orc_uint8) var54.x4[3];
2741 var56.x4[0] = (var55.x4[0] * var53.x4[0]) & 0xffff;
2742 var56.x4[1] = (var55.x4[1] * var53.x4[1]) & 0xffff;
2743 var56.x4[2] = (var55.x4[2] * var53.x4[2]) & 0xffff;
2744 var56.x4[3] = (var55.x4[3] * var53.x4[3]) & 0xffff;
2746 var57.x4[0] = var56.x4[0] + var52.x4[0];
2747 var57.x4[1] = var56.x4[1] + var52.x4[1];
2748 var57.x4[2] = var56.x4[2] + var52.x4[2];
2749 var57.x4[3] = var56.x4[3] + var52.x4[3];
2752 ((orc_uint16) (((orc_uint16) (var57.x4[0] + 128)) +
2753 (((orc_uint16) (var57.x4[0] + 128)) >> 8))) >> 8;
2755 ((orc_uint16) (((orc_uint16) (var57.x4[1] + 128)) +
2756 (((orc_uint16) (var57.x4[1] + 128)) >> 8))) >> 8;
2758 ((orc_uint16) (((orc_uint16) (var57.x4[2] + 128)) +
2759 (((orc_uint16) (var57.x4[2] + 128)) >> 8))) >> 8;
2761 ((orc_uint16) (((orc_uint16) (var57.x4[3] + 128)) +
2762 (((orc_uint16) (var57.x4[3] + 128)) >> 8))) >> 8;
2764 var59.x4[0] = var58.x4[0];
2765 var59.x4[1] = var58.x4[1];
2766 var59.x4[2] = var58.x4[2];
2767 var59.x4[3] = var58.x4[3];
2769 var60.i = var59.i | var42.i;
2779 _backup_compositor_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex)
2784 int m = ex->params[ORC_VAR_A1];
2785 orc_union32 *ORC_RESTRICT ptr0;
2786 const orc_union32 *ORC_RESTRICT ptr4;
2788 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2789 volatile orc_union64 var41;
2793 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
2794 volatile orc_union32 var42;
2817 for (j = 0; j < m; j++) {
2818 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
2819 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
2822 var40.x4[0] = ex->params[24];
2823 var40.x4[1] = ex->params[24];
2824 var40.x4[2] = ex->params[24];
2825 var40.x4[3] = ex->params[24];
2827 var41.x4[0] = 0x000000ff; /* 255 or 1.25987e-321f */
2828 var41.x4[1] = 0x000000ff; /* 255 or 1.25987e-321f */
2829 var41.x4[2] = 0x000000ff; /* 255 or 1.25987e-321f */
2830 var41.x4[3] = 0x000000ff; /* 255 or 1.25987e-321f */
2832 var42.i = 0xff000000; /* -16777216 or 2.11371e-314f */
2834 for (i = 0; i < n; i++) {
2838 var44.i = ((orc_uint32) var43.i) >> 24;
2845 ((((orc_uint32) var46) & 0xff) << 24) | ((((orc_uint32) var46) & 0xff)
2846 << 16) | ((((orc_uint32) var46) & 0xff) << 8) | (((orc_uint32) var46)
2849 var48.x4[0] = (orc_uint8) var47.x4[0];
2850 var48.x4[1] = (orc_uint8) var47.x4[1];
2851 var48.x4[2] = (orc_uint8) var47.x4[2];
2852 var48.x4[3] = (orc_uint8) var47.x4[3];
2854 var49.x4[0] = (var48.x4[0] * var40.x4[0]) & 0xffff;
2855 var49.x4[1] = (var48.x4[1] * var40.x4[1]) & 0xffff;
2856 var49.x4[2] = (var48.x4[2] * var40.x4[2]) & 0xffff;
2857 var49.x4[3] = (var48.x4[3] * var40.x4[3]) & 0xffff;
2860 ((orc_uint16) (((orc_uint16) (var49.x4[0] + 128)) +
2861 (((orc_uint16) (var49.x4[0] + 128)) >> 8))) >> 8;
2863 ((orc_uint16) (((orc_uint16) (var49.x4[1] + 128)) +
2864 (((orc_uint16) (var49.x4[1] + 128)) >> 8))) >> 8;
2866 ((orc_uint16) (((orc_uint16) (var49.x4[2] + 128)) +
2867 (((orc_uint16) (var49.x4[2] + 128)) >> 8))) >> 8;
2869 ((orc_uint16) (((orc_uint16) (var49.x4[3] + 128)) +
2870 (((orc_uint16) (var49.x4[3] + 128)) >> 8))) >> 8;
2872 var51.x4[0] = (orc_uint8) var43.x4[0];
2873 var51.x4[1] = (orc_uint8) var43.x4[1];
2874 var51.x4[2] = (orc_uint8) var43.x4[2];
2875 var51.x4[3] = (orc_uint8) var43.x4[3];
2877 var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
2878 var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
2879 var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
2880 var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
2882 var53.x4[0] = var41.x4[0] - var50.x4[0];
2883 var53.x4[1] = var41.x4[1] - var50.x4[1];
2884 var53.x4[2] = var41.x4[2] - var50.x4[2];
2885 var53.x4[3] = var41.x4[3] - var50.x4[3];
2889 var55.x4[0] = (orc_uint8) var54.x4[0];
2890 var55.x4[1] = (orc_uint8) var54.x4[1];
2891 var55.x4[2] = (orc_uint8) var54.x4[2];
2892 var55.x4[3] = (orc_uint8) var54.x4[3];
2894 var56.x4[0] = (var55.x4[0] * var53.x4[0]) & 0xffff;
2895 var56.x4[1] = (var55.x4[1] * var53.x4[1]) & 0xffff;
2896 var56.x4[2] = (var55.x4[2] * var53.x4[2]) & 0xffff;
2897 var56.x4[3] = (var55.x4[3] * var53.x4[3]) & 0xffff;
2899 var57.x4[0] = var56.x4[0] + var52.x4[0];
2900 var57.x4[1] = var56.x4[1] + var52.x4[1];
2901 var57.x4[2] = var56.x4[2] + var52.x4[2];
2902 var57.x4[3] = var56.x4[3] + var52.x4[3];
2905 ((orc_uint16) (((orc_uint16) (var57.x4[0] + 128)) +
2906 (((orc_uint16) (var57.x4[0] + 128)) >> 8))) >> 8;
2908 ((orc_uint16) (((orc_uint16) (var57.x4[1] + 128)) +
2909 (((orc_uint16) (var57.x4[1] + 128)) >> 8))) >> 8;
2911 ((orc_uint16) (((orc_uint16) (var57.x4[2] + 128)) +
2912 (((orc_uint16) (var57.x4[2] + 128)) >> 8))) >> 8;
2914 ((orc_uint16) (((orc_uint16) (var57.x4[3] + 128)) +
2915 (((orc_uint16) (var57.x4[3] + 128)) >> 8))) >> 8;
2917 var59.x4[0] = var58.x4[0];
2918 var59.x4[1] = var58.x4[1];
2919 var59.x4[2] = var58.x4[2];
2920 var59.x4[3] = var58.x4[3];
2922 var60.i = var59.i | var42.i;
2931 compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
2932 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
2934 OrcExecutor _ex, *ex = &_ex;
2935 static volatile int p_inited = 0;
2936 static OrcCode *c = 0;
2937 void (*func) (OrcExecutor *);
2940 orc_once_mutex_lock ();
2945 static const orc_uint8 bc[] = {
2946 1, 7, 9, 25, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
2947 114, 99, 95, 98, 108, 101, 110, 100, 95, 98, 103, 114, 97, 11, 4, 4,
2948 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0, 14,
2949 2, 255, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20,
2950 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 17, 163, 34,
2951 33, 157, 35, 34, 152, 36, 35, 21, 2, 150, 39, 36, 21, 2, 89, 39,
2952 39, 24, 21, 2, 80, 39, 39, 21, 2, 150, 38, 32, 21, 2, 89, 38,
2953 38, 39, 21, 2, 98, 39, 18, 39, 113, 32, 0, 21, 2, 150, 37, 32,
2954 21, 2, 89, 37, 37, 39, 21, 2, 70, 37, 37, 38, 21, 2, 80, 37,
2955 37, 21, 2, 157, 32, 37, 123, 32, 32, 16, 128, 0, 32, 2, 0,
2957 p = orc_program_new_from_static_bytecode (bc);
2958 orc_program_set_backup_function (p, _backup_compositor_orc_blend_bgra);
2960 p = orc_program_new ();
2961 orc_program_set_2d (p);
2962 orc_program_set_name (p, "compositor_orc_blend_bgra");
2963 orc_program_set_backup_function (p, _backup_compositor_orc_blend_bgra);
2964 orc_program_add_destination (p, 4, "d1");
2965 orc_program_add_source (p, 4, "s1");
2966 orc_program_add_constant (p, 4, 0xff000000, "c1");
2967 orc_program_add_constant (p, 4, 0x00000018, "c2");
2968 orc_program_add_constant (p, 2, 0x000000ff, "c3");
2969 orc_program_add_parameter (p, 2, "p1");
2970 orc_program_add_temporary (p, 4, "t1");
2971 orc_program_add_temporary (p, 4, "t2");
2972 orc_program_add_temporary (p, 2, "t3");
2973 orc_program_add_temporary (p, 1, "t4");
2974 orc_program_add_temporary (p, 4, "t5");
2975 orc_program_add_temporary (p, 8, "t6");
2976 orc_program_add_temporary (p, 8, "t7");
2977 orc_program_add_temporary (p, 8, "t8");
2979 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2981 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C2,
2983 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
2985 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
2987 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
2989 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
2991 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_P1,
2993 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_D1,
2995 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
2997 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
2999 orc_program_append_2 (p, "subw", 2, ORC_VAR_T8, ORC_VAR_C3, ORC_VAR_T8,
3001 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
3003 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
3005 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T8,
3007 orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
3009 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
3011 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_D1,
3013 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
3015 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3019 orc_program_compile (p);
3020 c = orc_program_take_code (p);
3021 orc_program_free (p);
3024 orc_once_mutex_unlock ();
3026 ex->arrays[ORC_VAR_A2] = c;
3030 ORC_EXECUTOR_M (ex) = m;
3031 ex->arrays[ORC_VAR_D1] = d1;
3032 ex->params[ORC_VAR_D1] = d1_stride;
3033 ex->arrays[ORC_VAR_S1] = (void *) s1;
3034 ex->params[ORC_VAR_S1] = s1_stride;
3035 ex->params[ORC_VAR_P1] = p1;
3043 /* compositor_orc_source_bgra */
3046 compositor_orc_source_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
3047 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
3051 orc_union32 *ORC_RESTRICT ptr0;
3052 const orc_union32 *ORC_RESTRICT ptr4;
3054 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3055 volatile orc_union32 var39;
3059 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3060 volatile orc_union32 var40;
3076 for (j = 0; j < m; j++) {
3077 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3078 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3086 var39.i = 0x00ffffff; /* 16777215 or 8.28905e-317f */
3088 var40.i = 0xff000000; /* -16777216 or 2.11371e-314f */
3090 for (i = 0; i < n; i++) {
3094 var42.i = ((orc_uint32) var41.i) >> 16;
3096 var43 = ((orc_uint16) var42.i) >> 8;
3099 ((((orc_uint32) var43) & 0xff) << 24) | ((((orc_uint32) var43) & 0xff)
3100 << 16) | ((((orc_uint32) var43) & 0xff) << 8) | (((orc_uint32) var43)
3103 var45.x4[0] = (orc_uint8) var44.x4[0];
3104 var45.x4[1] = (orc_uint8) var44.x4[1];
3105 var45.x4[2] = (orc_uint8) var44.x4[2];
3106 var45.x4[3] = (orc_uint8) var44.x4[3];
3108 var46.x4[0] = (var45.x4[0] * var38.x4[0]) & 0xffff;
3109 var46.x4[1] = (var45.x4[1] * var38.x4[1]) & 0xffff;
3110 var46.x4[2] = (var45.x4[2] * var38.x4[2]) & 0xffff;
3111 var46.x4[3] = (var45.x4[3] * var38.x4[3]) & 0xffff;
3114 ((orc_uint16) (((orc_uint16) (var46.x4[0] + 128)) +
3115 (((orc_uint16) (var46.x4[0] + 128)) >> 8))) >> 8;
3117 ((orc_uint16) (((orc_uint16) (var46.x4[1] + 128)) +
3118 (((orc_uint16) (var46.x4[1] + 128)) >> 8))) >> 8;
3120 ((orc_uint16) (((orc_uint16) (var46.x4[2] + 128)) +
3121 (((orc_uint16) (var46.x4[2] + 128)) >> 8))) >> 8;
3123 ((orc_uint16) (((orc_uint16) (var46.x4[3] + 128)) +
3124 (((orc_uint16) (var46.x4[3] + 128)) >> 8))) >> 8;
3126 var48.i = var41.i & var39.i;
3128 var49.x4[0] = var47.x4[0];
3129 var49.x4[1] = var47.x4[1];
3130 var49.x4[2] = var47.x4[2];
3131 var49.x4[3] = var47.x4[3];
3133 var50.i = var49.i & var40.i;
3135 var51.i = var48.i | var50.i;
3145 _backup_compositor_orc_source_bgra (OrcExecutor * ORC_RESTRICT ex)
3150 int m = ex->params[ORC_VAR_A1];
3151 orc_union32 *ORC_RESTRICT ptr0;
3152 const orc_union32 *ORC_RESTRICT ptr4;
3154 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3155 volatile orc_union32 var39;
3159 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3160 volatile orc_union32 var40;
3176 for (j = 0; j < m; j++) {
3177 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
3178 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
3181 var38.x4[0] = ex->params[24];
3182 var38.x4[1] = ex->params[24];
3183 var38.x4[2] = ex->params[24];
3184 var38.x4[3] = ex->params[24];
3186 var39.i = 0x00ffffff; /* 16777215 or 8.28905e-317f */
3188 var40.i = 0xff000000; /* -16777216 or 2.11371e-314f */
3190 for (i = 0; i < n; i++) {
3194 var42.i = ((orc_uint32) var41.i) >> 16;
3196 var43 = ((orc_uint16) var42.i) >> 8;
3199 ((((orc_uint32) var43) & 0xff) << 24) | ((((orc_uint32) var43) & 0xff)
3200 << 16) | ((((orc_uint32) var43) & 0xff) << 8) | (((orc_uint32) var43)
3203 var45.x4[0] = (orc_uint8) var44.x4[0];
3204 var45.x4[1] = (orc_uint8) var44.x4[1];
3205 var45.x4[2] = (orc_uint8) var44.x4[2];
3206 var45.x4[3] = (orc_uint8) var44.x4[3];
3208 var46.x4[0] = (var45.x4[0] * var38.x4[0]) & 0xffff;
3209 var46.x4[1] = (var45.x4[1] * var38.x4[1]) & 0xffff;
3210 var46.x4[2] = (var45.x4[2] * var38.x4[2]) & 0xffff;
3211 var46.x4[3] = (var45.x4[3] * var38.x4[3]) & 0xffff;
3214 ((orc_uint16) (((orc_uint16) (var46.x4[0] + 128)) +
3215 (((orc_uint16) (var46.x4[0] + 128)) >> 8))) >> 8;
3217 ((orc_uint16) (((orc_uint16) (var46.x4[1] + 128)) +
3218 (((orc_uint16) (var46.x4[1] + 128)) >> 8))) >> 8;
3220 ((orc_uint16) (((orc_uint16) (var46.x4[2] + 128)) +
3221 (((orc_uint16) (var46.x4[2] + 128)) >> 8))) >> 8;
3223 ((orc_uint16) (((orc_uint16) (var46.x4[3] + 128)) +
3224 (((orc_uint16) (var46.x4[3] + 128)) >> 8))) >> 8;
3226 var48.i = var41.i & var39.i;
3228 var49.x4[0] = var47.x4[0];
3229 var49.x4[1] = var47.x4[1];
3230 var49.x4[2] = var47.x4[2];
3231 var49.x4[3] = var47.x4[3];
3233 var50.i = var49.i & var40.i;
3235 var51.i = var48.i | var50.i;
3244 compositor_orc_source_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
3245 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
3247 OrcExecutor _ex, *ex = &_ex;
3248 static volatile int p_inited = 0;
3249 static OrcCode *c = 0;
3250 void (*func) (OrcExecutor *);
3253 orc_once_mutex_lock ();
3258 static const orc_uint8 bc[] = {
3259 1, 7, 9, 26, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
3260 114, 99, 95, 115, 111, 117, 114, 99, 101, 95, 98, 103, 114, 97, 11, 4,
3261 4, 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 255, 255, 255, 0,
3262 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 113, 32,
3263 4, 164, 34, 32, 158, 35, 34, 152, 36, 35, 21, 2, 150, 37, 36, 21,
3264 2, 89, 37, 37, 24, 21, 2, 80, 37, 37, 106, 32, 32, 17, 21, 2,
3265 157, 33, 37, 106, 33, 33, 16, 123, 32, 32, 33, 128, 0, 32, 2, 0,
3268 p = orc_program_new_from_static_bytecode (bc);
3269 orc_program_set_backup_function (p, _backup_compositor_orc_source_bgra);
3271 p = orc_program_new ();
3272 orc_program_set_2d (p);
3273 orc_program_set_name (p, "compositor_orc_source_bgra");
3274 orc_program_set_backup_function (p, _backup_compositor_orc_source_bgra);
3275 orc_program_add_destination (p, 4, "d1");
3276 orc_program_add_source (p, 4, "s1");
3277 orc_program_add_constant (p, 4, 0xff000000, "c1");
3278 orc_program_add_constant (p, 4, 0x00ffffff, "c2");
3279 orc_program_add_parameter (p, 2, "p1");
3280 orc_program_add_temporary (p, 4, "t1");
3281 orc_program_add_temporary (p, 4, "t2");
3282 orc_program_add_temporary (p, 2, "t3");
3283 orc_program_add_temporary (p, 1, "t4");
3284 orc_program_add_temporary (p, 4, "t5");
3285 orc_program_add_temporary (p, 8, "t6");
3287 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3289 orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_D1,
3291 orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
3293 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
3295 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_D1,
3297 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_P1,
3299 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
3301 orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
3303 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T2, ORC_VAR_T6, ORC_VAR_D1,
3305 orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
3307 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
3309 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3313 orc_program_compile (p);
3314 c = orc_program_take_code (p);
3315 orc_program_free (p);
3318 orc_once_mutex_unlock ();
3320 ex->arrays[ORC_VAR_A2] = c;
3324 ORC_EXECUTOR_M (ex) = m;
3325 ex->arrays[ORC_VAR_D1] = d1;
3326 ex->params[ORC_VAR_D1] = d1_stride;
3327 ex->arrays[ORC_VAR_S1] = (void *) s1;
3328 ex->params[ORC_VAR_S1] = s1_stride;
3329 ex->params[ORC_VAR_P1] = p1;
3337 /* compositor_orc_overlay_argb */
3340 compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
3341 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
3345 orc_union32 *ORC_RESTRICT ptr0;
3346 const orc_union32 *ORC_RESTRICT ptr4;
3348 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3349 volatile orc_union32 var42;
3353 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3354 volatile orc_union32 var43;
3388 for (j = 0; j < m; j++) {
3389 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3390 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3398 var53.i = 0xffffffff; /* -1 or 2.122e-314f */
3400 var42.i = 0xffffff00; /* -256 or 2.122e-314f */
3402 var43.i = 0x000000ff; /* 255 or 1.25987e-321f */
3404 for (i = 0; i < n; i++) {
3413 ((((orc_uint32) var46) & 0xff) << 24) | ((((orc_uint32) var46) & 0xff)
3414 << 16) | ((((orc_uint32) var46) & 0xff) << 8) | (((orc_uint32) var46)
3417 var48.x4[0] = (orc_uint8) var47.x4[0];
3418 var48.x4[1] = (orc_uint8) var47.x4[1];
3419 var48.x4[2] = (orc_uint8) var47.x4[2];
3420 var48.x4[3] = (orc_uint8) var47.x4[3];
3422 var49.x4[0] = (var48.x4[0] * var41.x4[0]) & 0xffff;
3423 var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
3424 var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
3425 var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
3428 ((orc_uint16) (((orc_uint16) (var49.x4[0] + 128)) +
3429 (((orc_uint16) (var49.x4[0] + 128)) >> 8))) >> 8;
3431 ((orc_uint16) (((orc_uint16) (var49.x4[1] + 128)) +
3432 (((orc_uint16) (var49.x4[1] + 128)) >> 8))) >> 8;
3434 ((orc_uint16) (((orc_uint16) (var49.x4[2] + 128)) +
3435 (((orc_uint16) (var49.x4[2] + 128)) >> 8))) >> 8;
3437 ((orc_uint16) (((orc_uint16) (var49.x4[3] + 128)) +
3438 (((orc_uint16) (var49.x4[3] + 128)) >> 8))) >> 8;
3440 var51.x4[0] = (orc_uint8) var44.x4[0];
3441 var51.x4[1] = (orc_uint8) var44.x4[1];
3442 var51.x4[2] = (orc_uint8) var44.x4[2];
3443 var51.x4[3] = (orc_uint8) var44.x4[3];
3445 var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
3446 var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
3447 var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
3448 var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
3450 var54.x4[0] = (orc_uint8) var53.x4[0];
3451 var54.x4[1] = (orc_uint8) var53.x4[1];
3452 var54.x4[2] = (orc_uint8) var53.x4[2];
3453 var54.x4[3] = (orc_uint8) var53.x4[3];
3455 var55.x4[0] = var54.x4[0] - var50.x4[0];
3456 var55.x4[1] = var54.x4[1] - var50.x4[1];
3457 var55.x4[2] = var54.x4[2] - var50.x4[2];
3458 var55.x4[3] = var54.x4[3] - var50.x4[3];
3467 ((((orc_uint32) var58) & 0xff) << 24) | ((((orc_uint32) var58) & 0xff)
3468 << 16) | ((((orc_uint32) var58) & 0xff) << 8) | (((orc_uint32) var58)
3471 var60.x4[0] = (orc_uint8) var59.x4[0];
3472 var60.x4[1] = (orc_uint8) var59.x4[1];
3473 var60.x4[2] = (orc_uint8) var59.x4[2];
3474 var60.x4[3] = (orc_uint8) var59.x4[3];
3476 var61.x4[0] = (var60.x4[0] * var55.x4[0]) & 0xffff;
3477 var61.x4[1] = (var60.x4[1] * var55.x4[1]) & 0xffff;
3478 var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
3479 var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
3482 ((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) +
3483 (((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8;
3485 ((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
3486 (((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
3488 ((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
3489 (((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
3491 ((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
3492 (((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
3494 var63.x4[0] = (orc_uint8) var56.x4[0];
3495 var63.x4[1] = (orc_uint8) var56.x4[1];
3496 var63.x4[2] = (orc_uint8) var56.x4[2];
3497 var63.x4[3] = (orc_uint8) var56.x4[3];
3499 var64.x4[0] = (var63.x4[0] * var62.x4[0]) & 0xffff;
3500 var64.x4[1] = (var63.x4[1] * var62.x4[1]) & 0xffff;
3501 var64.x4[2] = (var63.x4[2] * var62.x4[2]) & 0xffff;
3502 var64.x4[3] = (var63.x4[3] * var62.x4[3]) & 0xffff;
3504 var65.x4[0] = var64.x4[0] + var52.x4[0];
3505 var65.x4[1] = var64.x4[1] + var52.x4[1];
3506 var65.x4[2] = var64.x4[2] + var52.x4[2];
3507 var65.x4[3] = var64.x4[3] + var52.x4[3];
3509 var66.x4[0] = var62.x4[0] + var50.x4[0];
3510 var66.x4[1] = var62.x4[1] + var50.x4[1];
3511 var66.x4[2] = var62.x4[2] + var50.x4[2];
3512 var66.x4[3] = var62.x4[3] + var50.x4[3];
3515 ((var66.x4[0] & 0xff) ==
3516 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[0]) /
3517 ((orc_uint16) var66.x4[0] & 0xff));
3519 ((var66.x4[1] & 0xff) ==
3520 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[1]) /
3521 ((orc_uint16) var66.x4[1] & 0xff));
3523 ((var66.x4[2] & 0xff) ==
3524 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[2]) /
3525 ((orc_uint16) var66.x4[2] & 0xff));
3527 ((var66.x4[3] & 0xff) ==
3528 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[3]) /
3529 ((orc_uint16) var66.x4[3] & 0xff));
3531 var68.x4[0] = var67.x4[0];
3532 var68.x4[1] = var67.x4[1];
3533 var68.x4[2] = var67.x4[2];
3534 var68.x4[3] = var67.x4[3];
3536 var69.i = var68.i & var42.i;
3538 var70.x4[0] = var66.x4[0];
3539 var70.x4[1] = var66.x4[1];
3540 var70.x4[2] = var66.x4[2];
3541 var70.x4[3] = var66.x4[3];
3543 var71.i = var70.i & var43.i;
3545 var72.i = var69.i | var71.i;
3555 _backup_compositor_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
3560 int m = ex->params[ORC_VAR_A1];
3561 orc_union32 *ORC_RESTRICT ptr0;
3562 const orc_union32 *ORC_RESTRICT ptr4;
3564 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3565 volatile orc_union32 var42;
3569 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3570 volatile orc_union32 var43;
3604 for (j = 0; j < m; j++) {
3605 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
3606 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
3609 var41.x4[0] = ex->params[24];
3610 var41.x4[1] = ex->params[24];
3611 var41.x4[2] = ex->params[24];
3612 var41.x4[3] = ex->params[24];
3614 var53.i = 0xffffffff; /* -1 or 2.122e-314f */
3616 var42.i = 0xffffff00; /* -256 or 2.122e-314f */
3618 var43.i = 0x000000ff; /* 255 or 1.25987e-321f */
3620 for (i = 0; i < n; i++) {
3629 ((((orc_uint32) var46) & 0xff) << 24) | ((((orc_uint32) var46) & 0xff)
3630 << 16) | ((((orc_uint32) var46) & 0xff) << 8) | (((orc_uint32) var46)
3633 var48.x4[0] = (orc_uint8) var47.x4[0];
3634 var48.x4[1] = (orc_uint8) var47.x4[1];
3635 var48.x4[2] = (orc_uint8) var47.x4[2];
3636 var48.x4[3] = (orc_uint8) var47.x4[3];
3638 var49.x4[0] = (var48.x4[0] * var41.x4[0]) & 0xffff;
3639 var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
3640 var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
3641 var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
3644 ((orc_uint16) (((orc_uint16) (var49.x4[0] + 128)) +
3645 (((orc_uint16) (var49.x4[0] + 128)) >> 8))) >> 8;
3647 ((orc_uint16) (((orc_uint16) (var49.x4[1] + 128)) +
3648 (((orc_uint16) (var49.x4[1] + 128)) >> 8))) >> 8;
3650 ((orc_uint16) (((orc_uint16) (var49.x4[2] + 128)) +
3651 (((orc_uint16) (var49.x4[2] + 128)) >> 8))) >> 8;
3653 ((orc_uint16) (((orc_uint16) (var49.x4[3] + 128)) +
3654 (((orc_uint16) (var49.x4[3] + 128)) >> 8))) >> 8;
3656 var51.x4[0] = (orc_uint8) var44.x4[0];
3657 var51.x4[1] = (orc_uint8) var44.x4[1];
3658 var51.x4[2] = (orc_uint8) var44.x4[2];
3659 var51.x4[3] = (orc_uint8) var44.x4[3];
3661 var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
3662 var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
3663 var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
3664 var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
3666 var54.x4[0] = (orc_uint8) var53.x4[0];
3667 var54.x4[1] = (orc_uint8) var53.x4[1];
3668 var54.x4[2] = (orc_uint8) var53.x4[2];
3669 var54.x4[3] = (orc_uint8) var53.x4[3];
3671 var55.x4[0] = var54.x4[0] - var50.x4[0];
3672 var55.x4[1] = var54.x4[1] - var50.x4[1];
3673 var55.x4[2] = var54.x4[2] - var50.x4[2];
3674 var55.x4[3] = var54.x4[3] - var50.x4[3];
3683 ((((orc_uint32) var58) & 0xff) << 24) | ((((orc_uint32) var58) & 0xff)
3684 << 16) | ((((orc_uint32) var58) & 0xff) << 8) | (((orc_uint32) var58)
3687 var60.x4[0] = (orc_uint8) var59.x4[0];
3688 var60.x4[1] = (orc_uint8) var59.x4[1];
3689 var60.x4[2] = (orc_uint8) var59.x4[2];
3690 var60.x4[3] = (orc_uint8) var59.x4[3];
3692 var61.x4[0] = (var60.x4[0] * var55.x4[0]) & 0xffff;
3693 var61.x4[1] = (var60.x4[1] * var55.x4[1]) & 0xffff;
3694 var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
3695 var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
3698 ((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) +
3699 (((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8;
3701 ((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
3702 (((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
3704 ((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
3705 (((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
3707 ((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
3708 (((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
3710 var63.x4[0] = (orc_uint8) var56.x4[0];
3711 var63.x4[1] = (orc_uint8) var56.x4[1];
3712 var63.x4[2] = (orc_uint8) var56.x4[2];
3713 var63.x4[3] = (orc_uint8) var56.x4[3];
3715 var64.x4[0] = (var63.x4[0] * var62.x4[0]) & 0xffff;
3716 var64.x4[1] = (var63.x4[1] * var62.x4[1]) & 0xffff;
3717 var64.x4[2] = (var63.x4[2] * var62.x4[2]) & 0xffff;
3718 var64.x4[3] = (var63.x4[3] * var62.x4[3]) & 0xffff;
3720 var65.x4[0] = var64.x4[0] + var52.x4[0];
3721 var65.x4[1] = var64.x4[1] + var52.x4[1];
3722 var65.x4[2] = var64.x4[2] + var52.x4[2];
3723 var65.x4[3] = var64.x4[3] + var52.x4[3];
3725 var66.x4[0] = var62.x4[0] + var50.x4[0];
3726 var66.x4[1] = var62.x4[1] + var50.x4[1];
3727 var66.x4[2] = var62.x4[2] + var50.x4[2];
3728 var66.x4[3] = var62.x4[3] + var50.x4[3];
3731 ((var66.x4[0] & 0xff) ==
3732 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[0]) /
3733 ((orc_uint16) var66.x4[0] & 0xff));
3735 ((var66.x4[1] & 0xff) ==
3736 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[1]) /
3737 ((orc_uint16) var66.x4[1] & 0xff));
3739 ((var66.x4[2] & 0xff) ==
3740 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[2]) /
3741 ((orc_uint16) var66.x4[2] & 0xff));
3743 ((var66.x4[3] & 0xff) ==
3744 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[3]) /
3745 ((orc_uint16) var66.x4[3] & 0xff));
3747 var68.x4[0] = var67.x4[0];
3748 var68.x4[1] = var67.x4[1];
3749 var68.x4[2] = var67.x4[2];
3750 var68.x4[3] = var67.x4[3];
3752 var69.i = var68.i & var42.i;
3754 var70.x4[0] = var66.x4[0];
3755 var70.x4[1] = var66.x4[1];
3756 var70.x4[2] = var66.x4[2];
3757 var70.x4[3] = var66.x4[3];
3759 var71.i = var70.i & var43.i;
3761 var72.i = var69.i | var71.i;
3770 compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
3771 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
3773 OrcExecutor _ex, *ex = &_ex;
3774 static volatile int p_inited = 0;
3775 static OrcCode *c = 0;
3776 void (*func) (OrcExecutor *);
3779 orc_once_mutex_lock ();
3784 static const orc_uint8 bc[] = {
3785 1, 7, 9, 27, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
3786 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103, 98, 11,
3787 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0, 0,
3788 0, 14, 4, 0, 255, 255, 255, 16, 2, 20, 4, 20, 2, 20, 1, 20,
3789 8, 20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 163, 33,
3790 32, 157, 34, 33, 152, 38, 34, 21, 2, 150, 35, 38, 21, 2, 89, 35,
3791 35, 24, 21, 2, 80, 35, 35, 21, 2, 150, 40, 32, 21, 2, 89, 40,
3792 40, 35, 115, 38, 16, 21, 2, 150, 36, 38, 21, 2, 98, 36, 36, 35,
3793 113, 32, 0, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2, 150, 37,
3794 38, 21, 2, 89, 37, 37, 36, 21, 2, 80, 37, 37, 21, 2, 150, 39,
3795 32, 21, 2, 89, 39, 39, 37, 21, 2, 70, 39, 39, 40, 21, 2, 70,
3796 37, 37, 35, 21, 2, 81, 39, 39, 37, 21, 2, 157, 32, 39, 106, 32,
3797 32, 18, 21, 2, 157, 38, 37, 106, 38, 38, 17, 123, 32, 32, 38, 128,
3800 p = orc_program_new_from_static_bytecode (bc);
3801 orc_program_set_backup_function (p, _backup_compositor_orc_overlay_argb);
3803 p = orc_program_new ();
3804 orc_program_set_2d (p);
3805 orc_program_set_name (p, "compositor_orc_overlay_argb");
3806 orc_program_set_backup_function (p, _backup_compositor_orc_overlay_argb);
3807 orc_program_add_destination (p, 4, "d1");
3808 orc_program_add_source (p, 4, "s1");
3809 orc_program_add_constant (p, 4, 0xffffffff, "c1");
3810 orc_program_add_constant (p, 4, 0x000000ff, "c2");
3811 orc_program_add_constant (p, 4, 0xffffff00, "c3");
3812 orc_program_add_parameter (p, 2, "p1");
3813 orc_program_add_temporary (p, 4, "t1");
3814 orc_program_add_temporary (p, 2, "t2");
3815 orc_program_add_temporary (p, 1, "t3");
3816 orc_program_add_temporary (p, 8, "t4");
3817 orc_program_add_temporary (p, 8, "t5");
3818 orc_program_add_temporary (p, 8, "t6");
3819 orc_program_add_temporary (p, 4, "t7");
3820 orc_program_add_temporary (p, 8, "t8");
3821 orc_program_add_temporary (p, 8, "t9");
3823 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3825 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
3827 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
3829 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
3831 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_D1,
3833 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P1,
3835 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_D1,
3837 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
3839 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T4,
3841 orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T7, ORC_VAR_C1, ORC_VAR_D1,
3843 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_D1,
3845 orc_program_append_2 (p, "subw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
3847 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
3849 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
3851 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
3853 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
3855 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T7, ORC_VAR_D1,
3857 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
3859 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
3861 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T1, ORC_VAR_D1,
3863 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T6,
3865 orc_program_append_2 (p, "addw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T9,
3867 orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T4,
3869 orc_program_append_2 (p, "divluw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T6,
3871 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_D1,
3873 orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
3875 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_D1,
3877 orc_program_append_2 (p, "andl", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
3879 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T7,
3881 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3885 orc_program_compile (p);
3886 c = orc_program_take_code (p);
3887 orc_program_free (p);
3890 orc_once_mutex_unlock ();
3892 ex->arrays[ORC_VAR_A2] = c;
3896 ORC_EXECUTOR_M (ex) = m;
3897 ex->arrays[ORC_VAR_D1] = d1;
3898 ex->params[ORC_VAR_D1] = d1_stride;
3899 ex->arrays[ORC_VAR_S1] = (void *) s1;
3900 ex->params[ORC_VAR_S1] = s1_stride;
3901 ex->params[ORC_VAR_P1] = p1;
3909 /* compositor_orc_overlay_argb_addition */
3912 compositor_orc_overlay_argb_addition (guint8 * ORC_RESTRICT d1, int d1_stride,
3913 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
3917 orc_union32 *ORC_RESTRICT ptr0;
3918 const orc_union32 *ORC_RESTRICT ptr4;
3920 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3921 volatile orc_union32 var43;
3925 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
3926 volatile orc_union32 var44;
3966 for (j = 0; j < m; j++) {
3967 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
3968 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
3976 var54.i = 0xffffffff; /* -1 or 2.122e-314f */
3978 var43.i = 0xffffff00; /* -256 or 2.122e-314f */
3980 var44.i = 0x000000ff; /* 255 or 1.25987e-321f */
3982 for (i = 0; i < n; i++) {
3991 ((((orc_uint32) var47) & 0xff) << 24) | ((((orc_uint32) var47) & 0xff)
3992 << 16) | ((((orc_uint32) var47) & 0xff) << 8) | (((orc_uint32) var47)
3995 var49.x4[0] = (orc_uint8) var48.x4[0];
3996 var49.x4[1] = (orc_uint8) var48.x4[1];
3997 var49.x4[2] = (orc_uint8) var48.x4[2];
3998 var49.x4[3] = (orc_uint8) var48.x4[3];
4000 var50.x4[0] = (var49.x4[0] * var42.x4[0]) & 0xffff;
4001 var50.x4[1] = (var49.x4[1] * var42.x4[1]) & 0xffff;
4002 var50.x4[2] = (var49.x4[2] * var42.x4[2]) & 0xffff;
4003 var50.x4[3] = (var49.x4[3] * var42.x4[3]) & 0xffff;
4006 ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
4007 (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
4009 ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
4010 (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
4012 ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
4013 (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
4015 ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
4016 (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
4018 var52.x4[0] = (orc_uint8) var45.x4[0];
4019 var52.x4[1] = (orc_uint8) var45.x4[1];
4020 var52.x4[2] = (orc_uint8) var45.x4[2];
4021 var52.x4[3] = (orc_uint8) var45.x4[3];
4023 var53.x4[0] = (var52.x4[0] * var51.x4[0]) & 0xffff;
4024 var53.x4[1] = (var52.x4[1] * var51.x4[1]) & 0xffff;
4025 var53.x4[2] = (var52.x4[2] * var51.x4[2]) & 0xffff;
4026 var53.x4[3] = (var52.x4[3] * var51.x4[3]) & 0xffff;
4028 var55.x4[0] = (orc_uint8) var54.x4[0];
4029 var55.x4[1] = (orc_uint8) var54.x4[1];
4030 var55.x4[2] = (orc_uint8) var54.x4[2];
4031 var55.x4[3] = (orc_uint8) var54.x4[3];
4033 var56.x4[0] = var55.x4[0] - var51.x4[0];
4034 var56.x4[1] = var55.x4[1] - var51.x4[1];
4035 var56.x4[2] = var55.x4[2] - var51.x4[2];
4036 var56.x4[3] = var55.x4[3] - var51.x4[3];
4045 ((((orc_uint32) var59) & 0xff) << 24) | ((((orc_uint32) var59) & 0xff)
4046 << 16) | ((((orc_uint32) var59) & 0xff) << 8) | (((orc_uint32) var59)
4049 var61.x4[0] = (orc_uint8) var60.x4[0];
4050 var61.x4[1] = (orc_uint8) var60.x4[1];
4051 var61.x4[2] = (orc_uint8) var60.x4[2];
4052 var61.x4[3] = (orc_uint8) var60.x4[3];
4054 var62.x4[0] = (var61.x4[0] * var56.x4[0]) & 0xffff;
4055 var62.x4[1] = (var61.x4[1] * var56.x4[1]) & 0xffff;
4056 var62.x4[2] = (var61.x4[2] * var56.x4[2]) & 0xffff;
4057 var62.x4[3] = (var61.x4[3] * var56.x4[3]) & 0xffff;
4060 ((orc_uint16) (((orc_uint16) (var62.x4[0] + 128)) +
4061 (((orc_uint16) (var62.x4[0] + 128)) >> 8))) >> 8;
4063 ((orc_uint16) (((orc_uint16) (var62.x4[1] + 128)) +
4064 (((orc_uint16) (var62.x4[1] + 128)) >> 8))) >> 8;
4066 ((orc_uint16) (((orc_uint16) (var62.x4[2] + 128)) +
4067 (((orc_uint16) (var62.x4[2] + 128)) >> 8))) >> 8;
4069 ((orc_uint16) (((orc_uint16) (var62.x4[3] + 128)) +
4070 (((orc_uint16) (var62.x4[3] + 128)) >> 8))) >> 8;
4072 var64.x4[0] = (orc_uint8) var57.x4[0];
4073 var64.x4[1] = (orc_uint8) var57.x4[1];
4074 var64.x4[2] = (orc_uint8) var57.x4[2];
4075 var64.x4[3] = (orc_uint8) var57.x4[3];
4077 var65.x4[0] = (var64.x4[0] * var63.x4[0]) & 0xffff;
4078 var65.x4[1] = (var64.x4[1] * var63.x4[1]) & 0xffff;
4079 var65.x4[2] = (var64.x4[2] * var63.x4[2]) & 0xffff;
4080 var65.x4[3] = (var64.x4[3] * var63.x4[3]) & 0xffff;
4082 var66.x4[0] = var65.x4[0] + var53.x4[0];
4083 var66.x4[1] = var65.x4[1] + var53.x4[1];
4084 var66.x4[2] = var65.x4[2] + var53.x4[2];
4085 var66.x4[3] = var65.x4[3] + var53.x4[3];
4087 var67.x4[0] = var63.x4[0] + var51.x4[0];
4088 var67.x4[1] = var63.x4[1] + var51.x4[1];
4089 var67.x4[2] = var63.x4[2] + var51.x4[2];
4090 var67.x4[3] = var63.x4[3] + var51.x4[3];
4093 ((var67.x4[0] & 0xff) ==
4094 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[0]) /
4095 ((orc_uint16) var67.x4[0] & 0xff));
4097 ((var67.x4[1] & 0xff) ==
4098 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[1]) /
4099 ((orc_uint16) var67.x4[1] & 0xff));
4101 ((var67.x4[2] & 0xff) ==
4102 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[2]) /
4103 ((orc_uint16) var67.x4[2] & 0xff));
4105 ((var67.x4[3] & 0xff) ==
4106 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[3]) /
4107 ((orc_uint16) var67.x4[3] & 0xff));
4116 ((((orc_uint32) var71) & 0xff) << 24) | ((((orc_uint32) var71) & 0xff)
4117 << 16) | ((((orc_uint32) var71) & 0xff) << 8) | (((orc_uint32) var71)
4120 var73.x4[0] = (orc_uint8) var72.x4[0];
4121 var73.x4[1] = (orc_uint8) var72.x4[1];
4122 var73.x4[2] = (orc_uint8) var72.x4[2];
4123 var73.x4[3] = (orc_uint8) var72.x4[3];
4125 var74.x4[0] = var73.x4[0] + var51.x4[0];
4126 var74.x4[1] = var73.x4[1] + var51.x4[1];
4127 var74.x4[2] = var73.x4[2] + var51.x4[2];
4128 var74.x4[3] = var73.x4[3] + var51.x4[3];
4130 var75.x4[0] = var68.x4[0];
4131 var75.x4[1] = var68.x4[1];
4132 var75.x4[2] = var68.x4[2];
4133 var75.x4[3] = var68.x4[3];
4135 var76.i = var75.i & var43.i;
4137 var77.x4[0] = var74.x4[0];
4138 var77.x4[1] = var74.x4[1];
4139 var77.x4[2] = var74.x4[2];
4140 var77.x4[3] = var74.x4[3];
4142 var78.i = var77.i & var44.i;
4144 var79.i = var76.i | var78.i;
4154 _backup_compositor_orc_overlay_argb_addition (OrcExecutor * ORC_RESTRICT ex)
4159 int m = ex->params[ORC_VAR_A1];
4160 orc_union32 *ORC_RESTRICT ptr0;
4161 const orc_union32 *ORC_RESTRICT ptr4;
4163 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
4164 volatile orc_union32 var43;
4168 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
4169 volatile orc_union32 var44;
4209 for (j = 0; j < m; j++) {
4210 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
4211 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
4214 var42.x4[0] = ex->params[24];
4215 var42.x4[1] = ex->params[24];
4216 var42.x4[2] = ex->params[24];
4217 var42.x4[3] = ex->params[24];
4219 var54.i = 0xffffffff; /* -1 or 2.122e-314f */
4221 var43.i = 0xffffff00; /* -256 or 2.122e-314f */
4223 var44.i = 0x000000ff; /* 255 or 1.25987e-321f */
4225 for (i = 0; i < n; i++) {
4234 ((((orc_uint32) var47) & 0xff) << 24) | ((((orc_uint32) var47) & 0xff)
4235 << 16) | ((((orc_uint32) var47) & 0xff) << 8) | (((orc_uint32) var47)
4238 var49.x4[0] = (orc_uint8) var48.x4[0];
4239 var49.x4[1] = (orc_uint8) var48.x4[1];
4240 var49.x4[2] = (orc_uint8) var48.x4[2];
4241 var49.x4[3] = (orc_uint8) var48.x4[3];
4243 var50.x4[0] = (var49.x4[0] * var42.x4[0]) & 0xffff;
4244 var50.x4[1] = (var49.x4[1] * var42.x4[1]) & 0xffff;
4245 var50.x4[2] = (var49.x4[2] * var42.x4[2]) & 0xffff;
4246 var50.x4[3] = (var49.x4[3] * var42.x4[3]) & 0xffff;
4249 ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
4250 (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
4252 ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
4253 (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
4255 ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
4256 (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
4258 ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
4259 (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
4261 var52.x4[0] = (orc_uint8) var45.x4[0];
4262 var52.x4[1] = (orc_uint8) var45.x4[1];
4263 var52.x4[2] = (orc_uint8) var45.x4[2];
4264 var52.x4[3] = (orc_uint8) var45.x4[3];
4266 var53.x4[0] = (var52.x4[0] * var51.x4[0]) & 0xffff;
4267 var53.x4[1] = (var52.x4[1] * var51.x4[1]) & 0xffff;
4268 var53.x4[2] = (var52.x4[2] * var51.x4[2]) & 0xffff;
4269 var53.x4[3] = (var52.x4[3] * var51.x4[3]) & 0xffff;
4271 var55.x4[0] = (orc_uint8) var54.x4[0];
4272 var55.x4[1] = (orc_uint8) var54.x4[1];
4273 var55.x4[2] = (orc_uint8) var54.x4[2];
4274 var55.x4[3] = (orc_uint8) var54.x4[3];
4276 var56.x4[0] = var55.x4[0] - var51.x4[0];
4277 var56.x4[1] = var55.x4[1] - var51.x4[1];
4278 var56.x4[2] = var55.x4[2] - var51.x4[2];
4279 var56.x4[3] = var55.x4[3] - var51.x4[3];
4288 ((((orc_uint32) var59) & 0xff) << 24) | ((((orc_uint32) var59) & 0xff)
4289 << 16) | ((((orc_uint32) var59) & 0xff) << 8) | (((orc_uint32) var59)
4292 var61.x4[0] = (orc_uint8) var60.x4[0];
4293 var61.x4[1] = (orc_uint8) var60.x4[1];
4294 var61.x4[2] = (orc_uint8) var60.x4[2];
4295 var61.x4[3] = (orc_uint8) var60.x4[3];
4297 var62.x4[0] = (var61.x4[0] * var56.x4[0]) & 0xffff;
4298 var62.x4[1] = (var61.x4[1] * var56.x4[1]) & 0xffff;
4299 var62.x4[2] = (var61.x4[2] * var56.x4[2]) & 0xffff;
4300 var62.x4[3] = (var61.x4[3] * var56.x4[3]) & 0xffff;
4303 ((orc_uint16) (((orc_uint16) (var62.x4[0] + 128)) +
4304 (((orc_uint16) (var62.x4[0] + 128)) >> 8))) >> 8;
4306 ((orc_uint16) (((orc_uint16) (var62.x4[1] + 128)) +
4307 (((orc_uint16) (var62.x4[1] + 128)) >> 8))) >> 8;
4309 ((orc_uint16) (((orc_uint16) (var62.x4[2] + 128)) +
4310 (((orc_uint16) (var62.x4[2] + 128)) >> 8))) >> 8;
4312 ((orc_uint16) (((orc_uint16) (var62.x4[3] + 128)) +
4313 (((orc_uint16) (var62.x4[3] + 128)) >> 8))) >> 8;
4315 var64.x4[0] = (orc_uint8) var57.x4[0];
4316 var64.x4[1] = (orc_uint8) var57.x4[1];
4317 var64.x4[2] = (orc_uint8) var57.x4[2];
4318 var64.x4[3] = (orc_uint8) var57.x4[3];
4320 var65.x4[0] = (var64.x4[0] * var63.x4[0]) & 0xffff;
4321 var65.x4[1] = (var64.x4[1] * var63.x4[1]) & 0xffff;
4322 var65.x4[2] = (var64.x4[2] * var63.x4[2]) & 0xffff;
4323 var65.x4[3] = (var64.x4[3] * var63.x4[3]) & 0xffff;
4325 var66.x4[0] = var65.x4[0] + var53.x4[0];
4326 var66.x4[1] = var65.x4[1] + var53.x4[1];
4327 var66.x4[2] = var65.x4[2] + var53.x4[2];
4328 var66.x4[3] = var65.x4[3] + var53.x4[3];
4330 var67.x4[0] = var63.x4[0] + var51.x4[0];
4331 var67.x4[1] = var63.x4[1] + var51.x4[1];
4332 var67.x4[2] = var63.x4[2] + var51.x4[2];
4333 var67.x4[3] = var63.x4[3] + var51.x4[3];
4336 ((var67.x4[0] & 0xff) ==
4337 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[0]) /
4338 ((orc_uint16) var67.x4[0] & 0xff));
4340 ((var67.x4[1] & 0xff) ==
4341 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[1]) /
4342 ((orc_uint16) var67.x4[1] & 0xff));
4344 ((var67.x4[2] & 0xff) ==
4345 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[2]) /
4346 ((orc_uint16) var67.x4[2] & 0xff));
4348 ((var67.x4[3] & 0xff) ==
4349 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var66.x4[3]) /
4350 ((orc_uint16) var67.x4[3] & 0xff));
4359 ((((orc_uint32) var71) & 0xff) << 24) | ((((orc_uint32) var71) & 0xff)
4360 << 16) | ((((orc_uint32) var71) & 0xff) << 8) | (((orc_uint32) var71)
4363 var73.x4[0] = (orc_uint8) var72.x4[0];
4364 var73.x4[1] = (orc_uint8) var72.x4[1];
4365 var73.x4[2] = (orc_uint8) var72.x4[2];
4366 var73.x4[3] = (orc_uint8) var72.x4[3];
4368 var74.x4[0] = var73.x4[0] + var51.x4[0];
4369 var74.x4[1] = var73.x4[1] + var51.x4[1];
4370 var74.x4[2] = var73.x4[2] + var51.x4[2];
4371 var74.x4[3] = var73.x4[3] + var51.x4[3];
4373 var75.x4[0] = var68.x4[0];
4374 var75.x4[1] = var68.x4[1];
4375 var75.x4[2] = var68.x4[2];
4376 var75.x4[3] = var68.x4[3];
4378 var76.i = var75.i & var43.i;
4380 var77.x4[0] = var74.x4[0];
4381 var77.x4[1] = var74.x4[1];
4382 var77.x4[2] = var74.x4[2];
4383 var77.x4[3] = var74.x4[3];
4385 var78.i = var77.i & var44.i;
4387 var79.i = var76.i | var78.i;
4396 compositor_orc_overlay_argb_addition (guint8 * ORC_RESTRICT d1, int d1_stride,
4397 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
4399 OrcExecutor _ex, *ex = &_ex;
4400 static volatile int p_inited = 0;
4401 static OrcCode *c = 0;
4402 void (*func) (OrcExecutor *);
4405 orc_once_mutex_lock ();
4410 static const orc_uint8 bc[] = {
4411 1, 7, 9, 36, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
4412 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103, 98, 95,
4413 97, 100, 100, 105, 116, 105, 111, 110, 11, 4, 4, 12, 4, 4, 14, 4,
4414 255, 255, 255, 255, 14, 4, 255, 0, 0, 0, 14, 4, 0, 255, 255, 255,
4415 16, 2, 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 8,
4416 20, 4, 20, 8, 20, 8, 113, 32, 4, 163, 33, 32, 157, 34, 33, 152,
4417 39, 34, 21, 2, 150, 35, 39, 21, 2, 89, 35, 35, 24, 21, 2, 80,
4418 35, 35, 21, 2, 150, 41, 32, 21, 2, 89, 41, 41, 35, 115, 39, 16,
4419 21, 2, 150, 36, 39, 21, 2, 98, 36, 36, 35, 113, 32, 0, 163, 33,
4420 32, 157, 34, 33, 152, 39, 34, 21, 2, 150, 37, 39, 21, 2, 89, 37,
4421 37, 36, 21, 2, 80, 37, 37, 21, 2, 150, 40, 32, 21, 2, 89, 40,
4422 40, 37, 21, 2, 70, 40, 40, 41, 21, 2, 70, 37, 37, 35, 21, 2,
4423 81, 40, 40, 37, 113, 32, 0, 163, 33, 32, 157, 34, 33, 152, 39, 34,
4424 21, 2, 150, 38, 39, 21, 2, 70, 38, 38, 35, 21, 2, 157, 32, 40,
4425 106, 32, 32, 18, 21, 2, 157, 39, 38, 106, 39, 39, 17, 123, 32, 32,
4426 39, 128, 0, 32, 2, 0,
4428 p = orc_program_new_from_static_bytecode (bc);
4429 orc_program_set_backup_function (p,
4430 _backup_compositor_orc_overlay_argb_addition);
4432 p = orc_program_new ();
4433 orc_program_set_2d (p);
4434 orc_program_set_name (p, "compositor_orc_overlay_argb_addition");
4435 orc_program_set_backup_function (p,
4436 _backup_compositor_orc_overlay_argb_addition);
4437 orc_program_add_destination (p, 4, "d1");
4438 orc_program_add_source (p, 4, "s1");
4439 orc_program_add_constant (p, 4, 0xffffffff, "c1");
4440 orc_program_add_constant (p, 4, 0x000000ff, "c2");
4441 orc_program_add_constant (p, 4, 0xffffff00, "c3");
4442 orc_program_add_parameter (p, 2, "p1");
4443 orc_program_add_temporary (p, 4, "t1");
4444 orc_program_add_temporary (p, 2, "t2");
4445 orc_program_add_temporary (p, 1, "t3");
4446 orc_program_add_temporary (p, 8, "t4");
4447 orc_program_add_temporary (p, 8, "t5");
4448 orc_program_add_temporary (p, 8, "t6");
4449 orc_program_add_temporary (p, 8, "t7");
4450 orc_program_add_temporary (p, 4, "t8");
4451 orc_program_add_temporary (p, 8, "t9");
4452 orc_program_add_temporary (p, 8, "t10");
4454 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
4456 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
4458 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
4460 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_D1,
4462 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T4, ORC_VAR_T8, ORC_VAR_D1,
4464 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P1,
4466 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_D1,
4468 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1,
4469 ORC_VAR_D1, ORC_VAR_D1);
4470 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T4,
4472 orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T8, ORC_VAR_C1, ORC_VAR_D1,
4474 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T8, ORC_VAR_D1,
4476 orc_program_append_2 (p, "subw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
4478 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
4480 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
4482 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
4484 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_D1,
4486 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T8, ORC_VAR_D1,
4488 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
4490 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
4492 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
4494 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T6,
4496 orc_program_append_2 (p, "addw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T10,
4498 orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T4,
4500 orc_program_append_2 (p, "divluw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T6,
4502 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
4504 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
4506 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
4508 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_D1,
4510 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_D1,
4512 orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T4,
4514 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_D1,
4516 orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
4518 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_D1,
4520 orc_program_append_2 (p, "andl", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C2,
4522 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T8,
4524 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
4528 orc_program_compile (p);
4529 c = orc_program_take_code (p);
4530 orc_program_free (p);
4533 orc_once_mutex_unlock ();
4535 ex->arrays[ORC_VAR_A2] = c;
4539 ORC_EXECUTOR_M (ex) = m;
4540 ex->arrays[ORC_VAR_D1] = d1;
4541 ex->params[ORC_VAR_D1] = d1_stride;
4542 ex->arrays[ORC_VAR_S1] = (void *) s1;
4543 ex->params[ORC_VAR_S1] = s1_stride;
4544 ex->params[ORC_VAR_P1] = p1;
4552 /* compositor_orc_overlay_bgra */
4555 compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
4556 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
4560 orc_union32 *ORC_RESTRICT ptr0;
4561 const orc_union32 *ORC_RESTRICT ptr4;
4563 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
4564 volatile orc_union32 var43;
4568 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
4569 volatile orc_union32 var44;
4605 for (j = 0; j < m; j++) {
4606 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
4607 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
4615 var55.i = 0xffffffff; /* -1 or 2.122e-314f */
4617 var43.i = 0x00ffffff; /* 16777215 or 8.28905e-317f */
4619 var44.i = 0xff000000; /* -16777216 or 2.11371e-314f */
4621 for (i = 0; i < n; i++) {
4625 var46.i = ((orc_uint32) var45.i) >> 24;
4632 ((((orc_uint32) var48) & 0xff) << 24) | ((((orc_uint32) var48) & 0xff)
4633 << 16) | ((((orc_uint32) var48) & 0xff) << 8) | (((orc_uint32) var48)
4636 var50.x4[0] = (orc_uint8) var49.x4[0];
4637 var50.x4[1] = (orc_uint8) var49.x4[1];
4638 var50.x4[2] = (orc_uint8) var49.x4[2];
4639 var50.x4[3] = (orc_uint8) var49.x4[3];
4641 var51.x4[0] = (var50.x4[0] * var42.x4[0]) & 0xffff;
4642 var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
4643 var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
4644 var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
4647 ((orc_uint16) (((orc_uint16) (var51.x4[0] + 128)) +
4648 (((orc_uint16) (var51.x4[0] + 128)) >> 8))) >> 8;
4650 ((orc_uint16) (((orc_uint16) (var51.x4[1] + 128)) +
4651 (((orc_uint16) (var51.x4[1] + 128)) >> 8))) >> 8;
4653 ((orc_uint16) (((orc_uint16) (var51.x4[2] + 128)) +
4654 (((orc_uint16) (var51.x4[2] + 128)) >> 8))) >> 8;
4656 ((orc_uint16) (((orc_uint16) (var51.x4[3] + 128)) +
4657 (((orc_uint16) (var51.x4[3] + 128)) >> 8))) >> 8;
4659 var53.x4[0] = (orc_uint8) var45.x4[0];
4660 var53.x4[1] = (orc_uint8) var45.x4[1];
4661 var53.x4[2] = (orc_uint8) var45.x4[2];
4662 var53.x4[3] = (orc_uint8) var45.x4[3];
4664 var54.x4[0] = (var53.x4[0] * var52.x4[0]) & 0xffff;
4665 var54.x4[1] = (var53.x4[1] * var52.x4[1]) & 0xffff;
4666 var54.x4[2] = (var53.x4[2] * var52.x4[2]) & 0xffff;
4667 var54.x4[3] = (var53.x4[3] * var52.x4[3]) & 0xffff;
4669 var56.x4[0] = (orc_uint8) var55.x4[0];
4670 var56.x4[1] = (orc_uint8) var55.x4[1];
4671 var56.x4[2] = (orc_uint8) var55.x4[2];
4672 var56.x4[3] = (orc_uint8) var55.x4[3];
4674 var57.x4[0] = var56.x4[0] - var52.x4[0];
4675 var57.x4[1] = var56.x4[1] - var52.x4[1];
4676 var57.x4[2] = var56.x4[2] - var52.x4[2];
4677 var57.x4[3] = var56.x4[3] - var52.x4[3];
4681 var59.i = ((orc_uint32) var58.i) >> 24;
4688 ((((orc_uint32) var61) & 0xff) << 24) | ((((orc_uint32) var61) & 0xff)
4689 << 16) | ((((orc_uint32) var61) & 0xff) << 8) | (((orc_uint32) var61)
4692 var63.x4[0] = (orc_uint8) var62.x4[0];
4693 var63.x4[1] = (orc_uint8) var62.x4[1];
4694 var63.x4[2] = (orc_uint8) var62.x4[2];
4695 var63.x4[3] = (orc_uint8) var62.x4[3];
4697 var64.x4[0] = (var63.x4[0] * var57.x4[0]) & 0xffff;
4698 var64.x4[1] = (var63.x4[1] * var57.x4[1]) & 0xffff;
4699 var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
4700 var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
4703 ((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) +
4704 (((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8;
4706 ((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
4707 (((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
4709 ((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
4710 (((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
4712 ((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
4713 (((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
4715 var66.x4[0] = (orc_uint8) var58.x4[0];
4716 var66.x4[1] = (orc_uint8) var58.x4[1];
4717 var66.x4[2] = (orc_uint8) var58.x4[2];
4718 var66.x4[3] = (orc_uint8) var58.x4[3];
4720 var67.x4[0] = (var66.x4[0] * var65.x4[0]) & 0xffff;
4721 var67.x4[1] = (var66.x4[1] * var65.x4[1]) & 0xffff;
4722 var67.x4[2] = (var66.x4[2] * var65.x4[2]) & 0xffff;
4723 var67.x4[3] = (var66.x4[3] * var65.x4[3]) & 0xffff;
4725 var68.x4[0] = var67.x4[0] + var54.x4[0];
4726 var68.x4[1] = var67.x4[1] + var54.x4[1];
4727 var68.x4[2] = var67.x4[2] + var54.x4[2];
4728 var68.x4[3] = var67.x4[3] + var54.x4[3];
4730 var69.x4[0] = var65.x4[0] + var52.x4[0];
4731 var69.x4[1] = var65.x4[1] + var52.x4[1];
4732 var69.x4[2] = var65.x4[2] + var52.x4[2];
4733 var69.x4[3] = var65.x4[3] + var52.x4[3];
4736 ((var69.x4[0] & 0xff) ==
4737 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[0]) /
4738 ((orc_uint16) var69.x4[0] & 0xff));
4740 ((var69.x4[1] & 0xff) ==
4741 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[1]) /
4742 ((orc_uint16) var69.x4[1] & 0xff));
4744 ((var69.x4[2] & 0xff) ==
4745 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[2]) /
4746 ((orc_uint16) var69.x4[2] & 0xff));
4748 ((var69.x4[3] & 0xff) ==
4749 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[3]) /
4750 ((orc_uint16) var69.x4[3] & 0xff));
4752 var71.x4[0] = var70.x4[0];
4753 var71.x4[1] = var70.x4[1];
4754 var71.x4[2] = var70.x4[2];
4755 var71.x4[3] = var70.x4[3];
4757 var72.i = var71.i & var43.i;
4759 var73.x4[0] = var69.x4[0];
4760 var73.x4[1] = var69.x4[1];
4761 var73.x4[2] = var69.x4[2];
4762 var73.x4[3] = var69.x4[3];
4764 var74.i = var73.i & var44.i;
4766 var75.i = var72.i | var74.i;
4776 _backup_compositor_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
4781 int m = ex->params[ORC_VAR_A1];
4782 orc_union32 *ORC_RESTRICT ptr0;
4783 const orc_union32 *ORC_RESTRICT ptr4;
4785 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
4786 volatile orc_union32 var43;
4790 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
4791 volatile orc_union32 var44;
4827 for (j = 0; j < m; j++) {
4828 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
4829 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
4832 var42.x4[0] = ex->params[24];
4833 var42.x4[1] = ex->params[24];
4834 var42.x4[2] = ex->params[24];
4835 var42.x4[3] = ex->params[24];
4837 var55.i = 0xffffffff; /* -1 or 2.122e-314f */
4839 var43.i = 0x00ffffff; /* 16777215 or 8.28905e-317f */
4841 var44.i = 0xff000000; /* -16777216 or 2.11371e-314f */
4843 for (i = 0; i < n; i++) {
4847 var46.i = ((orc_uint32) var45.i) >> 24;
4854 ((((orc_uint32) var48) & 0xff) << 24) | ((((orc_uint32) var48) & 0xff)
4855 << 16) | ((((orc_uint32) var48) & 0xff) << 8) | (((orc_uint32) var48)
4858 var50.x4[0] = (orc_uint8) var49.x4[0];
4859 var50.x4[1] = (orc_uint8) var49.x4[1];
4860 var50.x4[2] = (orc_uint8) var49.x4[2];
4861 var50.x4[3] = (orc_uint8) var49.x4[3];
4863 var51.x4[0] = (var50.x4[0] * var42.x4[0]) & 0xffff;
4864 var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
4865 var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
4866 var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
4869 ((orc_uint16) (((orc_uint16) (var51.x4[0] + 128)) +
4870 (((orc_uint16) (var51.x4[0] + 128)) >> 8))) >> 8;
4872 ((orc_uint16) (((orc_uint16) (var51.x4[1] + 128)) +
4873 (((orc_uint16) (var51.x4[1] + 128)) >> 8))) >> 8;
4875 ((orc_uint16) (((orc_uint16) (var51.x4[2] + 128)) +
4876 (((orc_uint16) (var51.x4[2] + 128)) >> 8))) >> 8;
4878 ((orc_uint16) (((orc_uint16) (var51.x4[3] + 128)) +
4879 (((orc_uint16) (var51.x4[3] + 128)) >> 8))) >> 8;
4881 var53.x4[0] = (orc_uint8) var45.x4[0];
4882 var53.x4[1] = (orc_uint8) var45.x4[1];
4883 var53.x4[2] = (orc_uint8) var45.x4[2];
4884 var53.x4[3] = (orc_uint8) var45.x4[3];
4886 var54.x4[0] = (var53.x4[0] * var52.x4[0]) & 0xffff;
4887 var54.x4[1] = (var53.x4[1] * var52.x4[1]) & 0xffff;
4888 var54.x4[2] = (var53.x4[2] * var52.x4[2]) & 0xffff;
4889 var54.x4[3] = (var53.x4[3] * var52.x4[3]) & 0xffff;
4891 var56.x4[0] = (orc_uint8) var55.x4[0];
4892 var56.x4[1] = (orc_uint8) var55.x4[1];
4893 var56.x4[2] = (orc_uint8) var55.x4[2];
4894 var56.x4[3] = (orc_uint8) var55.x4[3];
4896 var57.x4[0] = var56.x4[0] - var52.x4[0];
4897 var57.x4[1] = var56.x4[1] - var52.x4[1];
4898 var57.x4[2] = var56.x4[2] - var52.x4[2];
4899 var57.x4[3] = var56.x4[3] - var52.x4[3];
4903 var59.i = ((orc_uint32) var58.i) >> 24;
4910 ((((orc_uint32) var61) & 0xff) << 24) | ((((orc_uint32) var61) & 0xff)
4911 << 16) | ((((orc_uint32) var61) & 0xff) << 8) | (((orc_uint32) var61)
4914 var63.x4[0] = (orc_uint8) var62.x4[0];
4915 var63.x4[1] = (orc_uint8) var62.x4[1];
4916 var63.x4[2] = (orc_uint8) var62.x4[2];
4917 var63.x4[3] = (orc_uint8) var62.x4[3];
4919 var64.x4[0] = (var63.x4[0] * var57.x4[0]) & 0xffff;
4920 var64.x4[1] = (var63.x4[1] * var57.x4[1]) & 0xffff;
4921 var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
4922 var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
4925 ((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) +
4926 (((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8;
4928 ((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
4929 (((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
4931 ((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
4932 (((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
4934 ((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
4935 (((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
4937 var66.x4[0] = (orc_uint8) var58.x4[0];
4938 var66.x4[1] = (orc_uint8) var58.x4[1];
4939 var66.x4[2] = (orc_uint8) var58.x4[2];
4940 var66.x4[3] = (orc_uint8) var58.x4[3];
4942 var67.x4[0] = (var66.x4[0] * var65.x4[0]) & 0xffff;
4943 var67.x4[1] = (var66.x4[1] * var65.x4[1]) & 0xffff;
4944 var67.x4[2] = (var66.x4[2] * var65.x4[2]) & 0xffff;
4945 var67.x4[3] = (var66.x4[3] * var65.x4[3]) & 0xffff;
4947 var68.x4[0] = var67.x4[0] + var54.x4[0];
4948 var68.x4[1] = var67.x4[1] + var54.x4[1];
4949 var68.x4[2] = var67.x4[2] + var54.x4[2];
4950 var68.x4[3] = var67.x4[3] + var54.x4[3];
4952 var69.x4[0] = var65.x4[0] + var52.x4[0];
4953 var69.x4[1] = var65.x4[1] + var52.x4[1];
4954 var69.x4[2] = var65.x4[2] + var52.x4[2];
4955 var69.x4[3] = var65.x4[3] + var52.x4[3];
4958 ((var69.x4[0] & 0xff) ==
4959 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[0]) /
4960 ((orc_uint16) var69.x4[0] & 0xff));
4962 ((var69.x4[1] & 0xff) ==
4963 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[1]) /
4964 ((orc_uint16) var69.x4[1] & 0xff));
4966 ((var69.x4[2] & 0xff) ==
4967 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[2]) /
4968 ((orc_uint16) var69.x4[2] & 0xff));
4970 ((var69.x4[3] & 0xff) ==
4971 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[3]) /
4972 ((orc_uint16) var69.x4[3] & 0xff));
4974 var71.x4[0] = var70.x4[0];
4975 var71.x4[1] = var70.x4[1];
4976 var71.x4[2] = var70.x4[2];
4977 var71.x4[3] = var70.x4[3];
4979 var72.i = var71.i & var43.i;
4981 var73.x4[0] = var69.x4[0];
4982 var73.x4[1] = var69.x4[1];
4983 var73.x4[2] = var69.x4[2];
4984 var73.x4[3] = var69.x4[3];
4986 var74.i = var73.i & var44.i;
4988 var75.i = var72.i | var74.i;
4997 compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
4998 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
5000 OrcExecutor _ex, *ex = &_ex;
5001 static volatile int p_inited = 0;
5002 static OrcCode *c = 0;
5003 void (*func) (OrcExecutor *);
5006 orc_once_mutex_lock ();
5011 static const orc_uint8 bc[] = {
5012 1, 7, 9, 27, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
5013 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114, 97, 11,
5014 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0, 0,
5015 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 16, 2, 20,
5016 4, 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20,
5017 8, 20, 8, 113, 32, 4, 126, 33, 32, 19, 163, 34, 33, 157, 35, 34,
5018 152, 39, 35, 21, 2, 150, 36, 39, 21, 2, 89, 36, 36, 24, 21, 2,
5019 80, 36, 36, 21, 2, 150, 41, 32, 21, 2, 89, 41, 41, 36, 115, 39,
5020 16, 21, 2, 150, 37, 39, 21, 2, 98, 37, 37, 36, 113, 32, 0, 126,
5021 33, 32, 19, 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 38,
5022 39, 21, 2, 89, 38, 38, 37, 21, 2, 80, 38, 38, 21, 2, 150, 40,
5023 32, 21, 2, 89, 40, 40, 38, 21, 2, 70, 40, 40, 41, 21, 2, 70,
5024 38, 38, 36, 21, 2, 81, 40, 40, 38, 21, 2, 157, 32, 40, 106, 32,
5025 32, 18, 21, 2, 157, 39, 38, 106, 39, 39, 17, 123, 32, 32, 39, 128,
5028 p = orc_program_new_from_static_bytecode (bc);
5029 orc_program_set_backup_function (p, _backup_compositor_orc_overlay_bgra);
5031 p = orc_program_new ();
5032 orc_program_set_2d (p);
5033 orc_program_set_name (p, "compositor_orc_overlay_bgra");
5034 orc_program_set_backup_function (p, _backup_compositor_orc_overlay_bgra);
5035 orc_program_add_destination (p, 4, "d1");
5036 orc_program_add_source (p, 4, "s1");
5037 orc_program_add_constant (p, 4, 0xffffffff, "c1");
5038 orc_program_add_constant (p, 4, 0xff000000, "c2");
5039 orc_program_add_constant (p, 4, 0x00ffffff, "c3");
5040 orc_program_add_constant (p, 4, 0x00000018, "c4");
5041 orc_program_add_parameter (p, 2, "p1");
5042 orc_program_add_temporary (p, 4, "t1");
5043 orc_program_add_temporary (p, 4, "t2");
5044 orc_program_add_temporary (p, 2, "t3");
5045 orc_program_add_temporary (p, 1, "t4");
5046 orc_program_add_temporary (p, 8, "t5");
5047 orc_program_add_temporary (p, 8, "t6");
5048 orc_program_add_temporary (p, 8, "t7");
5049 orc_program_add_temporary (p, 4, "t8");
5050 orc_program_add_temporary (p, 8, "t9");
5051 orc_program_add_temporary (p, 8, "t10");
5053 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5055 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
5057 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
5059 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
5061 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_D1,
5063 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T8, ORC_VAR_D1,
5065 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
5067 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_D1,
5069 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1,
5070 ORC_VAR_D1, ORC_VAR_D1);
5071 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T5,
5073 orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T8, ORC_VAR_C1, ORC_VAR_D1,
5075 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T8, ORC_VAR_D1,
5077 orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
5079 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
5081 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
5083 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
5085 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
5087 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_D1,
5089 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_D1,
5091 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
5093 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
5095 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
5097 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T7,
5099 orc_program_append_2 (p, "addw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T10,
5101 orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T5,
5103 orc_program_append_2 (p, "divluw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T7,
5105 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_D1,
5107 orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
5109 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_D1,
5111 orc_program_append_2 (p, "andl", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C2,
5113 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T8,
5115 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5119 orc_program_compile (p);
5120 c = orc_program_take_code (p);
5121 orc_program_free (p);
5124 orc_once_mutex_unlock ();
5126 ex->arrays[ORC_VAR_A2] = c;
5130 ORC_EXECUTOR_M (ex) = m;
5131 ex->arrays[ORC_VAR_D1] = d1;
5132 ex->params[ORC_VAR_D1] = d1_stride;
5133 ex->arrays[ORC_VAR_S1] = (void *) s1;
5134 ex->params[ORC_VAR_S1] = s1_stride;
5135 ex->params[ORC_VAR_P1] = p1;
5143 /* compositor_orc_overlay_bgra_addition */
5146 compositor_orc_overlay_bgra_addition (guint8 * ORC_RESTRICT d1, int d1_stride,
5147 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
5151 orc_union32 *ORC_RESTRICT ptr0;
5152 const orc_union32 *ORC_RESTRICT ptr4;
5154 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
5155 volatile orc_union32 var44;
5159 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
5160 volatile orc_union32 var45;
5203 for (j = 0; j < m; j++) {
5204 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
5205 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
5213 var56.i = 0xffffffff; /* -1 or 2.122e-314f */
5215 var44.i = 0x00ffffff; /* 16777215 or 8.28905e-317f */
5217 var45.i = 0xff000000; /* -16777216 or 2.11371e-314f */
5219 for (i = 0; i < n; i++) {
5223 var47.i = ((orc_uint32) var46.i) >> 24;
5230 ((((orc_uint32) var49) & 0xff) << 24) | ((((orc_uint32) var49) & 0xff)
5231 << 16) | ((((orc_uint32) var49) & 0xff) << 8) | (((orc_uint32) var49)
5234 var51.x4[0] = (orc_uint8) var50.x4[0];
5235 var51.x4[1] = (orc_uint8) var50.x4[1];
5236 var51.x4[2] = (orc_uint8) var50.x4[2];
5237 var51.x4[3] = (orc_uint8) var50.x4[3];
5239 var52.x4[0] = (var51.x4[0] * var43.x4[0]) & 0xffff;
5240 var52.x4[1] = (var51.x4[1] * var43.x4[1]) & 0xffff;
5241 var52.x4[2] = (var51.x4[2] * var43.x4[2]) & 0xffff;
5242 var52.x4[3] = (var51.x4[3] * var43.x4[3]) & 0xffff;
5245 ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
5246 (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
5248 ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
5249 (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
5251 ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
5252 (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
5254 ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
5255 (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
5257 var54.x4[0] = (orc_uint8) var46.x4[0];
5258 var54.x4[1] = (orc_uint8) var46.x4[1];
5259 var54.x4[2] = (orc_uint8) var46.x4[2];
5260 var54.x4[3] = (orc_uint8) var46.x4[3];
5262 var55.x4[0] = (var54.x4[0] * var53.x4[0]) & 0xffff;
5263 var55.x4[1] = (var54.x4[1] * var53.x4[1]) & 0xffff;
5264 var55.x4[2] = (var54.x4[2] * var53.x4[2]) & 0xffff;
5265 var55.x4[3] = (var54.x4[3] * var53.x4[3]) & 0xffff;
5267 var57.x4[0] = (orc_uint8) var56.x4[0];
5268 var57.x4[1] = (orc_uint8) var56.x4[1];
5269 var57.x4[2] = (orc_uint8) var56.x4[2];
5270 var57.x4[3] = (orc_uint8) var56.x4[3];
5272 var58.x4[0] = var57.x4[0] - var53.x4[0];
5273 var58.x4[1] = var57.x4[1] - var53.x4[1];
5274 var58.x4[2] = var57.x4[2] - var53.x4[2];
5275 var58.x4[3] = var57.x4[3] - var53.x4[3];
5279 var60.i = ((orc_uint32) var59.i) >> 24;
5286 ((((orc_uint32) var62) & 0xff) << 24) | ((((orc_uint32) var62) & 0xff)
5287 << 16) | ((((orc_uint32) var62) & 0xff) << 8) | (((orc_uint32) var62)
5290 var64.x4[0] = (orc_uint8) var63.x4[0];
5291 var64.x4[1] = (orc_uint8) var63.x4[1];
5292 var64.x4[2] = (orc_uint8) var63.x4[2];
5293 var64.x4[3] = (orc_uint8) var63.x4[3];
5295 var65.x4[0] = (var64.x4[0] * var58.x4[0]) & 0xffff;
5296 var65.x4[1] = (var64.x4[1] * var58.x4[1]) & 0xffff;
5297 var65.x4[2] = (var64.x4[2] * var58.x4[2]) & 0xffff;
5298 var65.x4[3] = (var64.x4[3] * var58.x4[3]) & 0xffff;
5301 ((orc_uint16) (((orc_uint16) (var65.x4[0] + 128)) +
5302 (((orc_uint16) (var65.x4[0] + 128)) >> 8))) >> 8;
5304 ((orc_uint16) (((orc_uint16) (var65.x4[1] + 128)) +
5305 (((orc_uint16) (var65.x4[1] + 128)) >> 8))) >> 8;
5307 ((orc_uint16) (((orc_uint16) (var65.x4[2] + 128)) +
5308 (((orc_uint16) (var65.x4[2] + 128)) >> 8))) >> 8;
5310 ((orc_uint16) (((orc_uint16) (var65.x4[3] + 128)) +
5311 (((orc_uint16) (var65.x4[3] + 128)) >> 8))) >> 8;
5313 var67.x4[0] = (orc_uint8) var59.x4[0];
5314 var67.x4[1] = (orc_uint8) var59.x4[1];
5315 var67.x4[2] = (orc_uint8) var59.x4[2];
5316 var67.x4[3] = (orc_uint8) var59.x4[3];
5318 var68.x4[0] = (var67.x4[0] * var66.x4[0]) & 0xffff;
5319 var68.x4[1] = (var67.x4[1] * var66.x4[1]) & 0xffff;
5320 var68.x4[2] = (var67.x4[2] * var66.x4[2]) & 0xffff;
5321 var68.x4[3] = (var67.x4[3] * var66.x4[3]) & 0xffff;
5323 var69.x4[0] = var68.x4[0] + var55.x4[0];
5324 var69.x4[1] = var68.x4[1] + var55.x4[1];
5325 var69.x4[2] = var68.x4[2] + var55.x4[2];
5326 var69.x4[3] = var68.x4[3] + var55.x4[3];
5328 var70.x4[0] = var66.x4[0] + var53.x4[0];
5329 var70.x4[1] = var66.x4[1] + var53.x4[1];
5330 var70.x4[2] = var66.x4[2] + var53.x4[2];
5331 var70.x4[3] = var66.x4[3] + var53.x4[3];
5334 ((var70.x4[0] & 0xff) ==
5335 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[0]) /
5336 ((orc_uint16) var70.x4[0] & 0xff));
5338 ((var70.x4[1] & 0xff) ==
5339 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[1]) /
5340 ((orc_uint16) var70.x4[1] & 0xff));
5342 ((var70.x4[2] & 0xff) ==
5343 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[2]) /
5344 ((orc_uint16) var70.x4[2] & 0xff));
5346 ((var70.x4[3] & 0xff) ==
5347 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[3]) /
5348 ((orc_uint16) var70.x4[3] & 0xff));
5352 var73.i = ((orc_uint32) var72.i) >> 24;
5359 ((((orc_uint32) var75) & 0xff) << 24) | ((((orc_uint32) var75) & 0xff)
5360 << 16) | ((((orc_uint32) var75) & 0xff) << 8) | (((orc_uint32) var75)
5363 var77.x4[0] = (orc_uint8) var76.x4[0];
5364 var77.x4[1] = (orc_uint8) var76.x4[1];
5365 var77.x4[2] = (orc_uint8) var76.x4[2];
5366 var77.x4[3] = (orc_uint8) var76.x4[3];
5368 var78.x4[0] = var77.x4[0] + var53.x4[0];
5369 var78.x4[1] = var77.x4[1] + var53.x4[1];
5370 var78.x4[2] = var77.x4[2] + var53.x4[2];
5371 var78.x4[3] = var77.x4[3] + var53.x4[3];
5373 var79.x4[0] = var71.x4[0];
5374 var79.x4[1] = var71.x4[1];
5375 var79.x4[2] = var71.x4[2];
5376 var79.x4[3] = var71.x4[3];
5378 var80.i = var79.i & var44.i;
5380 var81.x4[0] = var78.x4[0];
5381 var81.x4[1] = var78.x4[1];
5382 var81.x4[2] = var78.x4[2];
5383 var81.x4[3] = var78.x4[3];
5385 var82.i = var81.i & var45.i;
5387 var83.i = var80.i | var82.i;
5397 _backup_compositor_orc_overlay_bgra_addition (OrcExecutor * ORC_RESTRICT ex)
5402 int m = ex->params[ORC_VAR_A1];
5403 orc_union32 *ORC_RESTRICT ptr0;
5404 const orc_union32 *ORC_RESTRICT ptr4;
5406 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
5407 volatile orc_union32 var44;
5411 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
5412 volatile orc_union32 var45;
5455 for (j = 0; j < m; j++) {
5456 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
5457 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
5460 var43.x4[0] = ex->params[24];
5461 var43.x4[1] = ex->params[24];
5462 var43.x4[2] = ex->params[24];
5463 var43.x4[3] = ex->params[24];
5465 var56.i = 0xffffffff; /* -1 or 2.122e-314f */
5467 var44.i = 0x00ffffff; /* 16777215 or 8.28905e-317f */
5469 var45.i = 0xff000000; /* -16777216 or 2.11371e-314f */
5471 for (i = 0; i < n; i++) {
5475 var47.i = ((orc_uint32) var46.i) >> 24;
5482 ((((orc_uint32) var49) & 0xff) << 24) | ((((orc_uint32) var49) & 0xff)
5483 << 16) | ((((orc_uint32) var49) & 0xff) << 8) | (((orc_uint32) var49)
5486 var51.x4[0] = (orc_uint8) var50.x4[0];
5487 var51.x4[1] = (orc_uint8) var50.x4[1];
5488 var51.x4[2] = (orc_uint8) var50.x4[2];
5489 var51.x4[3] = (orc_uint8) var50.x4[3];
5491 var52.x4[0] = (var51.x4[0] * var43.x4[0]) & 0xffff;
5492 var52.x4[1] = (var51.x4[1] * var43.x4[1]) & 0xffff;
5493 var52.x4[2] = (var51.x4[2] * var43.x4[2]) & 0xffff;
5494 var52.x4[3] = (var51.x4[3] * var43.x4[3]) & 0xffff;
5497 ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
5498 (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
5500 ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
5501 (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
5503 ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
5504 (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
5506 ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
5507 (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
5509 var54.x4[0] = (orc_uint8) var46.x4[0];
5510 var54.x4[1] = (orc_uint8) var46.x4[1];
5511 var54.x4[2] = (orc_uint8) var46.x4[2];
5512 var54.x4[3] = (orc_uint8) var46.x4[3];
5514 var55.x4[0] = (var54.x4[0] * var53.x4[0]) & 0xffff;
5515 var55.x4[1] = (var54.x4[1] * var53.x4[1]) & 0xffff;
5516 var55.x4[2] = (var54.x4[2] * var53.x4[2]) & 0xffff;
5517 var55.x4[3] = (var54.x4[3] * var53.x4[3]) & 0xffff;
5519 var57.x4[0] = (orc_uint8) var56.x4[0];
5520 var57.x4[1] = (orc_uint8) var56.x4[1];
5521 var57.x4[2] = (orc_uint8) var56.x4[2];
5522 var57.x4[3] = (orc_uint8) var56.x4[3];
5524 var58.x4[0] = var57.x4[0] - var53.x4[0];
5525 var58.x4[1] = var57.x4[1] - var53.x4[1];
5526 var58.x4[2] = var57.x4[2] - var53.x4[2];
5527 var58.x4[3] = var57.x4[3] - var53.x4[3];
5531 var60.i = ((orc_uint32) var59.i) >> 24;
5538 ((((orc_uint32) var62) & 0xff) << 24) | ((((orc_uint32) var62) & 0xff)
5539 << 16) | ((((orc_uint32) var62) & 0xff) << 8) | (((orc_uint32) var62)
5542 var64.x4[0] = (orc_uint8) var63.x4[0];
5543 var64.x4[1] = (orc_uint8) var63.x4[1];
5544 var64.x4[2] = (orc_uint8) var63.x4[2];
5545 var64.x4[3] = (orc_uint8) var63.x4[3];
5547 var65.x4[0] = (var64.x4[0] * var58.x4[0]) & 0xffff;
5548 var65.x4[1] = (var64.x4[1] * var58.x4[1]) & 0xffff;
5549 var65.x4[2] = (var64.x4[2] * var58.x4[2]) & 0xffff;
5550 var65.x4[3] = (var64.x4[3] * var58.x4[3]) & 0xffff;
5553 ((orc_uint16) (((orc_uint16) (var65.x4[0] + 128)) +
5554 (((orc_uint16) (var65.x4[0] + 128)) >> 8))) >> 8;
5556 ((orc_uint16) (((orc_uint16) (var65.x4[1] + 128)) +
5557 (((orc_uint16) (var65.x4[1] + 128)) >> 8))) >> 8;
5559 ((orc_uint16) (((orc_uint16) (var65.x4[2] + 128)) +
5560 (((orc_uint16) (var65.x4[2] + 128)) >> 8))) >> 8;
5562 ((orc_uint16) (((orc_uint16) (var65.x4[3] + 128)) +
5563 (((orc_uint16) (var65.x4[3] + 128)) >> 8))) >> 8;
5565 var67.x4[0] = (orc_uint8) var59.x4[0];
5566 var67.x4[1] = (orc_uint8) var59.x4[1];
5567 var67.x4[2] = (orc_uint8) var59.x4[2];
5568 var67.x4[3] = (orc_uint8) var59.x4[3];
5570 var68.x4[0] = (var67.x4[0] * var66.x4[0]) & 0xffff;
5571 var68.x4[1] = (var67.x4[1] * var66.x4[1]) & 0xffff;
5572 var68.x4[2] = (var67.x4[2] * var66.x4[2]) & 0xffff;
5573 var68.x4[3] = (var67.x4[3] * var66.x4[3]) & 0xffff;
5575 var69.x4[0] = var68.x4[0] + var55.x4[0];
5576 var69.x4[1] = var68.x4[1] + var55.x4[1];
5577 var69.x4[2] = var68.x4[2] + var55.x4[2];
5578 var69.x4[3] = var68.x4[3] + var55.x4[3];
5580 var70.x4[0] = var66.x4[0] + var53.x4[0];
5581 var70.x4[1] = var66.x4[1] + var53.x4[1];
5582 var70.x4[2] = var66.x4[2] + var53.x4[2];
5583 var70.x4[3] = var66.x4[3] + var53.x4[3];
5586 ((var70.x4[0] & 0xff) ==
5587 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[0]) /
5588 ((orc_uint16) var70.x4[0] & 0xff));
5590 ((var70.x4[1] & 0xff) ==
5591 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[1]) /
5592 ((orc_uint16) var70.x4[1] & 0xff));
5594 ((var70.x4[2] & 0xff) ==
5595 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[2]) /
5596 ((orc_uint16) var70.x4[2] & 0xff));
5598 ((var70.x4[3] & 0xff) ==
5599 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var69.x4[3]) /
5600 ((orc_uint16) var70.x4[3] & 0xff));
5604 var73.i = ((orc_uint32) var72.i) >> 24;
5611 ((((orc_uint32) var75) & 0xff) << 24) | ((((orc_uint32) var75) & 0xff)
5612 << 16) | ((((orc_uint32) var75) & 0xff) << 8) | (((orc_uint32) var75)
5615 var77.x4[0] = (orc_uint8) var76.x4[0];
5616 var77.x4[1] = (orc_uint8) var76.x4[1];
5617 var77.x4[2] = (orc_uint8) var76.x4[2];
5618 var77.x4[3] = (orc_uint8) var76.x4[3];
5620 var78.x4[0] = var77.x4[0] + var53.x4[0];
5621 var78.x4[1] = var77.x4[1] + var53.x4[1];
5622 var78.x4[2] = var77.x4[2] + var53.x4[2];
5623 var78.x4[3] = var77.x4[3] + var53.x4[3];
5625 var79.x4[0] = var71.x4[0];
5626 var79.x4[1] = var71.x4[1];
5627 var79.x4[2] = var71.x4[2];
5628 var79.x4[3] = var71.x4[3];
5630 var80.i = var79.i & var44.i;
5632 var81.x4[0] = var78.x4[0];
5633 var81.x4[1] = var78.x4[1];
5634 var81.x4[2] = var78.x4[2];
5635 var81.x4[3] = var78.x4[3];
5637 var82.i = var81.i & var45.i;
5639 var83.i = var80.i | var82.i;
5648 compositor_orc_overlay_bgra_addition (guint8 * ORC_RESTRICT d1, int d1_stride,
5649 const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
5651 OrcExecutor _ex, *ex = &_ex;
5652 static volatile int p_inited = 0;
5653 static OrcCode *c = 0;
5654 void (*func) (OrcExecutor *);
5657 orc_once_mutex_lock ();
5662 static const orc_uint8 bc[] = {
5663 1, 7, 9, 36, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
5664 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114, 97, 95,
5665 97, 100, 100, 105, 116, 105, 111, 110, 11, 4, 4, 12, 4, 4, 14, 4,
5666 255, 255, 255, 255, 14, 4, 0, 0, 0, 255, 14, 4, 255, 255, 255, 0,
5667 14, 4, 24, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1,
5668 20, 8, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32,
5669 4, 126, 33, 32, 19, 163, 34, 33, 157, 35, 34, 152, 40, 35, 21, 2,
5670 150, 36, 40, 21, 2, 89, 36, 36, 24, 21, 2, 80, 36, 36, 21, 2,
5671 150, 42, 32, 21, 2, 89, 42, 42, 36, 115, 40, 16, 21, 2, 150, 37,
5672 40, 21, 2, 98, 37, 37, 36, 113, 32, 0, 126, 33, 32, 19, 163, 34,
5673 33, 157, 35, 34, 152, 40, 35, 21, 2, 150, 38, 40, 21, 2, 89, 38,
5674 38, 37, 21, 2, 80, 38, 38, 21, 2, 150, 41, 32, 21, 2, 89, 41,
5675 41, 38, 21, 2, 70, 41, 41, 42, 21, 2, 70, 38, 38, 36, 21, 2,
5676 81, 41, 41, 38, 113, 32, 0, 126, 33, 32, 19, 163, 34, 33, 157, 35,
5677 34, 152, 40, 35, 21, 2, 150, 39, 40, 21, 2, 70, 39, 39, 36, 21,
5678 2, 157, 32, 41, 106, 32, 32, 18, 21, 2, 157, 40, 39, 106, 40, 40,
5679 17, 123, 32, 32, 40, 128, 0, 32, 2, 0,
5681 p = orc_program_new_from_static_bytecode (bc);
5682 orc_program_set_backup_function (p,
5683 _backup_compositor_orc_overlay_bgra_addition);
5685 p = orc_program_new ();
5686 orc_program_set_2d (p);
5687 orc_program_set_name (p, "compositor_orc_overlay_bgra_addition");
5688 orc_program_set_backup_function (p,
5689 _backup_compositor_orc_overlay_bgra_addition);
5690 orc_program_add_destination (p, 4, "d1");
5691 orc_program_add_source (p, 4, "s1");
5692 orc_program_add_constant (p, 4, 0xffffffff, "c1");
5693 orc_program_add_constant (p, 4, 0xff000000, "c2");
5694 orc_program_add_constant (p, 4, 0x00ffffff, "c3");
5695 orc_program_add_constant (p, 4, 0x00000018, "c4");
5696 orc_program_add_parameter (p, 2, "p1");
5697 orc_program_add_temporary (p, 4, "t1");
5698 orc_program_add_temporary (p, 4, "t2");
5699 orc_program_add_temporary (p, 2, "t3");
5700 orc_program_add_temporary (p, 1, "t4");
5701 orc_program_add_temporary (p, 8, "t5");
5702 orc_program_add_temporary (p, 8, "t6");
5703 orc_program_add_temporary (p, 8, "t7");
5704 orc_program_add_temporary (p, 8, "t8");
5705 orc_program_add_temporary (p, 4, "t9");
5706 orc_program_add_temporary (p, 8, "t10");
5707 orc_program_add_temporary (p, 8, "t11");
5709 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5711 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
5713 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
5715 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
5717 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T9, ORC_VAR_T4, ORC_VAR_D1,
5719 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T9, ORC_VAR_D1,
5721 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
5723 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_D1,
5725 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T11, ORC_VAR_T1,
5726 ORC_VAR_D1, ORC_VAR_D1);
5727 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T11, ORC_VAR_T11, ORC_VAR_T5,
5729 orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T9, ORC_VAR_C1, ORC_VAR_D1,
5731 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T9, ORC_VAR_D1,
5733 orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
5735 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
5737 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
5739 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
5741 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
5743 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T9, ORC_VAR_T4, ORC_VAR_D1,
5745 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T9, ORC_VAR_D1,
5747 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
5749 orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
5751 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1,
5752 ORC_VAR_D1, ORC_VAR_D1);
5753 orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T7,
5755 orc_program_append_2 (p, "addw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T11,
5757 orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T5,
5759 orc_program_append_2 (p, "divluw", 2, ORC_VAR_T10, ORC_VAR_T10,
5760 ORC_VAR_T7, ORC_VAR_D1);
5761 orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
5763 orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
5765 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
5767 orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
5769 orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T9, ORC_VAR_T4, ORC_VAR_D1,
5771 orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T9, ORC_VAR_D1,
5773 orc_program_append_2 (p, "addw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T5,
5775 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T10, ORC_VAR_D1,
5777 orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
5779 orc_program_append_2 (p, "convwb", 2, ORC_VAR_T9, ORC_VAR_T8, ORC_VAR_D1,
5781 orc_program_append_2 (p, "andl", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_C2,
5783 orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T9,
5785 orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5789 orc_program_compile (p);
5790 c = orc_program_take_code (p);
5791 orc_program_free (p);
5794 orc_once_mutex_unlock ();
5796 ex->arrays[ORC_VAR_A2] = c;
5800 ORC_EXECUTOR_M (ex) = m;
5801 ex->arrays[ORC_VAR_D1] = d1;
5802 ex->params[ORC_VAR_D1] = d1_stride;
5803 ex->arrays[ORC_VAR_S1] = (void *) s1;
5804 ex->params[ORC_VAR_S1] = s1_stride;
5805 ex->params[ORC_VAR_P1] = p1;