ICE fixes for arm

git-svn-id: http://skia.googlecode.com/svn/trunk@474 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
reed@android.com 2010-01-14 00:24:12 +00:00
parent ec10d21eb9
commit d7a0083aaa
2 changed files with 12 additions and 4 deletions

View File

@ -842,9 +842,13 @@ static void PERSP_FILTER_NAME(const SkBitmapProcState& s,
wide_i = vshlq_n_s32 (wide_i, 14);
/* SkClampMax(((f + one)) >> 16, max) */
wide_fy1 = vaddq_s32 (wide_y, vdupq_n_s32(oneY));
wide_fy1 = vmaxq_s32 (vshrq_n_s32 (wide_fy1, 16), vdupq_n_s32 (0));
wide_fy1 = vminq_s32 (wide_fy1, vdupq_n_s32 (maxY));
/* wide_fy1_1 and wide_fy1_2 are just temporary variables to
* work-around an ICE in debug */
int32x4_t wide_fy1_1 = vaddq_s32 (wide_y, vdupq_n_s32(oneY));
int32x4_t wide_fy1_2 = vmaxq_s32 (vshrq_n_s32 (wide_fy1_1, 16),
vdupq_n_s32 (0));
wide_fy1 = vminq_s32 (wide_fy1_2, vdupq_n_s32 (maxY));
/* final combination */
wide_y = vorrq_s32 (wide_i, wide_fy1);

View File

@ -837,7 +837,11 @@ static void S32A_D565_Opaque_Dither_neon (uint16_t * SK_RESTRICT dst,
if (c) {
unsigned a = SkGetPackedA32(c);
int d = SkAlphaMul(DITHER_VALUE(x), SkAlpha255To256(a));
// dither and alpha are just temporary variables to work-around
// an ICE in debug.
unsigned dither = DITHER_VALUE(x);
unsigned alpha = SkAlpha255To256(a);
int d = SkAlphaMul(dither, alpha);
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);