b=383960, moz cairo: MSVC compilation fixes

git-svn-id: svn://10.0.0.236/trunk@230771 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
vladimir%pobox.com 2007-07-24 17:45:51 +00:00
parent 742a27b5dd
commit a04410e618
4 changed files with 72 additions and 46 deletions

View File

@ -1431,10 +1431,10 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface,
data->rdh.iType = RDH_RECTANGLES;
data->rdh.nCount = num_boxes;
data->rdh.nRgnSize = num_boxes * sizeof (RECT);
data->rdh.rcBound.left = extents->x1;
data->rdh.rcBound.top = extents->y1;
data->rdh.rcBound.right = extents->x2;
data->rdh.rcBound.bottom = extents->y2;
data->rdh.rcBound.left = extents.x;
data->rdh.rcBound.top = extents.y;
data->rdh.rcBound.right = extents.x + extents.width;
data->rdh.rcBound.bottom = extents.y + extents.height;
for (i = 0; i < num_boxes; i++) {
rects[i].left = boxes[i].p1.x;
@ -1443,7 +1443,7 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface,
rects[i].bottom = boxes[i].p2.y;
}
_cairo_region_boxes_fini (region, &boxes);
_cairo_region_boxes_fini (region, boxes);
gdi_region = ExtCreateRegion (NULL, data_size, data);
free (data);

View File

@ -96,7 +96,7 @@ FORCE_USE_PIC = 1
include $(topsrcdir)/config/rules.mk
CFLAGS += -DPACKAGE="mozpixman"
CFLAGS += -DPACKAGE="mozpixman" -D_USE_MATH_DEFINES
ifdef MOZ_X11
#CFLAGS += -mmmx -msse -Winline --param inline-unit-growth=10000 --param large-function-growth=10000

View File

@ -1044,9 +1044,9 @@ fbCompositeSolid_nx0565mmx (pixman_op_t op,
while (w && (unsigned long)dst & 7)
{
ullong d = *dst;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565(over(vsrc, vsrca, vdest), vdest, 0);
*dst = (ullong)vdest;
*dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@ -1074,9 +1074,9 @@ fbCompositeSolid_nx0565mmx (pixman_op_t op,
while (w)
{
ullong d = *dst;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565(over(vsrc, vsrca, vdest), vdest, 0);
*dst = (ullong)vdest;
*dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@ -1502,11 +1502,11 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
{
__m64 vsrc = load8888 (*src);
ullong d = *dst;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
*dst = (ullong)vdest;
*dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@ -1545,11 +1545,11 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
{
__m64 vsrc = load8888 (*src);
ullong d = *dst;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
*dst = (ullong)vdest;
*dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@ -1614,7 +1614,7 @@ fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
if (m)
{
__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), load8888(*dst));
__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (_mm_cvtsi32_si64(m)), load8888(*dst));
*dst = store8888(vdest);
}
@ -1642,8 +1642,8 @@ fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
vdest = *(__m64 *)dst;
dest0 = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m0), expand8888(vdest, 0));
dest1 = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m1), expand8888(vdest, 1));
dest0 = in_over(vsrc, vsrca, expand_alpha_rev (_mm_cvtsi32_si64(m0)), expand8888(vdest, 0));
dest1 = in_over(vsrc, vsrca, expand_alpha_rev (_mm_cvtsi32_si64(m1)), expand8888(vdest, 1));
*(__m64 *)dst = pack8888(dest0, dest1);
}
@ -1662,7 +1662,7 @@ fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
if (m)
{
__m64 vdest = load8888(*dst);
vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), vdest);
vdest = in_over(vsrc, vsrca, expand_alpha_rev (_mm_cvtsi32_si64(m)), vdest);
*dst = store8888(vdest);
}
@ -1715,7 +1715,7 @@ pixman_fill_mmx (uint32_t *bits,
}
fill = ((ullong)xor << 32) | xor;
vfill = (__m64)fill;
vfill = _mm_cvtsi32_si64(fill);
#ifdef __GNUC__
__asm__ (
@ -1861,7 +1861,7 @@ fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_op_t op,
if (m)
{
__m64 vdest = in(vsrc, expand_alpha_rev ((__m64)m));
__m64 vdest = in(vsrc, expand_alpha_rev (_mm_cvtsi32_si64(m)));
*dst = store8888(vdest);
}
else
@ -1893,8 +1893,8 @@ fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_op_t op,
vdest = *(__m64 *)dst;
dest0 = in(vsrc, expand_alpha_rev ((__m64)m0));
dest1 = in(vsrc, expand_alpha_rev ((__m64)m1));
dest0 = in(vsrc, expand_alpha_rev (_mm_cvtsi32_si64(m0)));
dest1 = in(vsrc, expand_alpha_rev (_mm_cvtsi32_si64(m1)));
*(__m64 *)dst = pack8888(dest0, dest1);
}
@ -1917,7 +1917,7 @@ fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_op_t op,
if (m)
{
__m64 vdest = load8888(*dst);
vdest = in(vsrc, expand_alpha_rev ((__m64)m));
vdest = in(vsrc, expand_alpha_rev (_mm_cvtsi32_si64(m)));
*dst = store8888(vdest);
}
else
@ -1970,7 +1970,7 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
vsrc = load8888 (src);
vsrca = expand_alpha (vsrc);
src16 = (ullong)pack565(vsrc, _mm_setzero_si64(), 0);
src16 = _mm_cvtsi64_si32(pack565(vsrc, _mm_setzero_si64(), 0));
srcsrcsrcsrc = (ullong)src16 << 48 | (ullong)src16 << 32 |
(ullong)src16 << 16 | (ullong)src16;
@ -1992,9 +1992,9 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
if (m)
{
ullong d = *dst;
__m64 vd = (__m64)d;
__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), expand565(vd, 0));
*dst = (ullong)pack565(vdest, _mm_setzero_si64(), 0);
__m64 vd = _mm_cvtsi32_si64(d);
__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (_mm_cvtsi32_si64(m)), expand565(vd, 0));
*dst = _mm_cvtsi64_si32(pack565(vdest, _mm_setzero_si64(), 0));
}
w--;
@ -2023,13 +2023,13 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
vdest = *(__m64 *)dst;
vm0 = (__m64)m0;
vm0 = _mm_cvtsi32_si64(m0);
vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm0), expand565(vdest, 0)), vdest, 0);
vm1 = (__m64)m1;
vm1 = _mm_cvtsi32_si64(m1);
vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm1), expand565(vdest, 1)), vdest, 1);
vm2 = (__m64)m2;
vm2 = _mm_cvtsi32_si64(m2);
vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm2), expand565(vdest, 2)), vdest, 2);
vm3 = (__m64)m3;
vm3 = _mm_cvtsi32_si64(m3);
vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm3), expand565(vdest, 3)), vdest, 3);
*(__m64 *)dst = vdest;
@ -2049,9 +2049,9 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
if (m)
{
ullong d = *dst;
__m64 vd = (__m64)d;
__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), expand565(vd, 0));
*dst = (ullong)pack565(vdest, _mm_setzero_si64(), 0);
__m64 vd = _mm_cvtsi32_si64(d);
__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (_mm_cvtsi32_si64(m)), expand565(vd, 0));
*dst = _mm_cvtsi64_si32(pack565(vdest, _mm_setzero_si64(), 0));
}
w--;
@ -2106,11 +2106,11 @@ fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
{
__m64 vsrc = load8888 (*src);
ullong d = *dst;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565(over_rev_non_pre(vsrc, vdest), vdest, 0);
*dst = (ullong)vdest;
*dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@ -2167,11 +2167,11 @@ fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
{
__m64 vsrc = load8888 (*src);
ullong d = *dst;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565(over_rev_non_pre(vsrc, vdest), vdest, 0);
*dst = (ullong)vdest;
*dst = _mm_cvtsi64_si32(vdest);
w--;
dst++;
@ -2330,9 +2330,9 @@ fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
if (m)
{
ullong d = *q;
__m64 vdest = expand565 ((__m64)d, 0);
__m64 vdest = expand565 (_mm_cvtsi32_si64(d), 0);
vdest = pack565 (in_over (vsrc, vsrca, load8888 (m), vdest), vdest, 0);
*q = (ullong)vdest;
*q = _mm_cvtsi64_si32(vdest);
}
twidth--;
@ -2373,9 +2373,9 @@ fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
if (m)
{
ullong d = *q;
__m64 vdest = expand565((__m64)d, 0);
__m64 vdest = expand565(_mm_cvtsi32_si64(d), 0);
vdest = pack565 (in_over(vsrc, vsrca, load8888(m), vdest), vdest, 0);
*q = (ullong)vdest;
*q = _mm_cvtsi64_si32(vdest);
}
twidth--;
@ -2731,7 +2731,7 @@ fbCompositeSrcAdd_8888x8888mmx (pixman_op_t op,
while (w >= 2)
{
*(ullong*)dst = (ullong) _mm_adds_pu8(*(__m64*)src, *(__m64*)dst);
*(ullong*)dst = _mm_cvtsi64_si32(_mm_adds_pu8(*(__m64*)src, *(__m64*)dst));
dst += 2;
src += 2;
w -= 2;
@ -2957,7 +2957,7 @@ fbCompositeOver_x888x8x8888mmx (pixman_op_t op,
else
{
__m64 sa = expand_alpha (s);
__m64 vm = expand_alpha_rev ((__m64)m);
__m64 vm = expand_alpha_rev (_mm_cvtsi32_si64(m));
__m64 vdest = in_over(s, sa, vm, load8888 (*dst));
*dst = store8888 (vdest);

View File

@ -5,6 +5,8 @@
#ifndef PIXMAN_PRIVATE_H
#define PIXMAN_PRIVATE_H
#include "cairo-platform.h"
#include "pixman.h"
#include <time.h>
@ -16,6 +18,30 @@
#define TRUE 1
#endif
#ifdef _MSC_VER
#define snprintf _snprintf
#undef inline
#define inline __inline
# ifndef INT16_MIN
# define INT16_MIN (-32767-1)
# endif
# ifndef INT16_MAX
# define INT16_MAX (32767)
# endif
# ifndef INT32_MIN
# define INT32_MIN (-2147483647-1)
# endif
# ifndef INT32_MAX
# define INT32_MAX (2147483647)
# endif
# ifndef UINT32_MAX
# define UINT32_MAX (4294967295)
# endif
#endif
#define MSBFirst 0
#define LSBFirst 1
@ -776,6 +802,8 @@ pixman_rasterize_edges_accessors (pixman_image_t *image,
pixman_fixed_t b);
#ifndef MOZILLA_CLIENT
/* Timing */
static inline uint64_t
oil_profile_stamp_rdtsc (void)
@ -786,8 +814,6 @@ oil_profile_stamp_rdtsc (void)
}
#define OIL_STAMP oil_profile_stamp_rdtsc
#ifndef MOZILLA_CLIENT
typedef struct PixmanTimer PixmanTimer;
struct PixmanTimer