2089 # ifdef FAST_MEMSET4 /* sorry intel: your stosd instruction is slower ... */ |
2087 # ifdef FAST_MEMSET4 /* sorry intel: your stosd instruction is slower ... */ |
2090 memset4(dst, v, l>>2); |
2088 memset4(dst, v, l>>2); |
2091 l = l & 3; |
2089 l = l & 3; |
2092 # else |
2090 # else |
2093 # ifdef UINT64 |
2091 # ifdef UINT64 |
2094 v = (v << 32) | v; |
2092 { |
2095 while (l >= 8) { |
2093 UINT64 v64; |
2096 ((UINT64 *)dst)[0] = v; |
2094 |
2097 dst += 8; |
2095 v64 = v; |
2098 l -= 8; |
2096 v64 = (v64 << 32) | v; |
|
2097 while (l >= 8) { |
|
2098 ((UINT64 *)dst)[0] = v64; |
|
2099 dst += 8; |
|
2100 l -= 8; |
|
2101 } |
2099 } |
2102 } |
2100 # else /* no UINT64 */ |
2103 # else /* no UINT64 */ |
2101 while (l >= 16) { |
2104 while (l >= 16) { |
2102 ((int *)dst)[0] = v; |
2105 ((int *)dst)[0] = v; |
2103 ((int *)dst)[1] = v; |
2106 ((int *)dst)[1] = v; |
2910 len2 = __qSize(aStringOrChar); |
2913 len2 = __qSize(aStringOrChar); |
2911 if (len1 < len2) { |
2914 if (len1 < len2) { |
2912 RETURN ( false ); |
2915 RETURN ( false ); |
2913 } |
2916 } |
2914 |
2917 |
2915 # ifdef UINT64 |
2918 #ifdef UINT64 |
2916 while (len2 > (OHDR_SIZE+sizeof(UINT64))) { |
2919 while (len2 > (OHDR_SIZE+sizeof(UINT64))) { |
2917 if ( *((unsigned UINT64 *)src1) != *((unsigned UINT64 *)src2) ) { |
2920 if ( ((UINT64 *)src1)[0] != ((UINT64 *)src2)[0] ) { |
2918 RETURN (false); |
2921 RETURN (false); |
2919 } |
2922 } |
2920 len2 -= sizeof(UINT64); |
2923 len2 -= sizeof(UINT64); |
2921 src1 += sizeof(UINT64); |
2924 src1 += sizeof(UINT64); |
2922 src2 += sizeof(UINT64); |
2925 src2 += sizeof(UINT64); |
2923 } |
2926 } |
2924 # endif /* UINT64 */ |
2927 #else |
|
2928 # ifdef UNROLL_LOOPS |
|
2929 while (len2 > (OHDR_SIZE+sizeof(INT)*4)) { |
|
2930 if ( ((unsigned INT *)src1)[0] != ((unsigned INT *)src2)[0]) { |
|
2931 RETURN (false); |
|
2932 } |
|
2933 if ( ((unsigned INT *)src1)[1] != ((unsigned INT *)src2)[1]) { |
|
2934 RETURN (false); |
|
2935 } |
|
2936 if ( ((unsigned INT *)src1)[2] != ((unsigned INT *)src2)[2]) { |
|
2937 RETURN (false); |
|
2938 } |
|
2939 if ( ((unsigned INT *)src1)[3] != ((unsigned INT *)src2)[3]) { |
|
2940 RETURN (false); |
|
2941 } |
|
2942 len2 -= sizeof(INT)*4; |
|
2943 src1 += sizeof(INT)*4; |
|
2944 src2 += sizeof(INT)*4; |
|
2945 } |
|
2946 # endif /* UNROLL_LOOPS */ |
|
2947 #endif /* UINT64 */ |
2925 |
2948 |
2926 while (len2 > (OHDR_SIZE+sizeof(INT))) { |
2949 while (len2 > (OHDR_SIZE+sizeof(INT))) { |
2927 if ( *((unsigned INT *)src1) != *((unsigned INT *)src2) ) { |
2950 if ( ((unsigned INT *)src1)[0] != ((unsigned INT *)src2)[0]) { |
2928 RETURN (false); |
2951 RETURN (false); |
2929 } |
2952 } |
2930 len2 -= sizeof(INT); |
2953 len2 -= sizeof(INT); |
2931 src1 += sizeof(INT); |
2954 src1 += sizeof(INT); |
2932 src2 += sizeof(INT); |
2955 src2 += sizeof(INT); |