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.)

>>  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