| Index: src/opts/SkBlitRow_opts_SSE2.cpp
|
| diff --git a/src/opts/SkBlitRow_opts_SSE2.cpp b/src/opts/SkBlitRow_opts_SSE2.cpp
|
| index 7f5b6779cf2d3d4a53d1d201ae3d1888b12cd31f..c017f7e4b3d1496f950e00f738dc30588226ecf9 100644
|
| --- a/src/opts/SkBlitRow_opts_SSE2.cpp
|
| +++ b/src/opts/SkBlitRow_opts_SSE2.cpp
|
| @@ -301,54 +301,6 @@ void Color32A_D565_SSE2(uint16_t dst[], SkPMColor src, int count, int x, int y)
|
| }
|
| }
|
|
|
| -void SkARGB32_A8_BlitMask_SSE2(void* device, size_t dstRB, const void* maskPtr,
|
| - size_t maskRB, SkColor origColor,
|
| - int width, int height) {
|
| - SkPMColor color = SkPreMultiplyColor(origColor);
|
| - size_t dstOffset = dstRB - (width << 2);
|
| - size_t maskOffset = maskRB - width;
|
| - SkPMColor* dst = (SkPMColor *)device;
|
| - const uint8_t* mask = (const uint8_t*)maskPtr;
|
| - do {
|
| - int count = width;
|
| - if (count >= 4) {
|
| - while (((size_t)dst & 0x0F) != 0 && (count > 0)) {
|
| - *dst = SkBlendARGB32(color, *dst, *mask);
|
| - mask++;
|
| - dst++;
|
| - count--;
|
| - }
|
| - __m128i *d = reinterpret_cast<__m128i*>(dst);
|
| - __m128i src_pixel = _mm_set1_epi32(color);
|
| - while (count >= 4) {
|
| - // Load 4 dst pixels
|
| - __m128i dst_pixel = _mm_load_si128(d);
|
| -
|
| - // Set the alpha value
|
| - __m128i alpha_wide = _mm_cvtsi32_si128(*reinterpret_cast<const uint32_t*>(mask));
|
| - alpha_wide = _mm_unpacklo_epi8(alpha_wide, _mm_setzero_si128());
|
| - alpha_wide = _mm_unpacklo_epi16(alpha_wide, _mm_setzero_si128());
|
| -
|
| - __m128i result = SkBlendARGB32_SSE2(src_pixel, dst_pixel, alpha_wide);
|
| - _mm_store_si128(d, result);
|
| - // Load the next 4 dst pixels and alphas
|
| - mask = mask + 4;
|
| - d++;
|
| - count -= 4;
|
| - }
|
| - dst = reinterpret_cast<SkPMColor*>(d);
|
| - }
|
| - while (count > 0) {
|
| - *dst= SkBlendARGB32(color, *dst, *mask);
|
| - dst += 1;
|
| - mask++;
|
| - count --;
|
| - }
|
| - dst = (SkPMColor *)((char*)dst + dstOffset);
|
| - mask += maskOffset;
|
| - } while (--height != 0);
|
| -}
|
| -
|
| // The following (left) shifts cause the top 5 bits of the mask components to
|
| // line up with the corresponding components in an SkPMColor.
|
| // Note that the mask's RGB16 order may differ from the SkPMColor order.
|
|
|