Changeset ae7273d20f50ce62af7f7a27c86103813b0cf92d
- Timestamp:
- 20/09/05 02:11:35
(3 years ago)
- Author:
- Sam Hocevar <sam@videolan.org>
- git-committer:
- Sam Hocevar <sam@videolan.org> 1127175095 +0000
- git-parent:
[b9730ddde01a6c1f9d0f531133292799ef5396b5]
- git-author:
- Sam Hocevar <sam@videolan.org> 1127175095 +0000
- Message:
- modules/video_chroma/i420_rgb_mmx.h: work around a GCC 3.4.x bug.
/* Using i586-mingw32msvc-gcc 3.4.2: */
uint32_t i; m64 mm0 = (m64)(uint64_t)i; /* ICE */
uint32_t i; uint64_t tmp = i; m64 mm0 = (m64)tmp; /* OK */
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r9da3197 |
rae7273d |
|
| 284 | 284 | # if defined (HAVE_MMX_INTRINSICS) |
|---|
| 285 | 285 | __m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7; |
|---|
| | 286 | uint64_t tmp64; |
|---|
| 286 | 287 | INTRINSICS_INIT_16 |
|---|
| 287 | 288 | INTRINSICS_YUV_MUL |
|---|
| … | … | |
| 312 | 313 | # if defined (HAVE_MMX_INTRINSICS) |
|---|
| 313 | 314 | __m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7; |
|---|
| | 315 | uint64_t tmp64; |
|---|
| 314 | 316 | INTRINSICS_INIT_16 |
|---|
| 315 | 317 | INTRINSICS_YUV_MUL |
|---|
| … | … | |
| 342 | 344 | # if defined (HAVE_MMX_INTRINSICS) |
|---|
| 343 | 345 | __m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7; |
|---|
| | 346 | uint64_t tmp64; |
|---|
| 344 | 347 | # endif |
|---|
| 345 | 348 | #endif |
|---|
| … | … | |
| 497 | 500 | # if defined (HAVE_MMX_INTRINSICS) |
|---|
| 498 | 501 | __m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7; |
|---|
| | 502 | uint64_t tmp64; |
|---|
| 499 | 503 | INTRINSICS_INIT_32 |
|---|
| 500 | 504 | INTRINSICS_YUV_MUL |
|---|
| … | … | |
| 526 | 530 | # if defined (HAVE_MMX_INTRINSICS) |
|---|
| 527 | 531 | __m64 mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7; |
|---|
| | 532 | uint64_t tmp64; |
|---|
| 528 | 533 | # endif |
|---|
| 529 | 534 | #endif |
|---|
| r9da3197 |
rae7273d |
|
| 55 | 55 | |
|---|
| 56 | 56 | #define INTRINSICS_INIT_16 \ |
|---|
| 57 | | mm0 = (__m64)(uint64_t)*(uint32_t *)p_u; \ |
|---|
| 58 | | mm1 = (__m64)(uint64_t)*(uint32_t *)p_v; \ |
|---|
| | 57 | tmp64 = *(uint32_t *)p_u; \ |
|---|
| | 58 | mm0 = (__m64)tmp64; \ |
|---|
| | 59 | tmp64 = *(uint32_t *)p_v; \ |
|---|
| | 60 | mm1 = (__m64)tmp64; \ |
|---|
| 59 | 61 | mm4 = (__m64)(uint64_t)0; \ |
|---|
| 60 | 62 | mm6 = (__m64)*(uint64_t *)p_y; \ |
|---|
| … | … | |
| 75 | 77 | |
|---|
| 76 | 78 | #define INTRINSICS_INIT_32 \ |
|---|
| 77 | | mm0 = (__m64)(uint64_t)*(uint32_t *)p_u; \ |
|---|
| | 79 | tmp64 = *(uint32_t *)p_u; \ |
|---|
| | 80 | mm0 = (__m64)tmp64; \ |
|---|
| 78 | 81 | *(uint16_t *)p_buffer = 0; \ |
|---|
| 79 | | mm1 = (__m64)(uint64_t)*(uint32_t *)p_v; \ |
|---|
| | 82 | tmp64 = *(uint32_t *)p_v; \ |
|---|
| | 83 | mm1 = (__m64)tmp64; \ |
|---|
| 80 | 84 | mm4 = (__m64)(uint64_t)0; \ |
|---|
| 81 | 85 | mm6 = (__m64)*(uint64_t *)p_y; |
|---|
| … | … | |
| 291 | 295 | mm2 = _mm_slli_pi16(mm2, 2); \ |
|---|
| 292 | 296 | mm0 = _mm_or_si64(mm0, mm2); \ |
|---|
| 293 | | mm6 = (__m64)*(uint64_t *)(p_y + 8); \ |
|---|
| | 297 | tmp64 = *(uint64_t *)(p_y + 8); \ |
|---|
| | 298 | mm6 = (__m64)tmp64; \ |
|---|
| 294 | 299 | *(uint64_t *)p_buffer = (uint64_t)mm0; \ |
|---|
| 295 | 300 | \ |
|---|
| … | … | |
| 297 | 302 | mm5 = _mm_unpackhi_pi8(mm5, mm1); \ |
|---|
| 298 | 303 | mm7 = _mm_slli_pi16(mm7, 2); \ |
|---|
| 299 | | mm0 = (__m64)(uint64_t)*(uint32_t *)(p_u + 4); \ |
|---|
| | 304 | tmp64 = (uint64_t)*(uint32_t *)(p_u + 4); \ |
|---|
| | 305 | mm0 = (__m64)tmp64; \ |
|---|
| 300 | 306 | mm5 = _mm_or_si64(mm5, mm7); \ |
|---|
| 301 | | mm1 = (__m64)(uint64_t)*(uint32_t *)(p_v + 4); \ |
|---|
| | 307 | tmp64 = (uint64_t)*(uint32_t *)(p_v + 4); \ |
|---|
| | 308 | mm1 = (__m64)tmp64; \ |
|---|
| 302 | 309 | *(uint64_t *)(p_buffer + 4) = (uint64_t)mm5; |
|---|
| 303 | 310 | |
|---|