mesa: Fix and re-enable sparc normal asm.
authorDavid Miller <davem@davemloft.net>
Fri, 27 Feb 2009 10:38:40 +0000 (02:38 -0800)
committerBrian Paul <brianp@vmware.com>
Fri, 27 Feb 2009 14:54:02 +0000 (07:54 -0700)
Fix a bug reported in 2003 :-)

The output vector has 4 entries, not 3.

Unconditionally emit .register directives.

Signed-off-by: David S. Miller <davem@davemloft.net>
src/mesa/sparc/norm.S
src/mesa/sparc/sparc.c

index 44950a10a5d84c6132d5e09527816aa790b84c75..117d36fa223300ecd0ab924841430541ed42c46d 100644 (file)
@@ -1,11 +1,8 @@
 
 #include "sparc_matrix.h"
 
-#if defined(SVR4) || defined(__SVR4) || defined(__svr4__)
-       /* Solaris requires this for 64-bit. */
        .register %g2, #scratch
        .register %g3, #scratch
-#endif
 
        .text
 
@@ -98,7 +95,7 @@ _mesa_sparc_transform_normalize_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
        ba      7f
         nop
@@ -154,7 +151,7 @@ _mesa_sparc_transform_normalize_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      5b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -225,7 +222,7 @@ _mesa_sparc_transform_normalize_normals_no_rot:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
        ba      7f
         nop
@@ -263,7 +260,7 @@ _mesa_sparc_transform_normalize_normals_no_rot:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      5b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -314,7 +311,7 @@ _mesa_sparc_transform_rescale_normals_no_rot:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -379,7 +376,7 @@ _mesa_sparc_transform_rescale_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -421,7 +418,7 @@ _mesa_sparc_transform_normals_no_rot:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -471,7 +468,7 @@ _mesa_sparc_transform_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -529,7 +526,7 @@ _mesa_sparc_normalize_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
        ba      7f
         nop
@@ -557,7 +554,7 @@ _mesa_sparc_normalize_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      5b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
@@ -602,7 +599,7 @@ _mesa_sparc_rescale_normals:
 
        cmp     %o4, %g1                        ! continue if (i < count)
        bl      1b
-        add    %g3, 0x0c, %g3                  ! advance out vector pointer
+        add    %g3, 0x10, %g3                  ! advance out vector pointer
 
 7:     retl
         nop
index fafb49b81cd6f42a88b97c5235e50b68792f9814..d2286a2c8372c9cc1203714a295004770dbce21f 100644 (file)
@@ -113,8 +113,6 @@ void _mesa_init_all_sparc_transform_asm(void)
    _mesa_clip_tab[4] = _mesa_sparc_cliptest_points4;
    _mesa_clip_np_tab[4] = _mesa_sparc_cliptest_points4_np;
 
-#if 0
-   /* disable these too.  See bug 673938 */
    _mesa_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE] =
           _mesa_sparc_transform_normalize_normals;
    _mesa_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE] =
@@ -131,7 +129,6 @@ void _mesa_init_all_sparc_transform_asm(void)
           _mesa_sparc_normalize_normals;
    _mesa_normal_tab[NORM_RESCALE] =
           _mesa_sparc_rescale_normals;
-#endif
 
 #ifdef DEBUG_MATH
    _math_test_all_transform_functions("sparc");