tree: git://git.cmpxchg.org/linux-mmotm.git master head: 1b1ce5151f3dd9a5bc989207ac56e96dcb84bef4 commit: 26cf34ac1ec8a867ef0ed197bff4f8ce0d76777b [266/283] lib/lzo: implement run-length encoding config: sh-allyesconfig (attached as .config) compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 26cf34ac1ec8a867ef0ed197bff4f8ce0d76777b # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=sh Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): lib/lzo/lzo1x_compress.c: In function 'lzo1x_1_do_compress': >> lib/lzo/lzo1x_compress.c:238:14: warning: 'm_pos' may be used uninitialized in this function [-Wmaybe-uninitialized] m_off = ip - m_pos; ~~~^~~~~~~ vim +/m_pos +238 lib/lzo/lzo1x_compress.c 64c70b1c Richard Purdie 2007-07-10 19 64c70b1c Richard Purdie 2007-07-10 20 static noinline size_t 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 21 lzo1x_1_do_compress(const unsigned char *in, size_t in_len, 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 22 unsigned char *out, size_t *out_len, 26cf34ac Dave Rodgman 2018-11-29 23 size_t ti, void *wrkmem, signed char *state_offset) 64c70b1c Richard Purdie 2007-07-10 24 { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 25 const unsigned char *ip; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 26 unsigned char *op; 64c70b1c Richard Purdie 2007-07-10 27 const unsigned char * const in_end = in + in_len; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 28 const unsigned char * const ip_end = in + in_len - 20; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 29 const unsigned char *ii; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 30 lzo_dict_t * const dict = (lzo_dict_t *) wrkmem; 64c70b1c Richard Purdie 2007-07-10 31 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 32 op = out; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 33 ip = in; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 34 ii = ip; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 35 ip += ti < 4 ? 4 - ti : 0; 64c70b1c Richard Purdie 2007-07-10 36 64c70b1c Richard Purdie 2007-07-10 37 for (;;) { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 38 const unsigned char *m_pos; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 39 size_t t, m_len, m_off; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 40 u32 dv; 26cf34ac Dave Rodgman 2018-11-29 41 u32 run_length = 0; 64c70b1c Richard Purdie 2007-07-10 42 literal: 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 43 ip += 1 + ((ip - ii) >> 5); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 44 next: 64c70b1c Richard Purdie 2007-07-10 45 if (unlikely(ip >= ip_end)) 64c70b1c Richard Purdie 2007-07-10 46 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 47 dv = get_unaligned_le32(ip); 26cf34ac Dave Rodgman 2018-11-29 48 26cf34ac Dave Rodgman 2018-11-29 49 if (dv == 0) { 26cf34ac Dave Rodgman 2018-11-29 50 const unsigned char *ir = ip + 4; 26cf34ac Dave Rodgman 2018-11-29 51 const unsigned char *limit = ip_end 26cf34ac Dave Rodgman 2018-11-29 52 < (ip + MAX_ZERO_RUN_LENGTH + 1) 26cf34ac Dave Rodgman 2018-11-29 53 ? ip_end : ip + MAX_ZERO_RUN_LENGTH + 1; 26cf34ac Dave Rodgman 2018-11-29 54 #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) && \ 26cf34ac Dave Rodgman 2018-11-29 55 defined(LZO_FAST_64BIT_MEMORY_ACCESS) 26cf34ac Dave Rodgman 2018-11-29 56 u64 dv64; 26cf34ac Dave Rodgman 2018-11-29 57 26cf34ac Dave Rodgman 2018-11-29 58 for (; (ir + 32) <= limit; ir += 32) { 26cf34ac Dave Rodgman 2018-11-29 59 dv64 = get_unaligned((u64 *)ir); 26cf34ac Dave Rodgman 2018-11-29 60 dv64 |= get_unaligned((u64 *)ir + 1); 26cf34ac Dave Rodgman 2018-11-29 61 dv64 |= get_unaligned((u64 *)ir + 2); 26cf34ac Dave Rodgman 2018-11-29 62 dv64 |= get_unaligned((u64 *)ir + 3); 26cf34ac Dave Rodgman 2018-11-29 63 if (dv64) 26cf34ac Dave Rodgman 2018-11-29 64 break; 26cf34ac Dave Rodgman 2018-11-29 65 } 26cf34ac Dave Rodgman 2018-11-29 66 for (; (ir + 8) <= limit; ir += 8) { 26cf34ac Dave Rodgman 2018-11-29 67 dv64 = get_unaligned((u64 *)ir); 26cf34ac Dave Rodgman 2018-11-29 68 if (dv64) { 26cf34ac Dave Rodgman 2018-11-29 69 # if defined(__LITTLE_ENDIAN) 26cf34ac Dave Rodgman 2018-11-29 70 ir += __builtin_ctzll(dv64) >> 3; 26cf34ac Dave Rodgman 2018-11-29 71 # elif defined(__BIG_ENDIAN) 26cf34ac Dave Rodgman 2018-11-29 72 ir += __builtin_clzll(dv64) >> 3; 26cf34ac Dave Rodgman 2018-11-29 73 # else 26cf34ac Dave Rodgman 2018-11-29 74 # error "missing endian definition" 26cf34ac Dave Rodgman 2018-11-29 75 # endif 26cf34ac Dave Rodgman 2018-11-29 76 break; 26cf34ac Dave Rodgman 2018-11-29 77 } 26cf34ac Dave Rodgman 2018-11-29 78 } 26cf34ac Dave Rodgman 2018-11-29 79 #else 26cf34ac Dave Rodgman 2018-11-29 80 while ((ir < (const unsigned char *) 26cf34ac Dave Rodgman 2018-11-29 81 ALIGN((uintptr_t)ir, 4)) && 26cf34ac Dave Rodgman 2018-11-29 82 (ir < limit) && (*ir == 0)) 26cf34ac Dave Rodgman 2018-11-29 83 ir++; 26cf34ac Dave Rodgman 2018-11-29 84 for (; (ir + 4) <= limit; ir += 4) { 26cf34ac Dave Rodgman 2018-11-29 85 dv = *((u32 *)ir); 26cf34ac Dave Rodgman 2018-11-29 86 if (dv) { 26cf34ac Dave Rodgman 2018-11-29 87 # if defined(__LITTLE_ENDIAN) 26cf34ac Dave Rodgman 2018-11-29 88 ir += __builtin_ctz(dv) >> 3; 26cf34ac Dave Rodgman 2018-11-29 89 # elif defined(__BIG_ENDIAN) 26cf34ac Dave Rodgman 2018-11-29 90 ir += __builtin_clz(dv) >> 3; 26cf34ac Dave Rodgman 2018-11-29 91 # else 26cf34ac Dave Rodgman 2018-11-29 92 # error "missing endian definition" 26cf34ac Dave Rodgman 2018-11-29 93 # endif 26cf34ac Dave Rodgman 2018-11-29 94 break; 26cf34ac Dave Rodgman 2018-11-29 95 } 26cf34ac Dave Rodgman 2018-11-29 96 } 26cf34ac Dave Rodgman 2018-11-29 97 #endif 26cf34ac Dave Rodgman 2018-11-29 98 while (likely(ir < limit) && unlikely(*ir == 0)) 26cf34ac Dave Rodgman 2018-11-29 99 ir++; 26cf34ac Dave Rodgman 2018-11-29 100 run_length = ir - ip; 26cf34ac Dave Rodgman 2018-11-29 101 if (run_length > MAX_ZERO_RUN_LENGTH) 26cf34ac Dave Rodgman 2018-11-29 102 run_length = MAX_ZERO_RUN_LENGTH; 26cf34ac Dave Rodgman 2018-11-29 103 } else { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 104 t = ((dv * 0x1824429d) >> (32 - D_BITS)) & D_MASK; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 105 m_pos = in + dict[t]; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 106 dict[t] = (lzo_dict_t) (ip - in); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 107 if (unlikely(dv != get_unaligned_le32(m_pos))) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 108 goto literal; 26cf34ac Dave Rodgman 2018-11-29 109 } 64c70b1c Richard Purdie 2007-07-10 110 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 111 ii -= ti; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 112 ti = 0; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 113 t = ip - ii; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 114 if (t != 0) { 64c70b1c Richard Purdie 2007-07-10 115 if (t <= 3) { 26cf34ac Dave Rodgman 2018-11-29 116 op[*state_offset] |= t; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 117 COPY4(op, ii); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 118 op += t; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 119 } else if (t <= 16) { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 120 *op++ = (t - 3); 302e2c0e Matt Sealey 2018-11-29 121 COPY16(op, ii); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 122 op += t; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 123 } else { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 124 if (t <= 18) { 64c70b1c Richard Purdie 2007-07-10 125 *op++ = (t - 3); 64c70b1c Richard Purdie 2007-07-10 126 } else { 64c70b1c Richard Purdie 2007-07-10 127 size_t tt = t - 18; 64c70b1c Richard Purdie 2007-07-10 128 *op++ = 0; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 129 while (unlikely(tt > 255)) { 64c70b1c Richard Purdie 2007-07-10 130 tt -= 255; 64c70b1c Richard Purdie 2007-07-10 131 *op++ = 0; 64c70b1c Richard Purdie 2007-07-10 132 } 64c70b1c Richard Purdie 2007-07-10 133 *op++ = tt; 64c70b1c Richard Purdie 2007-07-10 134 } 64c70b1c Richard Purdie 2007-07-10 135 do { 302e2c0e Matt Sealey 2018-11-29 136 COPY16(op, ii); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 137 op += 16; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 138 ii += 16; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 139 t -= 16; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 140 } while (t >= 16); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 141 if (t > 0) do { 64c70b1c Richard Purdie 2007-07-10 142 *op++ = *ii++; 64c70b1c Richard Purdie 2007-07-10 143 } while (--t > 0); 64c70b1c Richard Purdie 2007-07-10 144 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 145 } 64c70b1c Richard Purdie 2007-07-10 146 26cf34ac Dave Rodgman 2018-11-29 147 if (unlikely(run_length)) { 26cf34ac Dave Rodgman 2018-11-29 148 ip += run_length; 26cf34ac Dave Rodgman 2018-11-29 149 run_length -= MIN_ZERO_RUN_LENGTH; 26cf34ac Dave Rodgman 2018-11-29 150 put_unaligned_le32((run_length << 21) | 0xfffc18 26cf34ac Dave Rodgman 2018-11-29 151 | (run_length & 0x7), op); 26cf34ac Dave Rodgman 2018-11-29 152 op += 4; 26cf34ac Dave Rodgman 2018-11-29 153 run_length = 0; 26cf34ac Dave Rodgman 2018-11-29 154 *state_offset = -3; 26cf34ac Dave Rodgman 2018-11-29 155 goto finished_writing_instruction; 26cf34ac Dave Rodgman 2018-11-29 156 } 26cf34ac Dave Rodgman 2018-11-29 157 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 158 m_len = 4; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 159 { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 160 #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) && defined(LZO_USE_CTZ64) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 161 u64 v; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 162 v = get_unaligned((const u64 *) (ip + m_len)) ^ 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 163 get_unaligned((const u64 *) (m_pos + m_len)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 164 if (unlikely(v == 0)) { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 165 do { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 166 m_len += 8; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 167 v = get_unaligned((const u64 *) (ip + m_len)) ^ 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 168 get_unaligned((const u64 *) (m_pos + m_len)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 169 if (unlikely(ip + m_len >= ip_end)) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 170 goto m_len_done; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 171 } while (v == 0); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 172 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 173 # if defined(__LITTLE_ENDIAN) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 174 m_len += (unsigned) __builtin_ctzll(v) / 8; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 175 # elif defined(__BIG_ENDIAN) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 176 m_len += (unsigned) __builtin_clzll(v) / 8; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 177 # else 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 178 # error "missing endian definition" 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 179 # endif 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 180 #elif defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) && defined(LZO_USE_CTZ32) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 181 u32 v; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 182 v = get_unaligned((const u32 *) (ip + m_len)) ^ 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 183 get_unaligned((const u32 *) (m_pos + m_len)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 184 if (unlikely(v == 0)) { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 185 do { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 186 m_len += 4; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 187 v = get_unaligned((const u32 *) (ip + m_len)) ^ 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 188 get_unaligned((const u32 *) (m_pos + m_len)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 189 if (v != 0) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 190 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 191 m_len += 4; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 192 v = get_unaligned((const u32 *) (ip + m_len)) ^ 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 193 get_unaligned((const u32 *) (m_pos + m_len)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 194 if (unlikely(ip + m_len >= ip_end)) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 195 goto m_len_done; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 196 } while (v == 0); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 197 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 198 # if defined(__LITTLE_ENDIAN) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 199 m_len += (unsigned) __builtin_ctz(v) / 8; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 200 # elif defined(__BIG_ENDIAN) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 201 m_len += (unsigned) __builtin_clz(v) / 8; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 202 # else 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 203 # error "missing endian definition" 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 204 # endif 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 205 #else 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 206 if (unlikely(ip[m_len] == m_pos[m_len])) { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 207 do { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 208 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 209 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 210 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 211 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 212 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 213 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 214 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 215 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 216 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 217 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 218 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 219 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 220 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 221 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 222 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 223 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 224 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 225 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 226 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 227 if (ip[m_len] != m_pos[m_len]) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 228 break; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 229 m_len += 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 230 if (unlikely(ip + m_len >= ip_end)) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 231 goto m_len_done; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 232 } while (ip[m_len] == m_pos[m_len]); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 233 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 234 #endif 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 235 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 236 m_len_done: 64c70b1c Richard Purdie 2007-07-10 237 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 @238 m_off = ip - m_pos; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 239 ip += m_len; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 240 if (m_len <= M2_MAX_LEN && m_off <= M2_MAX_OFFSET) { 64c70b1c Richard Purdie 2007-07-10 241 m_off -= 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 242 *op++ = (((m_len - 1) << 5) | ((m_off & 7) << 2)); 64c70b1c Richard Purdie 2007-07-10 243 *op++ = (m_off >> 3); 64c70b1c Richard Purdie 2007-07-10 244 } else if (m_off <= M3_MAX_OFFSET) { 64c70b1c Richard Purdie 2007-07-10 245 m_off -= 1; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 246 if (m_len <= M3_MAX_LEN) 64c70b1c Richard Purdie 2007-07-10 247 *op++ = (M3_MARKER | (m_len - 2)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 248 else { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 249 m_len -= M3_MAX_LEN; 64c70b1c Richard Purdie 2007-07-10 250 *op++ = M3_MARKER | 0; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 251 while (unlikely(m_len > 255)) { 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 252 m_len -= 255; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 253 *op++ = 0; 64c70b1c Richard Purdie 2007-07-10 254 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 255 *op++ = (m_len); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 256 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 257 *op++ = (m_off << 2); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 258 *op++ = (m_off >> 6); 64c70b1c Richard Purdie 2007-07-10 259 } else { 64c70b1c Richard Purdie 2007-07-10 260 m_off -= 0x4000; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 261 if (m_len <= M4_MAX_LEN) 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 262 *op++ = (M4_MARKER | ((m_off >> 11) & 8) 64c70b1c Richard Purdie 2007-07-10 263 | (m_len - 2)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 264 else { 64c70b1c Richard Purdie 2007-07-10 265 m_len -= M4_MAX_LEN; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 266 *op++ = (M4_MARKER | ((m_off >> 11) & 8)); 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 267 while (unlikely(m_len > 255)) { 64c70b1c Richard Purdie 2007-07-10 268 m_len -= 255; 64c70b1c Richard Purdie 2007-07-10 269 *op++ = 0; 64c70b1c Richard Purdie 2007-07-10 270 } 64c70b1c Richard Purdie 2007-07-10 271 *op++ = (m_len); 64c70b1c Richard Purdie 2007-07-10 272 } 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 273 *op++ = (m_off << 2); 64c70b1c Richard Purdie 2007-07-10 274 *op++ = (m_off >> 6); 64c70b1c Richard Purdie 2007-07-10 275 } 26cf34ac Dave Rodgman 2018-11-29 276 *state_offset = -2; 26cf34ac Dave Rodgman 2018-11-29 277 finished_writing_instruction: 26cf34ac Dave Rodgman 2018-11-29 278 ii = ip; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 279 goto next; 64c70b1c Richard Purdie 2007-07-10 280 } 64c70b1c Richard Purdie 2007-07-10 281 *out_len = op - out; 8b975bd3 Markus F.X.J. Oberhumer 2012-08-13 282 return in_end - (ii - ti); 64c70b1c Richard Purdie 2007-07-10 283 } 64c70b1c Richard Purdie 2007-07-10 284 :::::: The code at line 238 was first introduced by commit :::::: 8b975bd3f9089f8ee5d7bbfd798537b992bbc7e7 lib/lzo: Update LZO compression to current upstream version :::::: TO: Markus F.X.J. Oberhumer <markus@xxxxxxxxxxxxx> :::::: CC: Markus F.X.J. Oberhumer <markus@xxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip