diff --git a/ChangeLog b/ChangeLog index 411b7946e1..76df327580 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2003-09-04 Manish Singh + + * configure.in: #define ARCH_X86 on x86-64 too. + + * app/composite/gimp-composite-sse2.c: dererference pointers outside + of asm() construct. + + Now this stuff builds on x86-64, but fails some of the tests. Need + to fix it later. + 2003-09-04 Manish Singh * tools/pdbgen/pdb/brushes.pdb diff --git a/app/composite/gimp-composite-sse2.c b/app/composite/gimp-composite-sse2.c index 20e8983ba4..77b54b12d1 100644 --- a/app/composite/gimp-composite-sse2.c +++ b/app/composite/gimp-composite-sse2.c @@ -72,8 +72,8 @@ xxxgimp_composite_addition_rgba8_rgba8_rgba8_sse2 (GimpCompositeContext *_op) for (; op.n_pixels >= 4; op.n_pixels -= 4) { - asm (" movdqu (%0), %%xmm2; addl $16, %0\n" - "\tmovdqu (%1), %%xmm3; addl $16, %1\n" + asm (" movdqu %0, %%xmm2\n" + "\tmovdqu %1, %%xmm3\n" "\tmovdqu %%xmm2, %%xmm4\n" "\tpaddusb %%xmm3, %%xmm4\n" @@ -82,10 +82,13 @@ xxxgimp_composite_addition_rgba8_rgba8_rgba8_sse2 (GimpCompositeContext *_op) "\t" pminub(xmm3, xmm2, xmm4) "\n" "\tpand %%xmm0, %%xmm2\n" "\tpor %%xmm2, %%xmm1\n" - "\tmovdqu %%xmm1, (%2); addl $16, %2\n" - : "+r" (op.A), "+r" (op.B), "+r" (op.D) + "\tmovdqu %%xmm1, %2\n" : /* empty */ + : "m" (*op.A), "m" (*op.B), "m" (*op.D) : "0", "1", "2", "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7"); + op.A += 16; + op.B += 16; + op.D += 16; } if (op.n_pixels) diff --git a/configure.in b/configure.in index 5345618da0..3eb8d240cc 100644 --- a/configure.in +++ b/configure.in @@ -101,7 +101,7 @@ esac AC_MSG_RESULT([$target_or_host]) case "$target_or_host" in - i*86-*-*) + i*86-*-* | x86_64-*-*) have_x86=yes AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.]) ;;