components/desktop/thunderbird/patches/firefox31-97-ycbcr2.patch
author Stacy Yeh <stacy.yeh@oracle.com>
Mon, 11 Jan 2016 09:27:45 -0800
changeset 5255 cea0e462549a
permissions -rw-r--r--
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5255
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     1
For studio. We can remove if we don't care about studio.
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     3
EMMS() is not in sparc.
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     4
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     5
--- comm-esr31/mozilla/gfx/ycbcr/chromium_types.h.orig	2015-06-04 17:42:52.382798534 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     6
+++ comm-esr31/mozilla/gfx/ycbcr/chromium_types.h	2015-06-04 17:42:52.407116949 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     7
@@ -10,7 +10,7 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     8
 // On Windows, protypes.h is #included, which defines these types.  This sucks!
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     9
 #ifndef PROTYPES_H
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    10
 typedef uint8_t uint8;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    11
-typedef int8_t int8;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    12
+//typedef int8_t int8;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    13
 typedef int16_t int16;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    14
 typedef uint16_t uint16;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    15
 typedef uint32_t uint32;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    16
--- comm-esr31/mozilla/gfx/ycbcr/moz.build.orig	2015-06-04 17:42:52.388097037 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    17
+++ comm-esr31/mozilla/gfx/ycbcr/moz.build	2015-06-04 17:42:52.407236264 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    18
@@ -34,7 +34,10 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    19
             ]
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    20
     else:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    21
         SOURCES += ['yuv_convert_mmx.cpp']
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    22
-        SOURCES['yuv_convert_mmx.cpp'].flags += CONFIG['MMX_FLAGS']
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    23
+        if CONFIG['GNU_CC']:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    24
+            SOURCES['yuv_convert_mmx.cpp'].flags += CONFIG['MMX_FLAGS']
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    25
+        if CONFIG['SOLARIS_SUNPRO_CXX']:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    26
+            SOURCES['yuv_convert_mmx.cpp'].flags += ['-xarch=sse', '-xO4']
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    27
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    28
 if CONFIG['_MSC_VER']:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    29
     if CONFIG['OS_TEST'] == 'x86_64':
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    30
@@ -56,6 +59,8 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    31
     SOURCES += [
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    32
         'yuv_row_posix.cpp',
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    33
     ]
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    34
+    if CONFIG['SOLARIS_SUNPRO_CXX']:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    35
+        SOURCES['yuv_row_posix.cpp'].flags += ['$(srcdir)/yuv_row_posix.il']
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    36
 else:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    37
     SOURCES += [
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    38
         'yuv_row_other.cpp',
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    39
--- comm-esr31/mozilla/gfx/ycbcr/yuv_convert.cpp.orig	2015-06-04 17:42:52.393413194 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    40
+++ comm-esr31/mozilla/gfx/ycbcr/yuv_convert.cpp	2015-06-04 17:42:52.407392523 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    41
@@ -105,9 +105,11 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    42
     }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    43
   }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    44
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    45
+#ifdef ARCH_CPU_X86_FAMILY
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    46
   // MMX used for FastConvertYUVToRGB32Row requires emms instruction.
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    47
   if (has_sse)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    48
     EMMS();
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    49
+#endif
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    50
 }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    51
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    52
 // C version does 8 at a time to mimic MMX code
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    53
@@ -348,9 +350,12 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    54
 #endif
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    55
     }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    56
   }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    57
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    58
+#ifdef ARCH_CPU_X86_FAMILY
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    59
   // MMX used for FastConvertYUVToRGB32Row and FilterRows requires emms.
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    60
   if (has_mmx)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    61
     EMMS();
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    62
+#endif
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    63
 }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    64
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    65
 }  // namespace gfx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    66
--- comm-esr31/mozilla/gfx/ycbcr/yuv_row_posix.cpp.orig	2015-06-04 17:42:52.398714978 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    67
+++ comm-esr31/mozilla/gfx/ycbcr/yuv_row_posix.cpp	2015-06-04 17:42:52.407629998 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    68
@@ -258,7 +258,7 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    69
 );
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    70
 }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    71
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    72
-#elif defined(MOZILLA_MAY_SUPPORT_SSE) && defined(ARCH_CPU_X86_32) && !defined(__PIC__)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    73
+#elif defined(MOZILLA_MAY_SUPPORT_SSE) && defined(ARCH_CPU_X86_32) && !defined(__PIC__) && !defined(__SUNPRO_CC)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    74
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    75
 // PIC version is slower because less registers are available, so
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    76
 // non-PIC is used on platforms where it is possible.
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    77
@@ -564,7 +564,7 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    78
                              width, source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    79
 }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    80
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    81
-#elif defined(MOZILLA_MAY_SUPPORT_SSE) && defined(ARCH_CPU_X86_32) && defined(__PIC__)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    82
+#elif defined(MOZILLA_MAY_SUPPORT_SSE) && defined(ARCH_CPU_X86_32) && defined(__PIC__) && !defined(__SUNPRO_CC)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    83
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    84
 void PICConvertYUVToRGB32Row_SSE(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    85
                                  const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    86
@@ -884,6 +884,128 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    87
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    88
   LinearScaleYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf, width, source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    89
 }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    90
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    91
+#elif defined(MOZILLA_MAY_SUPPORT_SSE) && defined(ARCH_CPU_X86_32) && defined(__SUNPRO_CC)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    92
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    93
+void FastConvertYUVToRGB32Row_IL(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    94
+                                 const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    95
+                                 const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    96
+                                 uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    97
+                                 int width);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    98
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    99
+void FastConvertYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   100
+                              const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   101
+                              const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   102
+                              uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   103
+                              int width) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   104
+  if (mozilla::supports_sse()) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   105
+    FastConvertYUVToRGB32Row_IL(y_buf, u_buf, v_buf, rgb_buf, width);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   106
+    return;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   107
+  }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   108
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   109
+  FastConvertYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf, width, 1);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   110
+}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   111
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   112
+void ScaleYUVToRGB32Row_IL(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   113
+                           const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   114
+                           const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   115
+                           uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   116
+                           int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   117
+                           int source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   118
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   119
+void ScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   120
+                        const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   121
+                        const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   122
+                        uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   123
+                        int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   124
+                        int source_dx) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   125
+  if (mozilla::supports_sse()) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   126
+    ScaleYUVToRGB32Row_IL(y_buf, u_buf, v_buf, rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   127
+                          width, source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   128
+    return;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   129
+  }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   130
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   131
+  ScaleYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   132
+                       width, source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   133
+}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   134
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   135
+void LinearScaleYUVToRGB32Row_IL(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   136
+                                 const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   137
+                                 const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   138
+                                 uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   139
+                                 int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   140
+                                 int source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   141
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   142
+void LinearScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   143
+                              const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   144
+                              const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   145
+                              uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   146
+                              int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   147
+                              int source_dx) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   148
+  if (mozilla::supports_sse()) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   149
+    LinearScaleYUVToRGB32Row_IL(y_buf, u_buf, v_buf, rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   150
+                                width, source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   151
+    return;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   152
+  }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   153
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   154
+  LinearScaleYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   155
+                             width, source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   156
+}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   157
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   158
+/*
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   159
+void PICConvertYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   160
+                             const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   161
+                             const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   162
+                             uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   163
+                             int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   164
+                             int16 *kCoefficientsRgbY);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   165
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   166
+void FastConvertYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   167
+                              const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   168
+                              const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   169
+                              uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   170
+                              int width) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   171
+  PICConvertYUVToRGB32Row(y_buf, u_buf, v_buf, rgb_buf, width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   172
+                          &kCoefficientsRgbY[0][0]);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   173
+}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   174
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   175
+void PICScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   176
+                           const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   177
+                           const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   178
+                           uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   179
+                           int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   180
+                           int source_dx,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   181
+                           int16 *kCoefficientsRgbY);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   182
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   183
+void ScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   184
+                        const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   185
+                        const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   186
+                        uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   187
+                        int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   188
+                        int source_dx) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   189
+  PICScaleYUVToRGB32Row(y_buf, u_buf, v_buf, rgb_buf, width, source_dx,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   190
+                        &kCoefficientsRgbY[0][0]);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   191
+}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   192
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   193
+void PICLinearScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   194
+                                 const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   195
+                                 const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   196
+                                 uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   197
+                                 int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   198
+                                 int source_dx,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   199
+                                 int16 *kCoefficientsRgbY);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   200
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   201
+void LinearScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   202
+                              const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   203
+                              const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   204
+                              uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   205
+                              int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   206
+                              int source_dx) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   207
+  PICLinearScaleYUVToRGB32Row(y_buf, u_buf, v_buf, rgb_buf, width, source_dx,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   208
+                              &kCoefficientsRgbY[0][0]);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   209
+}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   210
+*/
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   211
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   212
 #else
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   213
 void FastConvertYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   214
                               const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   215
--- comm-esr31/mozilla/gfx/ycbcr/yuv_row_posix.il.orig	1969-12-31 16:00:00.000000000 -0800
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   216
+++ comm-esr31/mozilla/gfx/ycbcr/yuv_row_posix.il	2015-06-04 17:42:52.407800139 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   217
@@ -0,0 +1,480 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   218
+/ void FastConvertYUVToRGB32Row_IL(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   219
+/                                  const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   220
+/                                  const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   221
+/                                  uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   222
+/                                  int width);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   223
+    .inline FastConvertYUVToRGB32Row_IL, 20
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   224
+    pusha
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   225
+    mov    0x20(%esp),%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   226
+    mov    0x24(%esp),%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   227
+    mov    0x28(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   228
+    mov    0x2c(%esp),%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   229
+    mov    0x30(%esp),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   230
+    jmp    1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   231
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   232
+0:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   233
+    movzbl (%edi),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   234
+    add    $0x1,%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   235
+    movzbl (%esi),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   236
+    add    $0x1,%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   237
+    movq   kCoefficientsRgbY+2048(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   238
+    movzbl (%edx),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   239
+    paddsw kCoefficientsRgbY+4096(,%ebx,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   240
+    movzbl 0x1(%edx),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   241
+    movq   kCoefficientsRgbY(,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   242
+    add    $0x2,%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   243
+    movq   kCoefficientsRgbY(,%ebx,8),%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   244
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   245
+    paddsw %mm0,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   246
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   247
+    psraw  $0x6,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   248
+    packuswb %mm2,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   249
+    movntq %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   250
+    add    $0x8,%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   251
+1:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   252
+    sub    $0x2,%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   253
+    jns    0b
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   254
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   255
+    and    $0x1,%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   256
+    je     2f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   257
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   258
+    movzbl (%edi),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   259
+    movq   kCoefficientsRgbY+2048(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   260
+    movzbl (%esi),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   261
+    paddsw kCoefficientsRgbY+4096(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   262
+    movzbl (%edx),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   263
+    movq   kCoefficientsRgbY(,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   264
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   265
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   266
+    packuswb %mm1,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   267
+    movd   %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   268
+2:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   269
+    popa
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   270
+    .end
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   271
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   272
+/ void ScaleYUVToRGB32Row_IL(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   273
+/                            const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   274
+/                            const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   275
+/                            uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   276
+/                            int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   277
+/                            int source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   278
+    .inline ScaleYUVToRGB32Row_IL, 24
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   279
+    pusha
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   280
+    mov    0x20(%esp),%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   281
+    mov    0x24(%esp),%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   282
+    mov    0x28(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   283
+    mov    0x2c(%esp),%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   284
+    mov    0x30(%esp),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   285
+    xor    %ebx,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   286
+    jmp    1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   287
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   288
+0:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   289
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   290
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   291
+    movzbl (%edi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   292
+    movq   kCoefficientsRgbY+2048(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   293
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   294
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   295
+    movzbl (%esi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   296
+    paddsw kCoefficientsRgbY+4096(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   297
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   298
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   299
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   300
+    movzbl (%edx,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   301
+    movq   kCoefficientsRgbY(,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   302
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   303
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   304
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   305
+    movzbl (%edx,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   306
+    movq   kCoefficientsRgbY(,%eax,8),%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   307
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   308
+    paddsw %mm0,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   309
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   310
+    psraw  $0x6,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   311
+    packuswb %mm2,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   312
+    movntq %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   313
+    add    $0x8,%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   314
+1:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   315
+    sub    $0x2,%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   316
+    jns    0b
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   317
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   318
+    and    $0x1,%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   319
+    je     2f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   320
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   321
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   322
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   323
+    movzbl (%edi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   324
+    movq   kCoefficientsRgbY+2048(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   325
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   326
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   327
+    movzbl (%esi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   328
+    paddsw kCoefficientsRgbY+4096(,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   329
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   330
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   331
+    movzbl (%edx,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   332
+    movq   kCoefficientsRgbY(,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   333
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   334
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   335
+    packuswb %mm1,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   336
+    movd   %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   337
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   338
+2:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   339
+    popa
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   340
+    .end
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   341
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   342
+/ void LinearScaleYUVToRGB32Row_IL(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   343
+/                                  const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   344
+/                                  const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   345
+/                                  uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   346
+/                                  int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   347
+/                                  int source_dx);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   348
+    .inline LinearScaleYUVToRGB32Row_IL, 24
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   349
+    pusha
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   350
+    mov    0x20(%esp),%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   351
+    mov    0x24(%esp),%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   352
+    mov    0x2c(%esp),%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   353
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   354
+    / source_width = width * source_dx + ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   355
+    mov    0x30(%esp), %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   356
+    imull  0x34(%esp), %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   357
+    mov    %ecx, 0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   358
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   359
+    mov    0x34(%esp), %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   360
+    xor    %ebx,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   361
+       / x = 0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   362
+    cmp    $0x20000,%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   363
+       / if source_dx >= 2.0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   364
+    jl     1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   365
+    mov    $0x8000,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   366
+       / x = 0.5 for 1/2 or less
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   367
+    jmp    1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   368
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   369
+0:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   370
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   371
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   372
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   373
+    movzbl (%edi,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   374
+    movzbl 1(%edi,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   375
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   376
+    andl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   377
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   378
+    xorl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   379
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   380
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   381
+    shrl   $17, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   382
+    movq   kCoefficientsRgbY+2048(,%ecx,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   383
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   384
+    mov    0x28(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   385
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   386
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   387
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   388
+    movzbl (%esi,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   389
+    movzbl 1(%esi,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   390
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   391
+    andl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   392
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   393
+    xorl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   394
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   395
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   396
+    shrl   $17, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   397
+    paddsw kCoefficientsRgbY+4096(,%ecx,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   398
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   399
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   400
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   401
+    movzbl (%edx,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   402
+    movzbl 1(%edx,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   403
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   404
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   405
+    andl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   406
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   407
+    xorl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   408
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   409
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   410
+    shrl   $16, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   411
+    movq   kCoefficientsRgbY(,%ecx,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   412
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   413
+    cmp    0x30(%esp), %ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   414
+    jge    2f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   415
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   416
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   417
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   418
+    movzbl (%edx,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   419
+    movzbl 1(%edx,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   420
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   421
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   422
+    andl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   423
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   424
+    xorl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   425
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   426
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   427
+    shrl   $16, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   428
+    movq   kCoefficientsRgbY(,%ecx,8),%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   429
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   430
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   431
+    paddsw %mm0,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   432
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   433
+    psraw  $0x6,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   434
+    packuswb %mm2,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   435
+    movntq %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   436
+    add    $0x8,%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   437
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   438
+1:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   439
+    cmp    0x30(%esp), %ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   440
+    jl     0b
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   441
+    jmp    3f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   442
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   443
+2:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   444
+    paddsw %mm0, %mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   445
+    psraw $6, %mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   446
+    packuswb %mm1, %mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   447
+    movd %mm1, (%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   448
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   449
+3:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   450
+    popa
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   451
+    .end
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   452
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   453
+/ void PICConvertYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   454
+/                              const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   455
+/                              const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   456
+/                              uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   457
+/                              int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   458
+/                              int16 *kCoefficientsRgbY);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   459
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   460
+    .inline PICConvertYUVToRGB32Row, 24
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   461
+    pusha
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   462
+    mov    0x20(%esp),%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   463
+    mov    0x24(%esp),%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   464
+    mov    0x28(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   465
+    mov    0x2c(%esp),%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   466
+    mov    0x34(%esp),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   467
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   468
+    jmp    1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   469
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   470
+0:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   471
+    movzbl (%edi),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   472
+    add    $0x1,%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   473
+    movzbl (%esi),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   474
+    add    $0x1,%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   475
+    movq   2048(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   476
+    movzbl (%edx),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   477
+    paddsw 4096(%ecx,%ebx,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   478
+    movzbl 0x1(%edx),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   479
+    movq   0(%ecx,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   480
+    add    $0x2,%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   481
+    movq   0(%ecx,%ebx,8),%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   482
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   483
+    paddsw %mm0,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   484
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   485
+    psraw  $0x6,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   486
+    packuswb %mm2,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   487
+    movntq %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   488
+    add    $0x8,%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   489
+1:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   490
+    subl   $0x2,0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   491
+    jns    0b
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   492
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   493
+    andl   $0x1,0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   494
+    je     2f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   495
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   496
+    movzbl (%edi),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   497
+    movq   2048(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   498
+    movzbl (%esi),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   499
+    paddsw 4096(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   500
+    movzbl (%edx),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   501
+    movq   0(%ecx,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   502
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   503
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   504
+    packuswb %mm1,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   505
+    movd   %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   506
+2:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   507
+    popa
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   508
+	.end
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   509
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   510
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   511
+/ void PICScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   512
+/                            const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   513
+/                            const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   514
+/                            uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   515
+/                            int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   516
+/                            int source_dx,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   517
+/                            int16 *kCoefficientsRgbY);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   518
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   519
+    .inline PICScaleYUVToRGB32Row, 28
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   520
+    pusha
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   521
+    mov    0x20(%esp),%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   522
+    mov    0x24(%esp),%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   523
+    mov    0x28(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   524
+    mov    0x2c(%esp),%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   525
+    mov    0x38(%esp),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   526
+    xor    %ebx,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   527
+    jmp    1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   528
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   529
+0:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   530
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   531
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   532
+    movzbl (%edi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   533
+    movq   2048(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   534
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   535
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   536
+    movzbl (%esi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   537
+    paddsw 4096(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   538
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   539
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   540
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   541
+    movzbl (%edx,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   542
+    movq   0(%ecx,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   543
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   544
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   545
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   546
+    movzbl (%edx,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   547
+    movq   0(%ecx,%eax,8),%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   548
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   549
+    paddsw %mm0,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   550
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   551
+    psraw  $0x6,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   552
+    packuswb %mm2,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   553
+    movntq %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   554
+    add    $0x8,%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   555
+1:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   556
+    subl   $0x2,0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   557
+    jns    0b
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   558
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   559
+    andl   $0x1,0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   560
+    je     2f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   561
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   562
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   563
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   564
+    movzbl (%edi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   565
+    movq   2048(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   566
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   567
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   568
+    movzbl (%esi,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   569
+    paddsw 4096(%ecx,%eax,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   570
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   571
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   572
+    movzbl (%edx,%eax,1),%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   573
+    movq   0(%ecx,%eax,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   574
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   575
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   576
+    packuswb %mm1,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   577
+    movd   %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   578
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   579
+2:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   580
+    popa
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   581
+	.end
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   582
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   583
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   584
+/ void PICLinearScaleYUVToRGB32Row(const uint8* y_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   585
+/                                  const uint8* u_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   586
+/                                  const uint8* v_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   587
+/                                  uint8* rgb_buf,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   588
+/                                  int width,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   589
+/                                  int source_dx,
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   590
+/                                  int16 *kCoefficientsRgbY);
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   591
+    .inline PICLinearScaleYUVToRGB32Row, 28
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   592
+    pusha
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   593
+    mov    0x20(%esp),%edx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   594
+    mov    0x2c(%esp),%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   595
+    mov    0x30(%esp),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   596
+    mov    0x38(%esp),%edi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   597
+    xor    %ebx,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   598
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   599
+    / source_width = width * source_dx + ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   600
+    mov    0x30(%esp), %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   601
+    imull  0x34(%esp), %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   602
+    mov    %ecx, 0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   603
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   604
+    mov    0x34(%esp), %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   605
+    xor    %ebx,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   606
+       / x = 0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   607
+    cmp    $0x20000,%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   608
+       / if source_dx >= 2.0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   609
+    jl     1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   610
+    mov    $0x8000,%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   611
+       / x = 0.5 for 1/2 or less
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   612
+    jmp    1f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   613
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   614
+0:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   615
+    mov    0x24(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   616
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   617
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   618
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   619
+    movzbl (%esi,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   620
+    movzbl 1(%esi,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   621
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   622
+    andl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   623
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   624
+    xorl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   625
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   626
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   627
+    shrl   $17, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   628
+    movq   2048(%edi,%ecx,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   629
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   630
+    mov    0x28(%esp),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   631
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   632
+    sar    $0x11,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   633
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   634
+    movzbl (%esi,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   635
+    movzbl 1(%esi,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   636
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   637
+    andl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   638
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   639
+    xorl   $0x1fffe, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   640
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   641
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   642
+    shrl   $17, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   643
+    paddsw 4096(%edi,%ecx,8),%mm0
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   644
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   645
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   646
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   647
+    movzbl (%edx,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   648
+    movzbl 1(%edx,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   649
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   650
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   651
+    andl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   652
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   653
+    xorl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   654
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   655
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   656
+    shrl   $16, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   657
+    movq   (%edi,%ecx,8),%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   658
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   659
+    cmp    0x30(%esp), %ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   660
+    jge    2f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   661
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   662
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   663
+    sar    $0x10,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   664
+    movzbl (%edx,%eax,1),%ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   665
+    movzbl 1(%edx,%eax,1),%esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   666
+    mov    %ebx,%eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   667
+    add    0x34(%esp),%ebx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   668
+    andl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   669
+    imul   %eax, %esi
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   670
+    xorl   $0xffff, %eax
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   671
+    imul   %eax, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   672
+    addl   %esi, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   673
+    shrl   $16, %ecx
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   674
+    movq   (%edi,%ecx,8),%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   675
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   676
+    paddsw %mm0,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   677
+    paddsw %mm0,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   678
+    psraw  $0x6,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   679
+    psraw  $0x6,%mm2
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   680
+    packuswb %mm2,%mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   681
+    movntq %mm1,0x0(%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   682
+    add    $0x8,%ebp
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   683
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   684
+1:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   685
+    cmp    %ebx, 0x30(%esp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   686
+    jg     0b
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   687
+    jmp    3f
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   688
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   689
+2:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   690
+    paddsw %mm0, %mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   691
+    psraw $6, %mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   692
+    packuswb %mm1, %mm1
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   693
+    movd %mm1, (%ebp)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   694
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   695
+3:
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   696
+    popa
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   697
+    .end
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   698
--- comm-esr31/mozilla/gfx/ycbcr/yuv_row_table.cpp.orig	2015-06-04 17:42:52.404795308 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   699
+++ comm-esr31/mozilla/gfx/ycbcr/yuv_row_table.cpp	2015-06-04 17:42:52.407911124 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   700
@@ -226,6 +226,10 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   701
   RGBV(0xFC), RGBV(0xFD), RGBV(0xFE), RGBV(0xFF),
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   702
 };
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   703
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   704
+#ifdef __SUNPRO_CC
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   705
+#pragma align 16 (kCoefficientsRgbY)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   706
+#endif
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   707
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   708
 #undef RGBY
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   709
 #undef RGBU
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
   710
 #undef RGBV