video-orc: fix unpack functions for RGB/RGB15 on BE
authorWim Taymans <wtaymans@redhat.com>
Mon, 2 Mar 2015 14:07:34 +0000 (15:07 +0100)
committerWim Taymans <wtaymans@redhat.com>
Mon, 2 Mar 2015 14:07:34 +0000 (15:07 +0100)
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745337

gst-libs/gst/video/video-orc-dist.c
gst-libs/gst/video/video-orc.orc

index 7824905c1460a4c8c1ad676e40cd9f11ed553811..0362c0e6eb6653217c95c3719a3f87d42fa65af1 100644 (file)
@@ -7329,15 +7329,15 @@ video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1,
     /* 14: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var51.i;
-      _dest.x2[1] = var43.i;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
       var53.i = _dest.i;
     }
     /* 15: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var52.i;
-      _dest.x2[1] = var50.i;
+      _dest.x2[0] = var50.i;
+      _dest.x2[1] = var52.i;
       var54.i = _dest.i;
     }
     /* 16: shll */
@@ -7437,15 +7437,15 @@ _backup_video_orc_unpack_RGB15_be (OrcExecutor * ORC_RESTRICT ex)
     /* 14: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var51.i;
-      _dest.x2[1] = var43.i;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
       var53.i = _dest.i;
     }
     /* 15: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var52.i;
-      _dest.x2[1] = var50.i;
+      _dest.x2[0] = var50.i;
+      _dest.x2[1] = var52.i;
       var54.i = _dest.i;
     }
     /* 16: shll */
@@ -7481,8 +7481,8 @@ video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1,
         14, 2, 0, 66, 0, 0, 14, 2, 255, 0, 0, 0, 14, 4, 8, 0,
         0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 82, 32,
         4, 73, 33, 32, 16, 73, 34, 32, 17, 73, 35, 32, 18, 93, 35, 35,
-        19, 90, 33, 33, 20, 90, 34, 34, 21, 90, 35, 35, 21, 195, 36, 34,
-        22, 195, 37, 35, 33, 124, 36, 36, 23, 123, 0, 36, 37, 2, 0,
+        19, 90, 33, 33, 20, 90, 34, 34, 21, 90, 35, 35, 21, 195, 36, 22,
+        34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB15_be);
@@ -7523,9 +7523,9 @@ video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_C7,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T2,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
           ORC_VAR_D1);
@@ -8987,15 +8987,15 @@ video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1,
     /* 14: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var51.i;
-      _dest.x2[1] = var43.i;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
       var53.i = _dest.i;
     }
     /* 15: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var50.i;
-      _dest.x2[1] = var52.i;
+      _dest.x2[0] = var52.i;
+      _dest.x2[1] = var50.i;
       var54.i = _dest.i;
     }
     /* 16: shll */
@@ -9095,15 +9095,15 @@ _backup_video_orc_unpack_BGR15_be (OrcExecutor * ORC_RESTRICT ex)
     /* 14: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var51.i;
-      _dest.x2[1] = var43.i;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
       var53.i = _dest.i;
     }
     /* 15: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var50.i;
-      _dest.x2[1] = var52.i;
+      _dest.x2[0] = var52.i;
+      _dest.x2[1] = var50.i;
       var54.i = _dest.i;
     }
     /* 16: shll */
@@ -9139,8 +9139,8 @@ video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1,
         14, 2, 0, 66, 0, 0, 14, 2, 255, 0, 0, 0, 14, 4, 8, 0,
         0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 82, 32,
         4, 73, 35, 32, 16, 73, 34, 32, 17, 73, 33, 32, 18, 93, 33, 33,
-        19, 90, 35, 35, 20, 90, 34, 34, 21, 90, 33, 33, 21, 195, 36, 34,
-        22, 195, 37, 35, 33, 124, 36, 36, 23, 123, 0, 36, 37, 2, 0,
+        19, 90, 35, 35, 20, 90, 34, 34, 21, 90, 33, 33, 21, 195, 36, 22,
+        34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR15_be);
@@ -9181,9 +9181,9 @@ video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_C7,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T2,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
           ORC_VAR_D1);
@@ -9561,15 +9561,15 @@ video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1,
     /* 11: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var41.i;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
       var50.i = _dest.i;
     }
     /* 12: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var47.i;
-      _dest.x2[1] = var49.i;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var47.i;
       var51.i = _dest.i;
     }
     /* 13: shll */
@@ -9652,15 +9652,15 @@ _backup_video_orc_unpack_BGR15_be_trunc (OrcExecutor * ORC_RESTRICT ex)
     /* 11: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var41.i;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
       var50.i = _dest.i;
     }
     /* 12: mergewl */
     {
       orc_union32 _dest;
-      _dest.x2[0] = var47.i;
-      _dest.x2[1] = var49.i;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var47.i;
       var51.i = _dest.i;
     }
     /* 13: shll */
@@ -9697,7 +9697,7 @@ video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1,
         0, 0, 14, 4, 8, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20, 2,
         20, 4, 20, 4, 82, 32, 4, 73, 35, 32, 16, 73, 34, 32, 17, 73,
         33, 32, 18, 95, 35, 35, 19, 95, 34, 34, 20, 93, 33, 33, 21, 195,
-        36, 34, 22, 195, 37, 35, 33, 124, 36, 36, 23, 123, 0, 36, 37, 2,
+        36, 22, 34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2,
         0,
       };
       p = orc_program_new_from_static_bytecode (bc);
@@ -9739,9 +9739,9 @@ video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_C7,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T2,
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
           ORC_VAR_D1);
index 962b4a5be6f7f97091e175898cdac17550804178..a966a4f423f72a4e1af18df49dad362423c19317 100644 (file)
@@ -502,8 +502,8 @@ shlw b, b, 5
 mulhsw r, r, 0x0210
 mulhsw g, g, 0x4200
 mulhsw b, b, 0x4200
-mergewl ag, g, 0xff
-mergewl rb, b, r
+mergewl ag, 0xff, g
+mergewl rb, r, b
 shll ag, ag, 8
 orl argb, ag, rb
 
@@ -632,8 +632,8 @@ shlw r, r, 5
 mulhsw b, b, 0x0210
 mulhsw g, g, 0x4200
 mulhsw r, r, 0x4200
-mergewl ag, g, 0xff
-mergewl rb, b, r
+mergewl ag, 0xff, g
+mergewl rb, r, b
 shll ag, ag, 8
 orl argb, ag, rb
 
@@ -676,8 +676,8 @@ andw r, t, 0x001f
 shruw b, b, 7
 shruw g, g, 2
 shlw r, r, 3
-mergewl ag, g, 0xff
-mergewl rb, b, r
+mergewl ag, 0xff, g
+mergewl rb, r, b
 shll ag, ag, 8
 orl argb, ag, rb