Attempt to make Windows and Mac compilers happy after breakage in r3193.

Verified that changes in parameter signatures



git-svn-id: http://skia.googlecode.com/svn/trunk@3194 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
tomhudson@google.com 2012-02-14 19:42:39 +00:00
parent 95ad155263
commit 4ef14f8e83
2 changed files with 25 additions and 25 deletions

View File

@ -89,7 +89,7 @@
'../src/core',
],
'conditions': [
[ 'skia_os in ["linux", "freebsd", "openbsd", "solaris"]', {
[ 'skia_os in ["linux", "freebsd", "mac", "openbsd", "solaris"]', {
'cflags': [
'-mssse3',
],

View File

@ -38,10 +38,10 @@ namespace {
// @param sixteen_minus_x vector of 8 bit components, containing
// (4x(16 - x3), 4x(16 - x2), 4x(16 - x1), 4x(16 - x0))
inline void PrepareConstantsTwoPixelPairs(const uint32_t* xy,
__m128i mask_3FFF,
__m128i mask_000F,
__m128i sixteen_8bit,
__m128i mask_dist_select,
const __m128i& mask_3FFF,
const __m128i& mask_000F,
const __m128i& sixteen_8bit,
const __m128i& mask_dist_select,
__m128i* all_x_result,
__m128i* sixteen_minus_x,
int* x0,
@ -78,7 +78,7 @@ inline __m128i ProcessPixelPairHelper(uint32_t pixel0,
uint32_t pixel1,
uint32_t pixel2,
uint32_t pixel3,
__m128i scale_x) {
const __m128i& scale_x) {
__m128i a0, a1, a2, a3;
// Load 2 pairs of pixels
a0 = _mm_cvtsi32_si128(pixel0);
@ -114,19 +114,19 @@ inline __m128i ProcessPixelPairHelper(uint32_t pixel0,
// by eight places (dividing by 256), since each multiplication is by a quantity
// in the range [0:16].
template<bool has_alpha, int scale>
inline __m128i ScaleFourPixels(__m128i pixels,
__m128i alpha) {
inline __m128i ScaleFourPixels(__m128i* pixels,
const __m128i& alpha) {
// Divide each 16 bit component by 16 (or 256 depending on scale).
pixels = _mm_srli_epi16(pixels, scale);
*pixels = _mm_srli_epi16(*pixels, scale);
if (has_alpha) {
// Multiply by alpha.
pixels = _mm_mullo_epi16(pixels, alpha);
*pixels = _mm_mullo_epi16(*pixels, alpha);
// Divide each 16 bit component by 256.
pixels = _mm_srli_epi16(pixels, 8);
*pixels = _mm_srli_epi16(*pixels, 8);
}
return pixels;
return *pixels;
}
// Wrapper to calculate two output pixels from four input pixels. The
@ -148,11 +148,11 @@ inline __m128i ProcessPixelPairZeroSubY(uint32_t pixel0,
uint32_t pixel1,
uint32_t pixel2,
uint32_t pixel3,
__m128i scale_x,
__m128i alpha) {
const __m128i& scale_x,
const __m128i& alpha) {
__m128i sum = ProcessPixelPairHelper(pixel0, pixel1, pixel2, pixel3,
scale_x);
return ScaleFourPixels<has_alpha, 4>(sum, alpha);
return ScaleFourPixels<has_alpha, 4>(&sum, alpha);
}
// Same as ProcessPixelPairZeroSubY, expect processing one output pixel at a
@ -174,7 +174,7 @@ inline __m128i ProcessOnePixelZeroSubY(uint32_t pixel0,
// (a0 * (16-x) + a1 * x)
__m128i sum = _mm_maddubs_epi16(a0, scale_x);
return ScaleFourPixels<has_alpha, 4>(sum, alpha);
return ScaleFourPixels<has_alpha, 4>(&sum, alpha);
}
// Methods when sub_y != 0
@ -190,8 +190,8 @@ inline __m128i ProcessPixelPair(uint32_t pixel0,
uint32_t pixel1,
uint32_t pixel2,
uint32_t pixel3,
__m128i scale_x,
__m128i y) {
const __m128i& scale_x,
const __m128i& y) {
__m128i sum = ProcessPixelPairHelper(pixel0, pixel1, pixel2, pixel3,
scale_x);
@ -229,10 +229,10 @@ inline __m128i ProcessTwoPixelPairs(const uint32_t* row0,
const uint32_t* row1,
const int* x0,
const int* x1,
__m128i scale_x,
__m128i all_y,
__m128i neg_y,
__m128i alpha) {
const __m128i& scale_x,
const __m128i& all_y,
const __m128i& neg_y,
const __m128i& alpha) {
__m128i sum0 = ProcessPixelPair(
row0[x0[0]], row0[x1[0]], row0[x0[1]], row0[x1[1]],
scale_x, neg_y);
@ -249,14 +249,14 @@ inline __m128i ProcessTwoPixelPairs(const uint32_t* row0,
// Each component, again can be at most 256 * 255 = 65280, so no overflow.
sum0 = _mm_add_epi16(sum0, sum1);
return ScaleFourPixels<has_alpha, 8>(sum0, alpha);
return ScaleFourPixels<has_alpha, 8>(&sum0, alpha);
}
// Same as ProcessPixelPair, except that performing the math one output pixel
// at a time. This means that only the bottom four 16 bit components are set.
inline __m128i ProcessOnePixel(uint32_t pixel0, uint32_t pixel1,
__m128i scale_x, __m128i y) {
const __m128i& scale_x, const __m128i& y) {
__m128i a0 = _mm_cvtsi32_si128(pixel0);
__m128i a1 = _mm_cvtsi32_si128(pixel1);
@ -472,7 +472,7 @@ void S32_generic_D32_filter_DX_SSSE3(const SkBitmapProcState& s,
// Add both rows for full sample
sum0 = _mm_add_epi16(sum0, sum1);
sum0 = ScaleFourPixels<has_alpha, 8>(sum0, alpha);
sum0 = ScaleFourPixels<has_alpha, 8>(&sum0, alpha);
// Pack lower 4 16 bit values of sum into lower 4 bytes.
sum0 = _mm_packus_epi16(sum0, zero);