summaryrefslogtreecommitdiff
path: root/src/post/goom/mmx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/post/goom/mmx.c')
-rw-r--r--src/post/goom/mmx.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/post/goom/mmx.c b/src/post/goom/mmx.c
index fdf06492a..484c76092 100644
--- a/src/post/goom/mmx.c
+++ b/src/post/goom/mmx.c
@@ -4,6 +4,7 @@
#define BUFFPOINTMASK 0xffff
#define BUFFINCR 0xff
+#include <stddef.h>
#include "mmx.h"
#include "goom_graphic.h"
@@ -23,6 +24,7 @@ void zoom_filter_mmx (int prevX, int prevY,
int precalCoef[16][16])
{
unsigned int ax = (prevX-1)<<PERTEDEC, ay = (prevY-1)<<PERTEDEC;
+ size_t sizeX = prevX;
int bufsize = prevX * prevY;
int loop;
@@ -33,7 +35,7 @@ void zoom_filter_mmx (int prevX, int prevY,
{
/* int couleur; */
int px,py;
- int pos;
+ size_t pos;
int coeffs;
int myPos = loop << 1,
@@ -91,7 +93,7 @@ void zoom_filter_mmx (int prevX, int prevY,
"punpckhbw %%mm7, %%mm5 \n\t" /* 00-c4-00-c4-00-c4-00-c4 */
/* ajouter la longueur de ligne a esi */
- "addl 8(%%ebp),%1 \n\t"
+ "add %4,%1 \n\t"
/* recuperation des 2 derniers pixels */
"movq (%3,%1,4), %%mm1 \n\t"
@@ -114,8 +116,8 @@ void zoom_filter_mmx (int prevX, int prevY,
"packuswb %%mm7, %%mm0 \n\t"
"movd %%mm0,%0 \n\t"
- :"=g"(expix2[loop])
- :"r"(pos),"r"(coeffs),"r"(expix1)
+ :"=g"(expix2[loop]),"=r"(pos)
+ :"r"(coeffs),"r"(expix1),"g"(sizeX)
);