Displaying 11 results from an estimated 11 matches for "char_offset".
2020 May 19
5
[PATCHv2] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...)) static inline __m128i
sse_maddubs_epi16(__m128i a, __m128i b) { }
+
+/*
+ a simple 32 bit checksum that can be updated from either end
+ (inspired by Mark Adler's Adler-32 checksum)
+ */
+/*
+ Original loop per 4 bytes:
+ s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3] +
10*CHAR_OFFSET;
+ s1 += buf[i] + buf[i+1] + buf[i+2] + buf[i+3] + 4*CHAR_OFFSET;
+
+ SSE2/SSSE3 loop per 32 bytes:
+ int16 t1[8];
+ int16 t2[8];
+ for (int j = 0; j < 8; j++) {
+ t1[j] = buf[j*4 + i] + buf[j*4 + i+1] + buf[j*4 + i+2] + buf[j*4 + i+3];
+ t2[j] = 4*buf[j*4 + i] + 3*buf[j*4...
2020 May 18
6
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...even_epi8(a, b),
+ sse_mulu_odd_epi8(a, b)
+ );
+#endif
+}
+
+/*
+ a simple 32 bit checksum that can be updated from either end
+ (inspired by Mark Adler's Adler-32 checksum)
+ */
+/*
+ Original loop per 4 bytes:
+ s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3] +
10*CHAR_OFFSET;
+ s1 += buf[i] + buf[i+1] + buf[i+2] + buf[i+3] + 4*CHAR_OFFSET;
+
+ SSE2/SSSE3 loop per 32 bytes:
+ int16 t1[8];
+ int16 t2[8];
+ for (int j = 0; j < 8; j++) {
+ t1[j] = buf[j*4 + i] + buf[j*4 + i+1] + buf[j*4 + i+2] + buf[j*4 + i+3];
+ t2[j] = 4*buf[j*4 + i] + 3*buf[j*4...
2020 May 18
0
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...);
> +#endif
> +}
> +
> +/*
> + a simple 32 bit checksum that can be updated from either end
> + (inspired by Mark Adler's Adler-32 checksum)
> + */
> +/*
> + Original loop per 4 bytes:
> + s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3] +
> 10*CHAR_OFFSET;
> + s1 += buf[i] + buf[i+1] + buf[i+2] + buf[i+3] + 4*CHAR_OFFSET;
> +
> + SSE2/SSSE3 loop per 32 bytes:
> + int16 t1[8];
> + int16 t2[8];
> + for (int j = 0; j < 8; j++) {
> + t1[j] = buf[j*4 + i] + buf[j*4 + i+1] + buf[j*4 + i+2] + buf[j*4 +
> i+3];
&...
2020 May 20
0
[PATCHv2] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...m128i a, __m128i b) { }
> +
> +/*
> + a simple 32 bit checksum that can be updated from either end
> + (inspired by Mark Adler's Adler-32 checksum)
> + */
> +/*
> + Original loop per 4 bytes:
> + s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3] +
> 10*CHAR_OFFSET;
> + s1 += buf[i] + buf[i+1] + buf[i+2] + buf[i+3] + 4*CHAR_OFFSET;
> +
> + SSE2/SSSE3 loop per 32 bytes:
> + int16 t1[8];
> + int16 t2[8];
> + for (int j = 0; j < 8; j++) {
> + t1[j] = buf[j*4 + i] + buf[j*4 + i+1] + buf[j*4 + i+2] + buf[j*4 + i+3];
> +...
2020 May 18
2
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...gt;> +/*
>> + a simple 32 bit checksum that can be updated from either end
>> + (inspired by Mark Adler's Adler-32 checksum)
>> + */
>> +/*
>> + Original loop per 4 bytes:
>> + s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3] +
>> 10*CHAR_OFFSET;
>> + s1 += buf[i] + buf[i+1] + buf[i+2] + buf[i+3] + 4*CHAR_OFFSET;
>> +
>> + SSE2/SSSE3 loop per 32 bytes:
>> + int16 t1[8];
>> + int16 t2[8];
>> + for (int j = 0; j < 8; j++) {
>> + t1[j] = buf[j*4 + i] + buf[j*4 + i+1] + buf[j*4 + i...
2020 May 18
3
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
What do you base this on?
Per https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html :
"For the x86-32 compiler, you must use -march=cpu-type, -msse or
-msse2 switches to enable SSE extensions and make this option
effective. For the x86-64 compiler, these extensions are enabled by
default."
That reads to me like we're fine for SSE2. As stated in my comments,
SSSE3 support must be
2002 Mar 15
1
Weak CheckSum Question
Hi all,
I am writing a xdelta-like application as a personal experiment and am busy
implementing the rsync protocol, so far so good. I am using C++ templates and
creating the algorithms so that operate on any stream, array, etc. through
iterators.
All seems well except that I am getting a lot of false hits with the weak
checksum. When generating checksums of blocksize 1024 on the RedHat 7.1
2009 Sep 24
1
weak checksum
Hi,
I'm curious if anybody knows the exact reason why the weak checksum
calculation is slightly different to the standard adler-32 checksum as seen
for example here http://en.wikipedia.org/wiki/Adler-32 ?
Thanks
Julian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/rsync/attachments/20090924/c4ed210b/attachment.html>
2004 Aug 02
4
reducing memmoves
Attached is a patch that makes window strides constant when files are
walked with a constant block size. In these cases, it completely
avoids all memmoves.
In my simple local test of rsyncing 57MB of 10 local files, memmoved
bytes went from 18MB to zero.
I haven't tested this for a big variety of file cases. I think that this
will always reduce the memmoves involved with walking a large
2002 Aug 05
5
[patch] read-devices
...uf,offset,s->n);
+ k = buf->m_len;
+ sum = get_checksum1(buf->m_ptr, k);
+
s1 = sum & 0xFFFF;
s2 = sum >> 16;
matches++;
break;
}
null_tag:
/* Trim off the first byte from the checksum */
- map = (schar *)map_ptr(buf,offset,k+1);
- s1 -= map[0] + CHAR_OFFSET;
- s2 -= k * (map[0]+CHAR_OFFSET);
+ map_ptr(buf,offset,k+1);
+ if (buf->m_len==0) break; /* encountered EOF */
+ s1 -= buf->m_ptr[0] + CHAR_OFFSET;
+ s2 -= k * (buf->m_ptr[0]+CHAR_OFFSET);
/* Add on the next byte (if there is one) to the checksum */
- if (k < (len-offset))...
2004 Jan 17
1
--delete-sent-files (AKA --move-files)
...are identical on
+both systems\&.
.IP
.IP "\fB--ignore-errors\fP"
Tells --delete to go ahead and delete files
Index: rsync.h
--- rsync.h 15 Jan 2004 07:42:27 -0000 1.173
+++ rsync.h 17 Jan 2004 05:04:56 -0000
@@ -39,6 +39,7 @@
incompatible with older versions :-( */
#define CHAR_OFFSET 0
+/* These flags are used during the flist transfer. */
#define FLAG_DELETE (1<<0)
#define SAME_MODE (1<<1)
@@ -54,9 +55,14 @@
#define HAS_INODE_DATA (1<<9)
#define SAME_DEV (1<<10)
-/* What flags are relevant after the transfer of the flist is complete? */
+/* Wh...