Revision: 3220 Author: eliot Date: 2015-01-07 16:48:08 -0800 (Wed, 07 Jan 2015) Log Message: ----------- Step 2 of replacing DOUBLE_WORD_ALIGNMENT with OBJECTS_32BIT_ALIGNED. Update sqMemoryAccess.h and nuke all the refs in the config.h files.
Modified Paths: -------------- trunk/platforms/Cross/vm/sqMemoryAccess.h trunk/platforms/Mac OS/vm/config.h trunk/platforms/unix/vm/config.cmake trunk/platforms/win32/vm/sqConfig.h trunk/platforms/win32/vm/sqWin32.h
Modified: trunk/platforms/Cross/vm/sqMemoryAccess.h =================================================================== --- trunk/platforms/Cross/vm/sqMemoryAccess.h 2015-01-08 00:42:17 UTC (rev 3219) +++ trunk/platforms/Cross/vm/sqMemoryAccess.h 2015-01-08 00:48:08 UTC (rev 3220) @@ -40,6 +40,12 @@ # define SQ_IMAGE64 1 #endif
+#if (SQ_IMAGE64 || SPURVM) +# define OBJECTS_32BIT_ALIGNED 0 +#else +# define OBJECTS_32BIT_ALIGNED 1 +#endif + #if (SIZEOF_VOID_P == 4) # define SQ_HOST32 1 #elif (SIZEOF_VOID_P == 8) @@ -129,7 +135,7 @@ these macros to swap words if necessary. This costs no extra and obviates sometimes having to word-swap floats when reading an image. */ -#if defined(DOUBLE_WORD_ALIGNMENT) || defined(DOUBLE_WORD_ORDER) +#if defined(OBJECTS_32BIT_ALIGNED) || defined(DOUBLE_WORD_ORDER) /* this is to allow strict aliasing assumption in the optimizer */ typedef union { double d; int i[sizeof(double) / sizeof(int)]; } _swapper; # ifdef DOUBLE_WORD_ORDER @@ -149,7 +155,7 @@ ((_swapper *)(&floatVarName))->i[0] = *((int *)(intPointerToFloat) + 0); \ ((_swapper *)(&floatVarName))->i[1] = *((int *)(intPointerToFloat) + 1); # endif /*!DOUBLE_WORD_ORDER*/ -#else /*!(DOUBLE_WORD_ORDER||DOUBLE_WORD_ALIGNMENT)*/ +#else /*!(DOUBLE_WORD_ORDER||OBJECTS_32BIT_ALIGNED)*/ /* for machines that allow doubles to be on any word boundary */ # define storeFloatAtPointerfrom(i, floatVarName) \ *((double *) (i)) = (floatVarName);
Modified: trunk/platforms/Mac OS/vm/config.h =================================================================== --- trunk/platforms/Mac OS/vm/config.h 2015-01-08 00:42:17 UTC (rev 3219) +++ trunk/platforms/Mac OS/vm/config.h 2015-01-08 00:48:08 UTC (rev 3220) @@ -170,7 +170,6 @@ #endif
#define HAVE_LIBDL 1 -/* #undef DOUBLE_WORD_ALIGNMENT */ /* #undef DOUBLE_WORD_ORDER */
/* damage containment */
Modified: trunk/platforms/unix/vm/config.cmake =================================================================== --- trunk/platforms/unix/vm/config.cmake 2015-01-08 00:42:17 UTC (rev 3219) +++ trunk/platforms/unix/vm/config.cmake 2015-01-08 00:48:08 UTC (rev 3220) @@ -106,10 +106,10 @@ CONFIG_DEFINE (SIZEOF_LONG_LONG) CONFIG_DEFINE (SIZEOF_VOID_P)
-TRY_RUN (DOUBLE_WORD_ALIGNMENT tmp ${bld} ${config}/testDoubleWordAlignment.c) +# TRY_RUN (DOUBLE_WORD_ALIGNMENT tmp ${bld} ${config}/testDoubleWordAlignment.c) TRY_RUN (DOUBLE_WORD_ORDER tmp ${bld} ${config}/testDoubleWordOrder.c)
-CONFIG_DEFINE (DOUBLE_WORD_ALIGNMENT) +# CONFIG_DEFINE (DOUBLE_WORD_ALIGNMENT) CONFIG_DEFINE (DOUBLE_WORD_ORDER)
# sqPlatformSpecific.h
Modified: trunk/platforms/win32/vm/sqConfig.h =================================================================== --- trunk/platforms/win32/vm/sqConfig.h 2015-01-08 00:42:17 UTC (rev 3219) +++ trunk/platforms/win32/vm/sqConfig.h 2015-01-08 00:48:08 UTC (rev 3220) @@ -15,7 +15,6 @@ # endif # if defined(_M_IX86) || defined(X86) /* x86 systems */ -# define DOUBLE_WORD_ALIGNMENT # define DOUBLE_WORD_ORDER /* Note: We include a generic sqWin32.h to override some settings */ # include "sqWin32.h"
Modified: trunk/platforms/win32/vm/sqWin32.h =================================================================== --- trunk/platforms/win32/vm/sqWin32.h 2015-01-08 00:42:17 UTC (rev 3219) +++ trunk/platforms/win32/vm/sqWin32.h 2015-01-08 00:48:08 UTC (rev 3220) @@ -59,7 +59,6 @@ #endif
#ifdef _MIPS_ -# undef DOUBLE_WORD_ALIGNMENT # define DOUBLE_WORD_ORDER #endif
vm-dev@lists.squeakfoundation.org