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