summaryrefslogtreecommitdiff
path: root/gst/compositor/compositororc-dist.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/compositor/compositororc-dist.c')
-rw-r--r--gst/compositor/compositororc-dist.c296
1 files changed, 184 insertions, 112 deletions
diff --git a/gst/compositor/compositororc-dist.c b/gst/compositor/compositororc-dist.c
index db71b932e9..41744820b6 100644
--- a/gst/compositor/compositororc-dist.c
+++ b/gst/compositor/compositororc-dist.c
@@ -403,7 +403,7 @@ compositor_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
/* 6: mullw */
var41.i = (var40.i * var36.i) & 0xffff;
/* 7: shlw */
- var42.i = var38.i << 8;
+ var42.i = ((orc_uint16) var38.i) << 8;
/* 8: addw */
var43.i = var42.i + var41.i;
/* 9: shruw */
@@ -460,7 +460,7 @@ _backup_compositor_orc_blend_u8 (OrcExecutor * ORC_RESTRICT ex)
/* 6: mullw */
var41.i = (var40.i * var36.i) & 0xffff;
/* 7: shlw */
- var42.i = var38.i << 8;
+ var42.i = ((orc_uint16) var38.i) << 8;
/* 8: addw */
var43.i = var42.i + var41.i;
/* 9: shruw */
@@ -606,8 +606,9 @@ compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var43 = var42.i;
/* 3: splatbl */
var44.i =
- ((var43 & 0xff) << 24) | ((var43 & 0xff) << 16) | ((var43 & 0xff) <<
- 8) | (var43 & 0xff);
+ ((((orc_uint32) var43) & 0xff) << 24) | ((((orc_uint32) var43) & 0xff)
+ << 16) | ((((orc_uint32) var43) & 0xff) << 8) | (((orc_uint32) var43)
+ & 0xff);
/* 4: convubw */
var45.x4[0] = (orc_uint8) var44.x4[0];
var45.x4[1] = (orc_uint8) var44.x4[1];
@@ -618,11 +619,19 @@ compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var46.x4[1] = (var45.x4[1] * var39.x4[1]) & 0xffff;
var46.x4[2] = (var45.x4[2] * var39.x4[2]) & 0xffff;
var46.x4[3] = (var45.x4[3] * var39.x4[3]) & 0xffff;
- /* 7: shruw */
- var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
- var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
- var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
- var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+ /* 7: div255w */
+ var47.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[0] + 128)) +
+ (((orc_uint16) (var46.x4[0] + 128)) >> 8))) >> 8;
+ var47.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[1] + 128)) +
+ (((orc_uint16) (var46.x4[1] + 128)) >> 8))) >> 8;
+ var47.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[2] + 128)) +
+ (((orc_uint16) (var46.x4[2] + 128)) >> 8))) >> 8;
+ var47.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[3] + 128)) +
+ (((orc_uint16) (var46.x4[3] + 128)) >> 8))) >> 8;
/* 8: convubw */
var48.x4[0] = (orc_uint8) var41.x4[0];
var48.x4[1] = (orc_uint8) var41.x4[1];
@@ -731,8 +740,9 @@ _backup_compositor_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex)
var43 = var42.i;
/* 3: splatbl */
var44.i =
- ((var43 & 0xff) << 24) | ((var43 & 0xff) << 16) | ((var43 & 0xff) <<
- 8) | (var43 & 0xff);
+ ((((orc_uint32) var43) & 0xff) << 24) | ((((orc_uint32) var43) & 0xff)
+ << 16) | ((((orc_uint32) var43) & 0xff) << 8) | (((orc_uint32) var43)
+ & 0xff);
/* 4: convubw */
var45.x4[0] = (orc_uint8) var44.x4[0];
var45.x4[1] = (orc_uint8) var44.x4[1];
@@ -743,11 +753,19 @@ _backup_compositor_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex)
var46.x4[1] = (var45.x4[1] * var39.x4[1]) & 0xffff;
var46.x4[2] = (var45.x4[2] * var39.x4[2]) & 0xffff;
var46.x4[3] = (var45.x4[3] * var39.x4[3]) & 0xffff;
- /* 7: shruw */
- var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
- var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
- var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
- var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+ /* 7: div255w */
+ var47.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[0] + 128)) +
+ (((orc_uint16) (var46.x4[0] + 128)) >> 8))) >> 8;
+ var47.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[1] + 128)) +
+ (((orc_uint16) (var46.x4[1] + 128)) >> 8))) >> 8;
+ var47.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[2] + 128)) +
+ (((orc_uint16) (var46.x4[2] + 128)) >> 8))) >> 8;
+ var47.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var46.x4[3] + 128)) +
+ (((orc_uint16) (var46.x4[3] + 128)) >> 8))) >> 8;
/* 8: convubw */
var48.x4[0] = (orc_uint8) var41.x4[0];
var48.x4[1] = (orc_uint8) var41.x4[1];
@@ -820,13 +838,13 @@ compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
static const orc_uint8 bc[] = {
1, 7, 9, 25, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
114, 99, 95, 98, 108, 101, 110, 100, 95, 97, 114, 103, 98, 11, 4, 4,
- 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0, 16,
- 2, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8, 113,
- 32, 4, 163, 33, 32, 157, 34, 33, 152, 35, 34, 21, 2, 150, 38, 35,
- 21, 2, 89, 38, 38, 24, 21, 2, 95, 38, 38, 17, 21, 2, 150, 37,
- 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98, 37, 37, 36, 21,
- 2, 89, 37, 37, 38, 21, 2, 80, 37, 37, 21, 2, 70, 36, 36, 37,
- 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+ 12, 4, 4, 14, 4, 255, 0, 0, 0, 16, 2, 20, 4, 20, 2, 20,
+ 1, 20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 163, 33, 32, 157,
+ 34, 33, 152, 35, 34, 21, 2, 150, 38, 35, 21, 2, 89, 38, 38, 24,
+ 21, 2, 80, 38, 38, 21, 2, 150, 37, 32, 113, 32, 0, 21, 2, 150,
+ 36, 32, 21, 2, 98, 37, 37, 36, 21, 2, 89, 37, 37, 38, 21, 2,
+ 80, 37, 37, 21, 2, 70, 36, 36, 37, 21, 2, 157, 32, 36, 123, 32,
+ 32, 16, 128, 0, 32, 2, 0,
};
p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, _backup_compositor_orc_blend_argb);
@@ -838,7 +856,6 @@ compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_add_destination (p, 4, "d1");
orc_program_add_source (p, 4, "s1");
orc_program_add_constant (p, 4, 0x000000ff, "c1");
- orc_program_add_constant (p, 4, 0x00000008, "c2");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 4, "t1");
orc_program_add_temporary (p, 2, "t2");
@@ -860,7 +877,7 @@ compositor_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
ORC_VAR_D1);
orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_P1,
ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
ORC_VAR_D1);
orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1);
@@ -965,8 +982,9 @@ compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var45 = var44.i;
/* 4: splatbl */
var46.i =
- ((var45 & 0xff) << 24) | ((var45 & 0xff) << 16) | ((var45 & 0xff) <<
- 8) | (var45 & 0xff);
+ ((((orc_uint32) var45) & 0xff) << 24) | ((((orc_uint32) var45) & 0xff)
+ << 16) | ((((orc_uint32) var45) & 0xff) << 8) | (((orc_uint32) var45)
+ & 0xff);
/* 5: convubw */
var47.x4[0] = (orc_uint8) var46.x4[0];
var47.x4[1] = (orc_uint8) var46.x4[1];
@@ -977,11 +995,19 @@ compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var48.x4[1] = (var47.x4[1] * var40.x4[1]) & 0xffff;
var48.x4[2] = (var47.x4[2] * var40.x4[2]) & 0xffff;
var48.x4[3] = (var47.x4[3] * var40.x4[3]) & 0xffff;
- /* 8: shruw */
- var49.x4[0] = ((orc_uint16) var48.x4[0]) >> 8;
- var49.x4[1] = ((orc_uint16) var48.x4[1]) >> 8;
- var49.x4[2] = ((orc_uint16) var48.x4[2]) >> 8;
- var49.x4[3] = ((orc_uint16) var48.x4[3]) >> 8;
+ /* 8: div255w */
+ var49.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[0] + 128)) +
+ (((orc_uint16) (var48.x4[0] + 128)) >> 8))) >> 8;
+ var49.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[1] + 128)) +
+ (((orc_uint16) (var48.x4[1] + 128)) >> 8))) >> 8;
+ var49.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[2] + 128)) +
+ (((orc_uint16) (var48.x4[2] + 128)) >> 8))) >> 8;
+ var49.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[3] + 128)) +
+ (((orc_uint16) (var48.x4[3] + 128)) >> 8))) >> 8;
/* 9: convubw */
var50.x4[0] = (orc_uint8) var42.x4[0];
var50.x4[1] = (orc_uint8) var42.x4[1];
@@ -1093,8 +1119,9 @@ _backup_compositor_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex)
var45 = var44.i;
/* 4: splatbl */
var46.i =
- ((var45 & 0xff) << 24) | ((var45 & 0xff) << 16) | ((var45 & 0xff) <<
- 8) | (var45 & 0xff);
+ ((((orc_uint32) var45) & 0xff) << 24) | ((((orc_uint32) var45) & 0xff)
+ << 16) | ((((orc_uint32) var45) & 0xff) << 8) | (((orc_uint32) var45)
+ & 0xff);
/* 5: convubw */
var47.x4[0] = (orc_uint8) var46.x4[0];
var47.x4[1] = (orc_uint8) var46.x4[1];
@@ -1105,11 +1132,19 @@ _backup_compositor_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex)
var48.x4[1] = (var47.x4[1] * var40.x4[1]) & 0xffff;
var48.x4[2] = (var47.x4[2] * var40.x4[2]) & 0xffff;
var48.x4[3] = (var47.x4[3] * var40.x4[3]) & 0xffff;
- /* 8: shruw */
- var49.x4[0] = ((orc_uint16) var48.x4[0]) >> 8;
- var49.x4[1] = ((orc_uint16) var48.x4[1]) >> 8;
- var49.x4[2] = ((orc_uint16) var48.x4[2]) >> 8;
- var49.x4[3] = ((orc_uint16) var48.x4[3]) >> 8;
+ /* 8: div255w */
+ var49.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[0] + 128)) +
+ (((orc_uint16) (var48.x4[0] + 128)) >> 8))) >> 8;
+ var49.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[1] + 128)) +
+ (((orc_uint16) (var48.x4[1] + 128)) >> 8))) >> 8;
+ var49.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[2] + 128)) +
+ (((orc_uint16) (var48.x4[2] + 128)) >> 8))) >> 8;
+ var49.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var48.x4[3] + 128)) +
+ (((orc_uint16) (var48.x4[3] + 128)) >> 8))) >> 8;
/* 9: convubw */
var50.x4[0] = (orc_uint8) var42.x4[0];
var50.x4[1] = (orc_uint8) var42.x4[1];
@@ -1182,14 +1217,14 @@ compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
static const orc_uint8 bc[] = {
1, 7, 9, 25, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
114, 99, 95, 98, 108, 101, 110, 100, 95, 98, 103, 114, 97, 11, 4, 4,
- 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0, 14,
- 4, 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20,
- 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 17, 163, 34,
- 33, 157, 35, 34, 152, 36, 35, 21, 2, 150, 39, 36, 21, 2, 89, 39,
- 39, 24, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32, 0,
- 21, 2, 150, 37, 32, 21, 2, 98, 38, 38, 37, 21, 2, 89, 38, 38,
- 39, 21, 2, 80, 38, 38, 21, 2, 70, 37, 37, 38, 21, 2, 157, 32,
- 37, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+ 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0, 16,
+ 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20,
+ 8, 113, 32, 4, 126, 33, 32, 17, 163, 34, 33, 157, 35, 34, 152, 36,
+ 35, 21, 2, 150, 39, 36, 21, 2, 89, 39, 39, 24, 21, 2, 80, 39,
+ 39, 21, 2, 150, 38, 32, 113, 32, 0, 21, 2, 150, 37, 32, 21, 2,
+ 98, 38, 38, 37, 21, 2, 89, 38, 38, 39, 21, 2, 80, 38, 38, 21,
+ 2, 70, 37, 37, 38, 21, 2, 157, 32, 37, 123, 32, 32, 16, 128, 0,
+ 32, 2, 0,
};
p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, _backup_compositor_orc_blend_bgra);
@@ -1202,7 +1237,6 @@ compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_add_source (p, 4, "s1");
orc_program_add_constant (p, 4, 0xff000000, "c1");
orc_program_add_constant (p, 4, 0x00000018, "c2");
- orc_program_add_constant (p, 4, 0x00000008, "c3");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 4, "t1");
orc_program_add_temporary (p, 4, "t2");
@@ -1227,7 +1261,7 @@ compositor_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
ORC_VAR_D1);
orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_P1,
ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C3,
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_D1,
ORC_VAR_D1);
orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1);
@@ -1351,8 +1385,9 @@ compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var46 = var45.i;
/* 3: splatbl */
var47.i =
- ((var46 & 0xff) << 24) | ((var46 & 0xff) << 16) | ((var46 & 0xff) <<
- 8) | (var46 & 0xff);
+ ((((orc_uint32) var46) & 0xff) << 24) | ((((orc_uint32) var46) & 0xff)
+ << 16) | ((((orc_uint32) var46) & 0xff) << 8) | (((orc_uint32) var46)
+ & 0xff);
/* 4: convubw */
var48.x4[0] = (orc_uint8) var47.x4[0];
var48.x4[1] = (orc_uint8) var47.x4[1];
@@ -1363,11 +1398,19 @@ compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
- /* 7: shruw */
- var50.x4[0] = ((orc_uint16) var49.x4[0]) >> 8;
- var50.x4[1] = ((orc_uint16) var49.x4[1]) >> 8;
- var50.x4[2] = ((orc_uint16) var49.x4[2]) >> 8;
- var50.x4[3] = ((orc_uint16) var49.x4[3]) >> 8;
+ /* 7: div255w */
+ var50.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[0] + 128)) +
+ (((orc_uint16) (var49.x4[0] + 128)) >> 8))) >> 8;
+ var50.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[1] + 128)) +
+ (((orc_uint16) (var49.x4[1] + 128)) >> 8))) >> 8;
+ var50.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[2] + 128)) +
+ (((orc_uint16) (var49.x4[2] + 128)) >> 8))) >> 8;
+ var50.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[3] + 128)) +
+ (((orc_uint16) (var49.x4[3] + 128)) >> 8))) >> 8;
/* 8: convubw */
var51.x4[0] = (orc_uint8) var44.x4[0];
var51.x4[1] = (orc_uint8) var44.x4[1];
@@ -1396,8 +1439,9 @@ compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var58 = var57.i;
/* 16: splatbl */
var59.i =
- ((var58 & 0xff) << 24) | ((var58 & 0xff) << 16) | ((var58 & 0xff) <<
- 8) | (var58 & 0xff);
+ ((((orc_uint32) var58) & 0xff) << 24) | ((((orc_uint32) var58) & 0xff)
+ << 16) | ((((orc_uint32) var58) & 0xff) << 8) | (((orc_uint32) var58)
+ & 0xff);
/* 17: convubw */
var60.x4[0] = (orc_uint8) var59.x4[0];
var60.x4[1] = (orc_uint8) var59.x4[1];
@@ -1557,8 +1601,9 @@ _backup_compositor_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
var46 = var45.i;
/* 3: splatbl */
var47.i =
- ((var46 & 0xff) << 24) | ((var46 & 0xff) << 16) | ((var46 & 0xff) <<
- 8) | (var46 & 0xff);
+ ((((orc_uint32) var46) & 0xff) << 24) | ((((orc_uint32) var46) & 0xff)
+ << 16) | ((((orc_uint32) var46) & 0xff) << 8) | (((orc_uint32) var46)
+ & 0xff);
/* 4: convubw */
var48.x4[0] = (orc_uint8) var47.x4[0];
var48.x4[1] = (orc_uint8) var47.x4[1];
@@ -1569,11 +1614,19 @@ _backup_compositor_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
- /* 7: shruw */
- var50.x4[0] = ((orc_uint16) var49.x4[0]) >> 8;
- var50.x4[1] = ((orc_uint16) var49.x4[1]) >> 8;
- var50.x4[2] = ((orc_uint16) var49.x4[2]) >> 8;
- var50.x4[3] = ((orc_uint16) var49.x4[3]) >> 8;
+ /* 7: div255w */
+ var50.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[0] + 128)) +
+ (((orc_uint16) (var49.x4[0] + 128)) >> 8))) >> 8;
+ var50.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[1] + 128)) +
+ (((orc_uint16) (var49.x4[1] + 128)) >> 8))) >> 8;
+ var50.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[2] + 128)) +
+ (((orc_uint16) (var49.x4[2] + 128)) >> 8))) >> 8;
+ var50.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var49.x4[3] + 128)) +
+ (((orc_uint16) (var49.x4[3] + 128)) >> 8))) >> 8;
/* 8: convubw */
var51.x4[0] = (orc_uint8) var44.x4[0];
var51.x4[1] = (orc_uint8) var44.x4[1];
@@ -1602,8 +1655,9 @@ _backup_compositor_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
var58 = var57.i;
/* 16: splatbl */
var59.i =
- ((var58 & 0xff) << 24) | ((var58 & 0xff) << 16) | ((var58 & 0xff) <<
- 8) | (var58 & 0xff);
+ ((((orc_uint32) var58) & 0xff) << 24) | ((((orc_uint32) var58) & 0xff)
+ << 16) | ((((orc_uint32) var58) & 0xff) << 8) | (((orc_uint32) var58)
+ & 0xff);
/* 17: convubw */
var60.x4[0] = (orc_uint8) var59.x4[0];
var60.x4[1] = (orc_uint8) var59.x4[1];
@@ -1706,17 +1760,17 @@ compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
1, 7, 9, 27, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103, 98, 11,
4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0, 0,
- 0, 14, 4, 0, 255, 255, 255, 14, 4, 8, 0, 0, 0, 16, 2, 20,
- 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8, 20,
- 8, 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2, 150,
- 35, 38, 21, 2, 89, 35, 35, 24, 21, 2, 95, 35, 35, 19, 21, 2,
- 150, 40, 32, 21, 2, 89, 40, 40, 35, 115, 38, 16, 21, 2, 150, 36,
- 38, 21, 2, 98, 36, 36, 35, 113, 32, 0, 163, 33, 32, 157, 34, 33,
- 152, 38, 34, 21, 2, 150, 37, 38, 21, 2, 89, 37, 37, 36, 21, 2,
- 80, 37, 37, 21, 2, 150, 39, 32, 21, 2, 89, 39, 39, 37, 21, 2,
- 70, 39, 39, 40, 21, 2, 70, 37, 37, 35, 21, 2, 81, 39, 39, 37,
- 21, 2, 157, 32, 39, 106, 32, 32, 18, 21, 2, 157, 38, 37, 106, 38,
- 38, 17, 123, 32, 32, 38, 128, 0, 32, 2, 0,
+ 0, 14, 4, 0, 255, 255, 255, 16, 2, 20, 4, 20, 2, 20, 1, 20,
+ 8, 20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 163, 33,
+ 32, 157, 34, 33, 152, 38, 34, 21, 2, 150, 35, 38, 21, 2, 89, 35,
+ 35, 24, 21, 2, 80, 35, 35, 21, 2, 150, 40, 32, 21, 2, 89, 40,
+ 40, 35, 115, 38, 16, 21, 2, 150, 36, 38, 21, 2, 98, 36, 36, 35,
+ 113, 32, 0, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2, 150, 37,
+ 38, 21, 2, 89, 37, 37, 36, 21, 2, 80, 37, 37, 21, 2, 150, 39,
+ 32, 21, 2, 89, 39, 39, 37, 21, 2, 70, 39, 39, 40, 21, 2, 70,
+ 37, 37, 35, 21, 2, 81, 39, 39, 37, 21, 2, 157, 32, 39, 106, 32,
+ 32, 18, 21, 2, 157, 38, 37, 106, 38, 38, 17, 123, 32, 32, 38, 128,
+ 0, 32, 2, 0,
};
p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, _backup_compositor_orc_overlay_argb);
@@ -1730,7 +1784,6 @@ compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_add_constant (p, 4, 0xffffffff, "c1");
orc_program_add_constant (p, 4, 0x000000ff, "c2");
orc_program_add_constant (p, 4, 0xffffff00, "c3");
- orc_program_add_constant (p, 4, 0x00000008, "c4");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 4, "t1");
orc_program_add_temporary (p, 2, "t2");
@@ -1754,7 +1807,7 @@ compositor_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
ORC_VAR_D1);
orc_program_append_2 (p, "mullw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P1,
ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_D1,
ORC_VAR_D1);
orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1);
@@ -1908,8 +1961,9 @@ compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var48 = var47.i;
/* 4: splatbl */
var49.i =
- ((var48 & 0xff) << 24) | ((var48 & 0xff) << 16) | ((var48 & 0xff) <<
- 8) | (var48 & 0xff);
+ ((((orc_uint32) var48) & 0xff) << 24) | ((((orc_uint32) var48) & 0xff)
+ << 16) | ((((orc_uint32) var48) & 0xff) << 8) | (((orc_uint32) var48)
+ & 0xff);
/* 5: convubw */
var50.x4[0] = (orc_uint8) var49.x4[0];
var50.x4[1] = (orc_uint8) var49.x4[1];
@@ -1920,11 +1974,19 @@ compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
- /* 8: shruw */
- var52.x4[0] = ((orc_uint16) var51.x4[0]) >> 8;
- var52.x4[1] = ((orc_uint16) var51.x4[1]) >> 8;
- var52.x4[2] = ((orc_uint16) var51.x4[2]) >> 8;
- var52.x4[3] = ((orc_uint16) var51.x4[3]) >> 8;
+ /* 8: div255w */
+ var52.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[0] + 128)) +
+ (((orc_uint16) (var51.x4[0] + 128)) >> 8))) >> 8;
+ var52.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[1] + 128)) +
+ (((orc_uint16) (var51.x4[1] + 128)) >> 8))) >> 8;
+ var52.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[2] + 128)) +
+ (((orc_uint16) (var51.x4[2] + 128)) >> 8))) >> 8;
+ var52.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[3] + 128)) +
+ (((orc_uint16) (var51.x4[3] + 128)) >> 8))) >> 8;
/* 9: convubw */
var53.x4[0] = (orc_uint8) var45.x4[0];
var53.x4[1] = (orc_uint8) var45.x4[1];
@@ -1955,8 +2017,9 @@ compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var61 = var60.i;
/* 18: splatbl */
var62.i =
- ((var61 & 0xff) << 24) | ((var61 & 0xff) << 16) | ((var61 & 0xff) <<
- 8) | (var61 & 0xff);
+ ((((orc_uint32) var61) & 0xff) << 24) | ((((orc_uint32) var61) & 0xff)
+ << 16) | ((((orc_uint32) var61) & 0xff) << 8) | (((orc_uint32) var61)
+ & 0xff);
/* 19: convubw */
var63.x4[0] = (orc_uint8) var62.x4[0];
var63.x4[1] = (orc_uint8) var62.x4[1];
@@ -2120,8 +2183,9 @@ _backup_compositor_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
var48 = var47.i;
/* 4: splatbl */
var49.i =
- ((var48 & 0xff) << 24) | ((var48 & 0xff) << 16) | ((var48 & 0xff) <<
- 8) | (var48 & 0xff);
+ ((((orc_uint32) var48) & 0xff) << 24) | ((((orc_uint32) var48) & 0xff)
+ << 16) | ((((orc_uint32) var48) & 0xff) << 8) | (((orc_uint32) var48)
+ & 0xff);
/* 5: convubw */
var50.x4[0] = (orc_uint8) var49.x4[0];
var50.x4[1] = (orc_uint8) var49.x4[1];
@@ -2132,11 +2196,19 @@ _backup_compositor_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
- /* 8: shruw */
- var52.x4[0] = ((orc_uint16) var51.x4[0]) >> 8;
- var52.x4[1] = ((orc_uint16) var51.x4[1]) >> 8;
- var52.x4[2] = ((orc_uint16) var51.x4[2]) >> 8;
- var52.x4[3] = ((orc_uint16) var51.x4[3]) >> 8;
+ /* 8: div255w */
+ var52.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[0] + 128)) +
+ (((orc_uint16) (var51.x4[0] + 128)) >> 8))) >> 8;
+ var52.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[1] + 128)) +
+ (((orc_uint16) (var51.x4[1] + 128)) >> 8))) >> 8;
+ var52.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[2] + 128)) +
+ (((orc_uint16) (var51.x4[2] + 128)) >> 8))) >> 8;
+ var52.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var51.x4[3] + 128)) +
+ (((orc_uint16) (var51.x4[3] + 128)) >> 8))) >> 8;
/* 9: convubw */
var53.x4[0] = (orc_uint8) var45.x4[0];
var53.x4[1] = (orc_uint8) var45.x4[1];
@@ -2167,8 +2239,9 @@ _backup_compositor_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
var61 = var60.i;
/* 18: splatbl */
var62.i =
- ((var61 & 0xff) << 24) | ((var61 & 0xff) << 16) | ((var61 & 0xff) <<
- 8) | (var61 & 0xff);
+ ((((orc_uint32) var61) & 0xff) << 24) | ((((orc_uint32) var61) & 0xff)
+ << 16) | ((((orc_uint32) var61) & 0xff) << 8) | (((orc_uint32) var61)
+ & 0xff);
/* 19: convubw */
var63.x4[0] = (orc_uint8) var62.x4[0];
var63.x4[1] = (orc_uint8) var62.x4[1];
@@ -2271,18 +2344,18 @@ compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
1, 7, 9, 27, 99, 111, 109, 112, 111, 115, 105, 116, 111, 114, 95, 111,
114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114, 97, 11,
4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0, 0,
- 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 4, 8,
- 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8, 20,
- 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 19,
- 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 36, 39, 21, 2,
- 89, 36, 36, 24, 21, 2, 95, 36, 36, 20, 21, 2, 150, 41, 32, 21,
- 2, 89, 41, 41, 36, 115, 39, 16, 21, 2, 150, 37, 39, 21, 2, 98,
- 37, 37, 36, 113, 32, 0, 126, 33, 32, 19, 163, 34, 33, 157, 35, 34,
- 152, 39, 35, 21, 2, 150, 38, 39, 21, 2, 89, 38, 38, 37, 21, 2,
- 80, 38, 38, 21, 2, 150, 40, 32, 21, 2, 89, 40, 40, 38, 21, 2,
- 70, 40, 40, 41, 21, 2, 70, 38, 38, 36, 21, 2, 81, 40, 40, 38,
- 21, 2, 157, 32, 40, 106, 32, 32, 18, 21, 2, 157, 39, 38, 106, 39,
- 39, 17, 123, 32, 32, 39, 128, 0, 32, 2, 0,
+ 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 16, 2, 20,
+ 4, 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20,
+ 8, 20, 8, 113, 32, 4, 126, 33, 32, 19, 163, 34, 33, 157, 35, 34,
+ 152, 39, 35, 21, 2, 150, 36, 39, 21, 2, 89, 36, 36, 24, 21, 2,
+ 80, 36, 36, 21, 2, 150, 41, 32, 21, 2, 89, 41, 41, 36, 115, 39,
+ 16, 21, 2, 150, 37, 39, 21, 2, 98, 37, 37, 36, 113, 32, 0, 126,
+ 33, 32, 19, 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 38,
+ 39, 21, 2, 89, 38, 38, 37, 21, 2, 80, 38, 38, 21, 2, 150, 40,
+ 32, 21, 2, 89, 40, 40, 38, 21, 2, 70, 40, 40, 41, 21, 2, 70,
+ 38, 38, 36, 21, 2, 81, 40, 40, 38, 21, 2, 157, 32, 40, 106, 32,
+ 32, 18, 21, 2, 157, 39, 38, 106, 39, 39, 17, 123, 32, 32, 39, 128,
+ 0, 32, 2, 0,
};
p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, _backup_compositor_orc_overlay_bgra);
@@ -2297,7 +2370,6 @@ compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_add_constant (p, 4, 0xff000000, "c2");
orc_program_add_constant (p, 4, 0x00ffffff, "c3");
orc_program_add_constant (p, 4, 0x00000018, "c4");
- orc_program_add_constant (p, 4, 0x00000008, "c5");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 4, "t1");
orc_program_add_temporary (p, 4, "t2");
@@ -2324,7 +2396,7 @@ compositor_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
ORC_VAR_D1);
orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C5,
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_D1,
ORC_VAR_D1);
orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1,
ORC_VAR_D1, ORC_VAR_D1);