Backed out changeset 4914871dbd96 (bug 1163740) now that the diagnostic patch has served its purpose
authorDavid Major <dmajor@mozilla.com>
Tue, 26 May 2015 13:07:26 -0400
changeset 276457 8dd444c92c4d1bfe0a4f89102aefe4d56d7bffa2
parent 276456 6f42cdf799d0b976fb299b4b107ca62da014a20b
child 276458 7e8f2f8cd18cdb78817c391d9bf5354d4c05625f
push id4932
push userjlund@mozilla.com
push dateMon, 10 Aug 2015 18:23:06 +0000
treeherdermozilla-beta@6dd5a4f5f745 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1163740
milestone41.0a1
backs out4914871dbd96f8bf07da3d09f69704a688326b9d
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 4914871dbd96 (bug 1163740) now that the diagnostic patch has served its purpose
gfx/qcms/transform-sse1.c
--- a/gfx/qcms/transform-sse1.c
+++ b/gfx/qcms/transform-sse1.c
@@ -43,17 +43,17 @@ void qcms_transform_data_rgb_out_lut_sse
     const __m128 mat2  = _mm_load_ps(mat[2]);
 
     /* these values don't change, either */
     const __m128 max   = _mm_load_ps(clampMaxValueX4);
     const __m128 min   = _mm_setzero_ps();
     const __m128 scale = _mm_load_ps(floatScaleX4);
 
     /* working variables */
-    __m128 vec_r, vec_g, vec_b, result, result_hi;
+    __m128 vec_r, vec_g, vec_b, result;
 
     /* CYA */
     if (!length)
         return;
 
     /* one pixel is handled outside of the loop */
     length--;
 
@@ -79,21 +79,19 @@ void qcms_transform_data_rgb_out_lut_sse
 
         /* crunch, crunch, crunch */
         vec_r  = _mm_add_ps(vec_r, _mm_add_ps(vec_g, vec_b));
         vec_r  = _mm_max_ps(min, vec_r);
         vec_r  = _mm_min_ps(max, vec_r);
         result = _mm_mul_ps(vec_r, scale);
 
         /* store calc'd output tables indices */
-        /* Bug 1163740 temporary investigation:
-         * Write output[0] last, to keep |result| in a register in minidumps */
-        result_hi = _mm_movehl_ps(result, result);
-        *((__m64 *)&output[2]) = _mm_cvtps_pi32(result_hi);
         *((__m64 *)&output[0]) = _mm_cvtps_pi32(result);
+        result = _mm_movehl_ps(result, result);
+        *((__m64 *)&output[2]) = _mm_cvtps_pi32(result) ;
 
         /* load for next loop while store completes */
         vec_r = _mm_load_ss(&igtbl_r[src[0]]);
         vec_g = _mm_load_ss(&igtbl_g[src[1]]);
         vec_b = _mm_load_ss(&igtbl_b[src[2]]);
         src += 3;
 
         /* use calc'd indices to output RGB values */
@@ -162,17 +160,17 @@ void qcms_transform_data_rgba_out_lut_ss
     const __m128 mat2  = _mm_load_ps(mat[2]);
 
     /* these values don't change, either */
     const __m128 max   = _mm_load_ps(clampMaxValueX4);
     const __m128 min   = _mm_setzero_ps();
     const __m128 scale = _mm_load_ps(floatScaleX4);
 
     /* working variables */
-    __m128 vec_r, vec_g, vec_b, result, result_hi;
+    __m128 vec_r, vec_g, vec_b, result;
     unsigned char alpha;
 
     /* CYA */
     if (!length)
         return;
 
     /* one pixel is handled outside of the loop */
     length--;
@@ -203,21 +201,20 @@ void qcms_transform_data_rgba_out_lut_ss
         alpha   = src[3];
 
         /* crunch, crunch, crunch */
         vec_r  = _mm_add_ps(vec_r, _mm_add_ps(vec_g, vec_b));
         vec_r  = _mm_max_ps(min, vec_r);
         vec_r  = _mm_min_ps(max, vec_r);
         result = _mm_mul_ps(vec_r, scale);
 
-        /* Bug 1163740 temporary investigation:
-         * Write output[0] last, to keep |result| in a register in minidumps */
-        result_hi = _mm_movehl_ps(result, result);
-        *((__m64 *)&output[2]) = _mm_cvtps_pi32(result_hi);
+        /* store calc'd output tables indices */
         *((__m64 *)&output[0]) = _mm_cvtps_pi32(result);
+        result = _mm_movehl_ps(result, result);
+        *((__m64 *)&output[2]) = _mm_cvtps_pi32(result);
 
         /* load gamma values for next loop while store completes */
         vec_r = _mm_load_ss(&igtbl_r[src[0]]);
         vec_g = _mm_load_ss(&igtbl_g[src[1]]);
         vec_b = _mm_load_ss(&igtbl_b[src[2]]);
         src += 4;
 
         /* use calc'd indices to output RGB values */