{
# if defined (HAVE_MMX_INTRINSICS)
__m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
+ uint64_t tmp64;
INTRINSICS_INIT_16
INTRINSICS_YUV_MUL
INTRINSICS_YUV_ADD
{
# if defined (HAVE_MMX_INTRINSICS)
__m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
+ uint64_t tmp64;
INTRINSICS_INIT_16
INTRINSICS_YUV_MUL
INTRINSICS_YUV_ADD
#if defined (MODULE_NAME_IS_i420_rgb_mmx)
# if defined (HAVE_MMX_INTRINSICS)
__m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
+ uint64_t tmp64;
# endif
#endif
p_y -= i_rewind;
#elif defined (MODULE_NAME_IS_i420_rgb_mmx)
# if defined (HAVE_MMX_INTRINSICS)
__m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
+ uint64_t tmp64;
INTRINSICS_INIT_32
INTRINSICS_YUV_MUL
INTRINSICS_YUV_ADD
#if defined (MODULE_NAME_IS_i420_rgb_mmx)
# if defined (HAVE_MMX_INTRINSICS)
__m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
+ uint64_t tmp64;
# endif
#endif
p_y -= i_rewind;
"
#define INTRINSICS_INIT_16 \
- mm0 = (__m64)(uint64_t)*(uint32_t *)p_u; \
- mm1 = (__m64)(uint64_t)*(uint32_t *)p_v; \
+ tmp64 = *(uint32_t *)p_u; \
+ mm0 = (__m64)tmp64; \
+ tmp64 = *(uint32_t *)p_v; \
+ mm1 = (__m64)tmp64; \
mm4 = (__m64)(uint64_t)0; \
mm6 = (__m64)*(uint64_t *)p_y; \
/* *(uint16_t *)p_buffer = 0; */
"
#define INTRINSICS_INIT_32 \
- mm0 = (__m64)(uint64_t)*(uint32_t *)p_u; \
+ tmp64 = *(uint32_t *)p_u; \
+ mm0 = (__m64)tmp64; \
*(uint16_t *)p_buffer = 0; \
- mm1 = (__m64)(uint64_t)*(uint32_t *)p_v; \
+ tmp64 = *(uint32_t *)p_v; \
+ mm1 = (__m64)tmp64; \
mm4 = (__m64)(uint64_t)0; \
mm6 = (__m64)*(uint64_t *)p_y;
mm0 = _mm_unpacklo_pi8(mm0, mm1); \
mm2 = _mm_slli_pi16(mm2, 2); \
mm0 = _mm_or_si64(mm0, mm2); \
- mm6 = (__m64)*(uint64_t *)(p_y + 8); \
+ tmp64 = *(uint64_t *)(p_y + 8); \
+ mm6 = (__m64)tmp64; \
*(uint64_t *)p_buffer = (uint64_t)mm0; \
\
mm7 = _mm_unpackhi_pi8(mm7, mm4); \
mm5 = _mm_unpackhi_pi8(mm5, mm1); \
mm7 = _mm_slli_pi16(mm7, 2); \
- mm0 = (__m64)(uint64_t)*(uint32_t *)(p_u + 4); \
+ tmp64 = (uint64_t)*(uint32_t *)(p_u + 4); \
+ mm0 = (__m64)tmp64; \
mm5 = _mm_or_si64(mm5, mm7); \
- mm1 = (__m64)(uint64_t)*(uint32_t *)(p_v + 4); \
+ tmp64 = (uint64_t)*(uint32_t *)(p_v + 4); \
+ mm1 = (__m64)tmp64; \
*(uint64_t *)(p_buffer + 4) = (uint64_t)mm5;
/*