summaryrefslogtreecommitdiff
path: root/pixman
diff options
context:
space:
mode:
authorVladimir Vukicevic <vladimir@pobox.com>2007-01-24 17:34:57 -0800
committerVladimir Vukicevic <vladimir@h-154.office.mozilla.org>2007-01-25 12:01:50 -0800
commit691f9d1c0c4c98f6e6aa7b2f41fa0b8670e6205d (patch)
tree0c4534784248b4c4632e2888ed7554a29931898a /pixman
parent8ff70d6b9106b2dc57e903104237285a7062c2f0 (diff)
[mmx] avoid casts between int32 and __m64 types
The MS compiler doesn't like this; _mm_cvtsi32_si64 and _mm_cvtsi64_si32 must be used.
Diffstat (limited to 'pixman')
-rw-r--r--pixman/src/fbmmx.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/pixman/src/fbmmx.c b/pixman/src/fbmmx.c
index 9c263f87..93e7d501 100644
--- a/pixman/src/fbmmx.c
+++ b/pixman/src/fbmmx.c
@@ -1487,12 +1487,11 @@ fbCompositeSrc_8888x0565mmx (pixman_operator_t op,
while (w && (unsigned long)dst & 7)
{
__m64 vsrc = load8888 (*src);
- ullong d = *dst;
- __m64 vdest = expand565 ((__m64)d, 0);
+ __m64 vdest = expand565 (_mm_cvtsi32_si64(*dst), 0);
vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
- *dst = (ullong)vdest;
+ *dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@@ -1554,12 +1553,11 @@ fbCompositeSrc_8888x0565mmx (pixman_operator_t op,
while (w)
{
__m64 vsrc = load8888 (*src);
- ullong d = *dst;
- __m64 vdest = expand565 ((__m64)d, 0);
+ __m64 vdest = expand565 (_mm_cvtsi32_si64(*dst), 0);
vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
- *dst = (ullong)vdest;
+ *dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;