summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2012-06-19 09:49:02 +1000
committerBen Skeggs <bskeggs@redhat.com>2012-06-19 09:59:58 +1000
commitf84c28c9e6a0079e527655994689cb9c2ba51999 (patch)
tree9c9538214cf824d3bcbdf18949817476f5d56521
parent794141f22179a09ba6b2a094ba72316c298fee8b (diff)
downloadxorg-driver-xf86-video-nouveau-f84c28c9e6a0079e527655994689cb9c2ba51999.tar.gz
exa: fix remaining signed datatype issues
Wasn't expecting this situation, apparently it happens.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/nv10_exa.c4
-rw-r--r--src/nv30_exa.c6
-rw-r--r--src/nv30_xv_tex.c2
-rw-r--r--src/nv40_exa.c6
-rw-r--r--src/nv40_xv_tex.c2
-rw-r--r--src/nv50_accel.h12
6 files changed, 15 insertions, 17 deletions
diff --git a/src/nv10_exa.c b/src/nv10_exa.c
index a3f7df3..cb9eb7c 100644
--- a/src/nv10_exa.c
+++ b/src/nv10_exa.c
@@ -594,9 +594,9 @@ PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
BEGIN_NV04(push, NV10_3D(VERTEX_TX0_2I), 1);
- PUSH_DATA (push, (y1 << 16) | x1);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
BEGIN_NV04(push, NV10_3D(VERTEX_TX1_2I), 1);
- PUSH_DATA (push, (y2 << 16) | x2);
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV10_3D(VERTEX_POS_3F_X), 3);
PUSH_DATAf(push, dx);
PUSH_DATAf(push, dy);
diff --git a/src/nv30_exa.c b/src/nv30_exa.c
index 9be52e5..95509bc 100644
--- a/src/nv30_exa.c
+++ b/src/nv30_exa.c
@@ -545,10 +545,10 @@ PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(8)), 2);
- PUSH_DATA (push, (y1 << 16) | x1);
- PUSH_DATA (push, (y2 << 16) | x2);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
void
diff --git a/src/nv30_xv_tex.c b/src/nv30_xv_tex.c
index 33c5602..bf75cfa 100644
--- a/src/nv30_xv_tex.c
+++ b/src/nv30_xv_tex.c
@@ -167,7 +167,7 @@ NV30StopTexturedVideo(ScrnInfoPtr pScrn, pointer data, Bool Exit)
PUSH_DATAf(push, (sx)); PUSH_DATAf(push, (sy)); \
PUSH_DATAf(push, (sx)/2.0); PUSH_DATAf(push, (sy)/2.0); \
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1); \
- PUSH_DATA (push, ((dy)<<16)|(dx)); \
+ PUSH_DATA (push, (((dy)&0xffff)<<16)|((dx)&0xffff)); \
} while(0)
int
diff --git a/src/nv40_exa.c b/src/nv40_exa.c
index ce0d78a..977c855 100644
--- a/src/nv40_exa.c
+++ b/src/nv40_exa.c
@@ -527,10 +527,10 @@ PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(8)), 2);
- PUSH_DATA (push, (y1 << 16) | x1);
- PUSH_DATA (push, (y2 << 16) | x2);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
void
diff --git a/src/nv40_xv_tex.c b/src/nv40_xv_tex.c
index 9f2e336..79ef1fc 100644
--- a/src/nv40_xv_tex.c
+++ b/src/nv40_xv_tex.c
@@ -167,7 +167,7 @@ NV40StopTexturedVideo(ScrnInfoPtr pScrn, pointer data, Bool Exit)
PUSH_DATAf(push, (sx)); PUSH_DATAf(push, (sy)); \
PUSH_DATAf(push, (sx)/2.0); PUSH_DATAf(push, (sy)/2.0); \
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1); \
- PUSH_DATA (push, ((dy)<<16)|(dx)); \
+ PUSH_DATA (push, (((dy)&0xffff)<<16)|((dx)&0xffff)); \
} while(0)
int
diff --git a/src/nv50_accel.h b/src/nv50_accel.h
index 24f0fa8..87c88a3 100644
--- a/src/nv50_accel.h
+++ b/src/nv50_accel.h
@@ -53,20 +53,18 @@ PUSH_VTX1s(struct nouveau_pushbuf *push, float sx, float sy, int dx, int dy)
PUSH_DATAf(push, sx);
PUSH_DATAf(push, sy);
BEGIN_NV04(push, NV50_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
static __inline__ void
PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
- BEGIN_NV04(push, NV50_3D(VTX_ATTR_2F_X(8)), 4);
- PUSH_DATAf(push, x1);
- PUSH_DATAf(push, y1);
- PUSH_DATAf(push, x2);
- PUSH_DATAf(push, y2);
+ BEGIN_NV04(push, NV50_3D(VTX_ATTR_2I(8)), 2);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV50_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
static __inline__ void