Mercurial > sdl-ios-xcode
view src/hermes/README @ 3899:081aecdb0911 SDL-1.2
From: Gabriel Gambetta
To: SDL Mailing List <sdl@libsdl.org>
Date: Fri, 17 Nov 2006 00:39:29 -0200
Subject: [SDL] Alpha blending bug - fixed?
It turns out mm5 never got the correct value. This failed :
[...]
"movd %1, %%mm5\n\t"
: : "m" (amask), "m" (sf->Ashift) );
mm5 got 0xFF000018 instead of 0x00000018. However I did this :
Uint32 ashift = sf->Ashift;
[...]
"movd %1, %%mm5\n\t"
: : "m" (amask), "m" (ashift) );
and everything worked fine.
The only thing I could find out was that ashift is 32-bit aligned but
sf->Ashift isn't:
printf("ashift %8X [%d]\n", &ashift, (int)(&ashift) % 4);
printf("sf->Ashift %8X [%d]\n", &sf->Ashift, (int)(&sf->Ashift) % 4);
ashift at BFF0E0C4 [0]
sf->Ashift at 08AFB9CD [1]
Could this be the problem? If it is, the fix is extremely trivial.
Should I submit a patch?
--Gabriel
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Tue, 21 Nov 2006 23:17:00 +0000 |
parents | 74212992fb08 |
children |
line wrap: on
line source
HERMES 1.2.4 (c)1998 Christian Nentwich (brn) (c.nentwich@cs.ucl.ac.uk) and quite a few assembler routines (c) Glenn Fielder (gaffer@gaffer.org) This library and all the files enclosed in this package are free software under the terms of the GNU Library General Public License (LGPL). Please refer to the included file COPYING.LIB for the exact terms. ---------------------------------------------------------------------------- This is a stripped down version of HERMES, including only the x86 assembler converters, for use with Simple DirectMedia Layer. The full HERMES library is available at: http://hermes.terminal.at/