use unoptimized COPY_4UBV code on SPARC to avoid memory alignment problems (bug 430689)
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 8 Jun 2001 12:49:38 +0000 (12:49 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 8 Jun 2001 12:49:38 +0000 (12:49 +0000)
src/mesa/main/macros.h

index 9a32ad5bd49525b3b6634fd4bc8127f7bd65aca3..fb9f029ac267aa4622f859dc9d8ab610f305a410 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macros.h,v 1.21 2001/04/19 12:22:09 keithw Exp $ */
+/* $Id: macros.h,v 1.22 2001/06/08 12:49:38 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -122,6 +122,15 @@ do {                                               \
    (DST)[3] = (SRC)[3];                                \
 } while (0)
 
+#if defined(__sparc__)
+/* Using the GLuint cast fails if DST or SRC are not dword-aligned */
+do {                                           \
+   (DST)[0] = (SRC)[0];                                \
+   (DST)[1] = (SRC)[1];                                \
+   (DST)[2] = (SRC)[2];                                \
+   (DST)[3] = (SRC)[3];                                \
+} while (0)
+#else
 #define COPY_4UBV(DST, SRC)                    \
 do {                                           \
    if (sizeof(GLuint)==4*sizeof(GLubyte)) {    \
@@ -134,7 +143,7 @@ do {                                                \
       (DST)[3] = (SRC)[3];                     \
    }                                           \
 } while (0)
-
+#endif
 
 #define COPY_2FV( DST, SRC )                   \
 do {                                           \