--- a/String.st Mon May 31 18:22:54 1999 +0200
+++ b/String.st Tue Jun 01 17:07:18 1999 +0200
@@ -1066,7 +1066,6 @@
if (l1 != l2) {
RETURN ( false );
}
-#undef FAST_STRNCMP
#ifdef FAST_STRNCMP
RETURN ( (strncmp(cp1, cp2, l1) == 0) ? true : false );
#else
@@ -1327,7 +1326,6 @@
RETURN ( true );
}
-#undef FAST_STRNCMP
#ifdef FAST_STRNCMP
RETURN ( (strncmp(cp1, cp2, l1) == 0) ? false : true );
#else
@@ -2091,11 +2089,16 @@
l = l & 3;
# else
# ifdef UINT64
- v = (v << 32) | v;
- while (l >= 8) {
- ((UINT64 *)dst)[0] = v;
- dst += 8;
- l -= 8;
+ {
+ UINT64 v64;
+
+ v64 = v;
+ v64 = (v64 << 32) | v;
+ while (l >= 8) {
+ ((UINT64 *)dst)[0] = v64;
+ dst += 8;
+ l -= 8;
+ }
}
# else /* no UINT64 */
while (l >= 16) {
@@ -2912,19 +2915,39 @@
RETURN ( false );
}
-# ifdef UINT64
+#ifdef UINT64
while (len2 > (OHDR_SIZE+sizeof(UINT64))) {
- if ( *((unsigned UINT64 *)src1) != *((unsigned UINT64 *)src2) ) {
+ if ( ((UINT64 *)src1)[0] != ((UINT64 *)src2)[0] ) {
RETURN (false);
}
len2 -= sizeof(UINT64);
src1 += sizeof(UINT64);
src2 += sizeof(UINT64);
}
-# endif /* UINT64 */
+#else
+# ifdef UNROLL_LOOPS
+ while (len2 > (OHDR_SIZE+sizeof(INT)*4)) {
+ if ( ((unsigned INT *)src1)[0] != ((unsigned INT *)src2)[0]) {
+ RETURN (false);
+ }
+ if ( ((unsigned INT *)src1)[1] != ((unsigned INT *)src2)[1]) {
+ RETURN (false);
+ }
+ if ( ((unsigned INT *)src1)[2] != ((unsigned INT *)src2)[2]) {
+ RETURN (false);
+ }
+ if ( ((unsigned INT *)src1)[3] != ((unsigned INT *)src2)[3]) {
+ RETURN (false);
+ }
+ len2 -= sizeof(INT)*4;
+ src1 += sizeof(INT)*4;
+ src2 += sizeof(INT)*4;
+ }
+# endif /* UNROLL_LOOPS */
+#endif /* UINT64 */
while (len2 > (OHDR_SIZE+sizeof(INT))) {
- if ( *((unsigned INT *)src1) != *((unsigned INT *)src2) ) {
+ if ( ((unsigned INT *)src1)[0] != ((unsigned INT *)src2)[0]) {
RETURN (false);
}
len2 -= sizeof(INT);
@@ -2970,5 +2993,5 @@
!String class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/String.st,v 1.137 1999-05-19 13:06:02 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/String.st,v 1.138 1999-06-01 15:07:18 cg Exp $'
! !