Array.st
changeset 2979 6bb06c5e49d8
parent 2950 d5fae0fb75d7
child 2991 72c28b477ba7
equal deleted inserted replaced
2978:e466e478fa43 2979:6bb06c5e49d8
   127 # undef FAST_ARRAY_MEMSET_DOUBLES_UNROLLED
   127 # undef FAST_ARRAY_MEMSET_DOUBLES_UNROLLED
   128 # undef FAST_ARRAY_MEMSET_LONGLONG_UNROLLED
   128 # undef FAST_ARRAY_MEMSET_LONGLONG_UNROLLED
   129 /* seems to be slightly faster */
   129 /* seems to be slightly faster */
   130 # define FAST_ARRAY_MEMSET
   130 # define FAST_ARRAY_MEMSET
   131 #endif
   131 #endif
       
   132 
   132 #ifdef sparc
   133 #ifdef sparc
   133 # define FAST_ARRAY_MEMSET_DOUBLES_UNROLLED
   134 # define FAST_ARRAY_MEMSET_DOUBLES_UNROLLED
       
   135 #endif
       
   136 
       
   137 #ifdef __VMS__
       
   138 # define FAST_ARRAY_MEMSET_LONGLONG_UNROLLED
   134 #endif
   139 #endif
   135 
   140 
   136 #  if defined(FAST_ARRAY_MEMSET_DOUBLES_UNROLLED)
   141 #  if defined(FAST_ARRAY_MEMSET_DOUBLES_UNROLLED)
   137 		op = __InstPtr(newobj)->i_instvars;
   142 		op = __InstPtr(newobj)->i_instvars;
   138 		if (nInstVars > 8) {
   143 		if (nInstVars > 8) {
   151 		    *op++ = 0;
   156 		    *op++ = 0;
   152 		    nInstVars--;
   157 		    nInstVars--;
   153 		}
   158 		}
   154 #  else
   159 #  else
   155 #   if defined(FAST_ARRAY_MEMSET_LONGLONG_UNROLLED)
   160 #   if defined(FAST_ARRAY_MEMSET_LONGLONG_UNROLLED)
       
   161 #    ifdef INT64
       
   162 #     define LONGLONG INT64
       
   163 #    else
       
   164 #     define LONGLONG long long
       
   165 #   endif
       
   166 
   156 		op = __InstPtr(newobj)->i_instvars;
   167 		op = __InstPtr(newobj)->i_instvars;
   157 		if (nInstVars > 8) {
   168 		if (nInstVars > 8) {
   158 		    *op++ = nil;    /* for alignment */
   169 		    *op++ = nil;    /* for alignment */
   159 		    nInstVars--;
   170 		    nInstVars--;
   160 		    while (nInstVars >= 8) {
   171 		    while (nInstVars >= 8) {
   161 			*(long long *)op = 0;
   172 			*(LONGLONG *)op = 0;
   162 			((long long *)op)[1] = 0;
   173 			((LONGLONG *)op)[1] = 0;
   163 			((long long *)op)[2] = 0;
   174 			((LONGLONG *)op)[2] = 0;
   164 			((long long *)op)[3] = 0;
   175 			((LONGLONG *)op)[3] = 0;
   165 			op += 8;
   176 			op += 8;
   166 			nInstVars -= 8;
   177 			nInstVars -= 8;
   167 		    }
   178 		    }
   168 		}
   179 		}
   169 		while (nInstVars) {
   180 		while (nInstVars) {
  2218 ! !
  2229 ! !
  2219 
  2230 
  2220 !Array class methodsFor:'documentation'!
  2231 !Array class methodsFor:'documentation'!
  2221 
  2232 
  2222 version
  2233 version
  2223     ^ '$Header: /cvs/stx/stx/libbasic/Array.st,v 1.100 1997-09-18 20:11:01 cg Exp $'
  2234     ^ '$Header: /cvs/stx/stx/libbasic/Array.st,v 1.101 1997-09-24 02:48:09 cg Exp $'
  2224 ! !
  2235 ! !