On Tue, Feb 2, 2010 at 9:21 PM, Matt Turner <matts...@gmail.com> wrote:
> On Tue, Feb 2, 2010 at 2:04 PM, Ian Romanick <i...@freedesktop.org> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Pauli Nieminen wrote:
>>> PXOR user in code were causing the lowest SP float register to have NaN
>>> values which made all math operations in that slot fail. Correct istruction
>>> to clear float registers is XORPS which handles single precission floats
>>> correctly.
>>>
>>> Fixes progs/tests/fog in swrast SSE mode.
>>>
>>> Signed-off-by: Pauli Nieminen <suok...@gmail.com>
>>> ---
>>>  src/mesa/x86/sse_xform2.S |    2 +-
>>>  src/mesa/x86/sse_xform3.S |    2 +-
>>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/mesa/x86/sse_xform2.S b/src/mesa/x86/sse_xform2.S
>>> index b490d4c..a443dad 100644
>>> --- a/src/mesa/x86/sse_xform2.S
>>> +++ b/src/mesa/x86/sse_xform2.S
>>> @@ -186,7 +186,7 @@ GLNAME(_mesa_sse_transform_points2_3d_no_rot):
>>>      MOV_L( REGOFF(V4F_START, EDI), EDI )     /* ptr to first dest vertex */
>>>      ADD_L( EDI, ECX )                                /* count += dest ptr 
>>> */
>>>
>>> -    PXOR( XMM0, XMM0 )
>>> +    XORPS( XMM0, XMM0 )                         /* clean the working 
>>> register */
>>
>> (Showing ignorance here...)  Is XORPS available in all of the flavors of
>> SSE that this code is supposed to support?  I assume that it is...
>
> Yes, it's been there since SSE1. (PXOR is the MMX mnemonic that was
> extended to support SSE registers.)
>
I don't know where official reference documentation is but at least
all sources are claming support for PIII and my mobility athlon XP had
it too. I think it should be supported in all systems with SSE enabled
CPU.
>>>  ALIGNTEXT32
>>>      MOVSS    ( M(0), XMM1 )                  /* - | - |  -  | m0  */
>>> diff --git a/src/mesa/x86/sse_xform3.S b/src/mesa/x86/sse_xform3.S
>>> index 8a79eed..4bc22d8 100644
>>> --- a/src/mesa/x86/sse_xform3.S
>>> +++ b/src/mesa/x86/sse_xform3.S
>>> @@ -198,7 +198,7 @@ GLNAME(_mesa_sse_transform_points3_3d_no_rot):
>>>      MOV_L( REGOFF(V4F_START, EDI), EDI )     /* ptr to first dest vertex */
>>>      ADD_L( EDI, ECX )                                /* count += dest ptr 
>>> */
>>>
>>> -    PXOR( XMM0, XMM0 )
>>> +    XORPS( XMM0, XMM0 )                         /* clean the working 
>>> register */
>>>
>>>  ALIGNTEXT32
>>>      MOVSS    ( M(0), XMM1 )                  /* - | - |  -  | m0  */
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>
>> iEYEARECAAYFAktodyYACgkQX1gOwKyEAw+UqACeIPZw1dkHgf/UBvcym9dgOSxw
>> h88AnjCdZSex5HHC9gUK/GKjcEgMNVwS
>> =6KIc
>> -----END PGP SIGNATURE-----
>>
>> ------------------------------------------------------------------------------
>> The Planet: dedicated and managed hosting, cloud storage, colocation
>> Stay online with enterprise data centers and the best network in the business
>> Choose flexible plans and management services without long-term contracts
>> Personal 24x7 support from experience hosting pros just a phone call away.
>> http://p.sf.net/sfu/theplanet-com
>> _______________________________________________
>> Mesa3d-dev mailing list
>> Mesa3d-dev@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
>>
>

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to