Lines Matching defs:ip0
112 const BYTE* ip0 = istart;
122 size_t hash0; /* hash for ip0 */
124 U32 idx; /* match idx for ip0 */
131 /* ip0 and ip1 are always adjacent. The targetLength skipping and
134 * between pairs of positions, from ip0 to ip2 or ip1 to ip3. */
140 ip0 += (ip0 == prefixStart);
141 { U32 const curr = (U32)(ip0 - base);
149 _start: /* Requires: ip0 */
152 nextStep = ip0 + kStepIncr;
154 /* calculate positions, ip0 - anchor == 0, so we skip step calc */
155 ip1 = ip0 + 1;
156 ip2 = ip0 + step;
163 hash0 = ZSTD_hashPtr(ip0, hlog, mls);
173 current0 = (U32)(ip0 - base);
178 ip0 = ip2;
179 match0 = ip0 - rep_offset1;
180 mLength = ip0[-1] == match0[-1];
181 ip0 -= mLength;
192 mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */
196 if (MEM_read32(ip0) == mval) {
209 ip0 = ip1;
214 current0 = (U32)(ip0 - base);
221 mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */
225 if (MEM_read32(ip0) == mval) {
238 ip0 = ip1;
240 ip2 = ip0 + step;
264 _offset: /* Requires: ip0, idx */
269 rep_offset1 = (U32)(ip0-match0);
274 while (((ip0>anchor) & (match0>prefixStart)) && (ip0[-1] == match0[-1])) {
275 ip0--;
280 _match: /* Requires: ip0, match0, offcode */
283 mLength += ZSTD_count(ip0 + mLength, match0 + mLength, iend);
285 ZSTD_storeSeq(seqStore, (size_t)(ip0 - anchor), anchor, iend, offcode, mLength);
287 ip0 += mLength;
288 anchor = ip0;
291 if (ip1 < ip0) {
296 if (ip0 <= ilimit) {
300 hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base);
303 while ( (ip0 <= ilimit) && (MEM_read32(ip0) == MEM_read32(ip0 - rep_offset2)) ) {
305 size_t const rLength = ZSTD_count(ip0+4, ip0+4-rep_offset2, iend) + 4;
307 hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base);
308 ip0 += rLength;
310 anchor = ip0;