Martin Egger ([EMAIL PROTECTED]) wrote:
> #0 0xb7710637 in cmsDoTransform () from /usr/lib/liblcms.so.1
> #1 0x08372b08 in ?? ()
> #2 0x080e2d60 in ?? ()
> #3 0xbfd4a508 in ?? ()
> #4 0x000001f2 in ?? ()
> #5 0x080a264b in transform_nocms8_3dnow (rct=0x8422860, width=498,
> height=331, in=0xb315a008, in_rowstride=2048, out=0xb30dd008,
> out_rowstride=1536) at rs-color-transform.c:817
Ok, so it's using 3dnow code, and calling the CMS lib for each row.
> (gdb) info locals
> destoffset = -1
> col = -1289068648
> rgbx = {1199570688, 1199570688, 142125720, 1494}
> tmp = {-0.0852800012, 1.95472002, 65535, 65535}
> mat = {-1.66129971, 4.15757337e-34, 1.00000739, 7.48303173e-34,
> -3.48245806e-08, 6.97846635e-43, 4.31836584e-34, 5.94256659e-34,
> -0.0852800012, 1.95472002, 0.212670997, 1.71905601, -0.320944011,
> -0.320944011, 0.715160012, -0.633776009, 1.40622401, -0.633776009,
> 0.0721689984, -0.0852800012}
> (gdb) quit
All vars seem to be unitialized... and looking at rgbx vals, it remind
me the crashes i had with plain 0.6 on AMD64. It seems my patch spotted
the same bugi finally found :-)
It's a mix of missing clobber regs missing and (f)emms badly placed and
gcc doing funny stuff with the x87 registers which are the same as the
mmx registers !
So i moved emms to safer places.
I already have working 3dnow code, but i'm still not sure the code is
fully safe, especially with libcms, because the lib might do whatever it
wants to registers we suppose being constant.
So give me an hour more, and i'l send another patch to the list.
Thanks for your feedback that confirmed my theories about the code being
right, but the surroundings being buggy. :-)
--
Edouard Gomez
_______________________________________________
Rawstudio-dev mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-dev