mesa: fix formatting of messages printed using _mesa_log
[mesa.git] / src / mesa / x86 / 3dnow_xform4.S
index 06d7c6950a237a0dd3283688488d684e458a29be..87868e445238581ed4273b1b7cbc41fe2c92e108 100644 (file)
@@ -1,8 +1,6 @@
-/* $Id: 3dnow_xform4.S,v 1.1 2001/03/29 06:46:16 gareth Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
  *
  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "matypes.h"
+#ifdef USE_3DNOW_ASM
+#include "assyntax.h"
+#define MATH_ASM_PTR_SIZE 4
+#include "math/m_vector_asm.h"
 #include "xform_args.h"
 
     SEG_TEXT
@@ -34,8 +36,9 @@
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_general )
+HIDDEN(_mesa_3dnow_transform_points4_general)
 GLNAME( _mesa_3dnow_transform_points4_general ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
 
     MOV_L     ( ARG_DEST, ECX )
@@ -59,17 +62,17 @@ GLNAME( _mesa_3dnow_transform_points4_general ):
 
     PREFETCHW ( REGIND(EDX) )
 
-    MOVQ      ( REGIND(EAX), MM0 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM4 )  /* x3              | x2              */
-
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
-
 ALIGNTEXT16
 LLBL( G3TPGR_1 ):
 
     PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
-    PREFETCH  ( REGIND(EAX) )
 
+    MOVQ      ( REGIND(EAX), MM0 )     /* x1            | x0                */
+    MOVQ      ( REGOFF(8, EAX), MM4 )  /* x3            | x2                */
+       
+    ADD_L     ( EDI, EAX )             /* next vertex                       */
+    PREFETCH  ( REGIND(EAX) )
+       
     MOVQ      ( MM0, MM2 )             /* x1              | x0              */
     MOVQ      ( MM4, MM6 )             /* x3              | x2              */
 
@@ -110,10 +113,6 @@ LLBL( G3TPGR_1 ):
     MOVQ      ( MM6, REGOFF(-16, EDX) )
 
     MOVQ      ( MM7, REGOFF(-8, EDX) )
-    MOVQ      ( REGIND(EAX), MM0 )     /* x1            | x0                */
-
-    MOVQ      ( REGOFF(8, EAX), MM4 )  /* x3            | x2                */
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
 
     DEC_L     ( ESI )                  /* decrement vertex counter          */
     JNZ       ( LLBL( G3TPGR_1 ) )     /* cnt > 0 ? -> process next vertex  */
@@ -130,8 +129,9 @@ LLBL( G3TPGR_2 ):
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_perspective )
+HIDDEN(_mesa_3dnow_transform_points4_perspective)
 GLNAME( _mesa_3dnow_transform_points4_perspective ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
 
     MOV_L     ( ARG_DEST, ECX )
@@ -165,16 +165,16 @@ GLNAME( _mesa_3dnow_transform_points4_perspective ):
     MOVQ      ( REGOFF(32, ECX), MM2 ) /* m21             | m20             */
     PXOR      ( MM7, MM7 )             /* 0               | 0               */
 
+ALIGNTEXT16
+LLBL( G3TPPR_1 ):
+
+    PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
+
     MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
     MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
     MOVD      ( REGOFF(8, EAX), MM3 )  /*                 | x2              */
 
     ADD_L     ( EDI, EAX )             /* next vertex                       */
-
-ALIGNTEXT16
-LLBL( G3TPPR_1 ):
-
-    PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
     PREFETCH  ( REGOFF(32, EAX) )      /* hopefully stride is zero          */
 
     MOVQ      ( MM5, MM6 )             /* x3              | x2              */
@@ -193,12 +193,6 @@ LLBL( G3TPPR_1 ):
     MOVQ      ( MM5, REGOFF(-16, EDX) )        /* write r0, r1                      */
 
     MOVQ      ( MM6, REGOFF(-8, EDX) ) /* write r2, r3                      */
-    MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
-
-    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
-    MOVD      ( REGOFF(8, EAX), MM3 )  /*                 | x2              */
-
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
     DEC_L     ( ESI )                  /* decrement vertex counter          */
 
     JNZ       ( LLBL( G3TPPR_1 ) )     /* cnt > 0 ? -> process next vertex  */
@@ -215,8 +209,9 @@ LLBL( G3TPPR_2 ):
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_3d )
+HIDDEN(_mesa_3dnow_transform_points4_3d)
 GLNAME( _mesa_3dnow_transform_points4_3d ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
 
     MOV_L     ( ARG_DEST, ECX )
@@ -244,15 +239,15 @@ GLNAME( _mesa_3dnow_transform_points4_3d ):
     MOVD      ( REGOFF(40, ECX), MM7 ) /*                 | m10             */
     PUNPCKLDQ ( REGOFF(56, ECX), MM7 ) /* m14             | m10             */
 
-    MOVQ      ( REGIND(EAX), MM2 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM3 )  /* x3              | x2              */
-
 ALIGNTEXT16
 LLBL( G3TP3R_1 ):
 
     PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
     PREFETCH  ( REGOFF(32, EAX) )      /* hopefully array is tightly packed */
 
+    MOVQ      ( REGIND(EAX), MM2 )     /* x1              | x0              */
+    MOVQ      ( REGOFF(8, EAX), MM3 )  /* x3              | x2              */
+
     MOVQ      ( MM2, MM0 )             /* x1              | x0              */
     MOVQ      ( MM3, MM4 )             /* x3              | x2              */
 
@@ -289,9 +284,6 @@ LLBL( G3TP3R_1 ):
     MOVQ      ( MM4, REGOFF(-16, EDX) )        /* write r0, r1                      */
     MOVQ      ( MM5, REGOFF(-8, EDX) ) /* write r2, r3                      */
 
-    MOVQ      ( REGIND(EAX), MM2 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM3 )  /* x3              | x2              */
-
     DEC_L     ( ESI )                  /* decrement vertex counter          */
     JNZ       ( LLBL( G3TP3R_1 ) )     /* cnt > 0 ? -> process next vertex  */
 
@@ -307,8 +299,9 @@ LLBL( G3TP3R_2 ):
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_3d_no_rot )
+HIDDEN(_mesa_3dnow_transform_points4_3d_no_rot)
 GLNAME( _mesa_3dnow_transform_points4_3d_no_rot ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
     MOV_L     ( ARG_DEST, ECX )
     MOV_L     ( ARG_MATRIX, ESI )
@@ -337,16 +330,16 @@ GLNAME( _mesa_3dnow_transform_points4_3d_no_rot ):
 
     MOVQ      ( REGOFF(48, ECX), MM1 ) /* m31             | m30             */
 
+ALIGNTEXT16
+LLBL( G3TP3NRR_1 ):
+
+    PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
+
     MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
     MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
     MOVD      ( REGOFF(12, EAX), MM7 ) /*                 | x3              */
 
     ADD_L     ( EDI, EAX )             /* next vertex                       */
-
-ALIGNTEXT16
-LLBL( G3TP3NRR_1 ):
-
-    PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
     PREFETCH  ( REGOFF(32, EAX) )      /* hopefully stride is zero          */
 
     MOVQ      ( MM5, MM6 )             /* x3              | x2              */
@@ -364,12 +357,6 @@ LLBL( G3TP3NRR_1 ):
     MOVQ      ( MM4, REGOFF(-16, EDX) )        /* write r0, r1                      */
     MOVQ      ( MM5, REGOFF(-8, EDX) ) /* write r2, r3                      */
 
-    MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
-
-    MOVD      ( REGOFF(12, EAX), MM7 ) /*                 | x3              */
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
-
     DEC_L     ( ESI )                  /* decrement vertex counter          */
     JNZ       ( LLBL( G3TP3NRR_1 ) )   /* cnt > 0 ? -> process next vertex  */
 
@@ -385,8 +372,9 @@ LLBL( G3TP3NRR_2 ):
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_2d )
+HIDDEN(_mesa_3dnow_transform_points4_2d)
 GLNAME( _mesa_3dnow_transform_points4_2d ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
 
     MOV_L     ( ARG_DEST, ECX )
@@ -416,15 +404,15 @@ GLNAME( _mesa_3dnow_transform_points4_2d ):
 
     MOVQ      ( REGOFF(48, ECX), MM2 ) /* m31             | m30             */
 
-    MOVQ      ( REGIND(EAX), MM3 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
-
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
-
 ALIGNTEXT16
 LLBL( G3TP2R_1 ):
 
     PREFETCHW ( REGOFF(32, EDX) )       /* prefetch 2 vertices ahead         */
+
+    MOVQ      ( REGIND(EAX), MM3 )     /* x1              | x0              */
+    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
+
+    ADD_L     ( EDI, EAX )             /* next vertex                       */
     PREFETCH  ( REGIND(EAX) )
 
     MOVQ      ( MM3, MM4 )             /* x1              | x0              */
@@ -443,10 +431,6 @@ LLBL( G3TP2R_1 ):
     MOVQ      ( MM5, REGOFF(-8, EDX) ) /* write r2, r3                      */
 
     MOVQ      ( MM3, REGOFF(-16, EDX) )        /* write r0, r1                      */
-    MOVQ      ( REGIND(EAX), MM3 )     /* x1              | x0              */
-
-    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
 
     DEC_L     ( ESI )                  /* decrement vertex counter          */
     JNZ       ( LLBL( G3TP2R_1 ) )     /* cnt > 0 ? -> process next vertex  */
@@ -463,8 +447,9 @@ LLBL( G3TP2R_2 ):
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_2d_no_rot )
+HIDDEN(_mesa_3dnow_transform_points4_2d_no_rot)
 GLNAME( _mesa_3dnow_transform_points4_2d_no_rot ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
 
     MOV_L     ( ARG_DEST, ECX )
@@ -491,15 +476,15 @@ GLNAME( _mesa_3dnow_transform_points4_2d_no_rot ):
 
     MOVQ      ( REGOFF(48, ECX), MM1 ) /* m31             | m30             */
 
-    MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
-
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
-
 ALIGNTEXT16
 LLBL( G3TP2NRR_2 ):
 
     PREFETCHW ( REGOFF(32, EDX) )      /* prefetch 2 vertices ahead         */
+
+    MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
+    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
+
+    ADD_L     ( EDI, EAX )             /* next vertex                       */
     PREFETCH  ( REGIND(EAX) )
 
     PFMUL     ( MM0, MM4 )             /* x1*m11          | x0*m00          */
@@ -514,10 +499,6 @@ LLBL( G3TP2NRR_2 ):
     MOVQ      ( MM6, REGOFF(-16, EDX) )        /* write r0, r1                      */
     MOVQ      ( MM5, REGOFF(-8, EDX) ) /* write r2, r3                      */
 
-    MOVQ      ( REGIND(EAX), MM4 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM5 )  /* x3              | x2              */
-
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
     DEC_L     ( ESI )                  /* decrement vertex counter          */
 
     JNZ       ( LLBL( G3TP2NRR_2 ) )   /* cnt > 0 ? -> process next vertex  */
@@ -534,8 +515,9 @@ LLBL( G3TP2NRR_3 ):
 
 ALIGNTEXT16
 GLOBL GLNAME( _mesa_3dnow_transform_points4_identity )
+HIDDEN(_mesa_3dnow_transform_points4_identity)
 GLNAME( _mesa_3dnow_transform_points4_identity ):
-
+    _CET_ENDBR
     PUSH_L    ( ESI )
 
     MOV_L     ( ARG_DEST, ECX )
@@ -557,25 +539,21 @@ GLNAME( _mesa_3dnow_transform_points4_identity ):
     TEST_L    ( ESI, ESI )
     JZ        ( LLBL( G3TPIR_2 ) )
 
-    MOVQ      ( REGIND(EAX), MM0 )     /* x1              | x0              */
-    MOVQ      ( REGOFF(8, EAX), MM1 )  /* x3              | x2              */
-
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
-
 ALIGNTEXT16
 LLBL( G3TPIR_1 ):
 
     PREFETCHW ( REGOFF(32, EDX) )       /* prefetch 2 vertices ahead         */
+       
+    MOVQ      ( REGIND(EAX), MM0 )     /* x1              | x0              */
+    MOVQ      ( REGOFF(8, EAX), MM1 )  /* x3              | x2              */
+
+    ADD_L     ( EDI, EAX )             /* next vertex                       */
     PREFETCH  ( REGIND(EAX) )
 
     ADD_L     ( CONST(16), EDX )       /* next r                            */
     MOVQ      ( MM0, REGOFF(-16, EDX) )        /* r1              | r0              */
 
     MOVQ      ( MM1, REGOFF(-8, EDX) ) /* r3              | r2              */
-    MOVQ      ( REGIND(EAX), MM0 )     /* x1              | x0              */
-
-    MOVQ      ( REGOFF(8, EAX), MM1 )  /* x3              | x2              */
-    ADD_L     ( EDI, EAX )             /* next vertex                       */
 
     DEC_L     ( ESI )                  /* decrement vertex counter          */
     JNZ       ( LLBL( G3TPIR_1 ) )     /* cnt > 0 ? -> process next vertex  */
@@ -586,3 +564,8 @@ LLBL( G3TPIR_2 ):
     POP_L     ( EDI )
     POP_L     ( ESI )
     RET
+#endif
+       
+#if defined (__ELF__) && defined (__linux__)
+       .section .note.GNU-stack,"",%progbits
+#endif