A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/pcre2__jit__neon__inc_8h_source.html below:

NCBI C++ ToolKit: src/util/regexp/pcre2_jit_neon_inc.h Source File

44 # define FF_FUN ffcs_utf 49 # elif defined(FFCS_2) 51 # define FF_FUN ffcs_2_utf 53 # define FF_FUN ffcs_2 56 # elif defined(FFCS_MASK) 58 # define FF_FUN ffcs_mask_utf 60 # define FF_FUN ffcs_mask 63 # elif defined(FFCPS_0) 65 # define FF_FUN ffcps_0_utf 67 # define FF_FUN ffcps_0 70 # elif defined (FFCPS_1) 72 # define FF_FUN ffcps_1_utf 74 # define FF_FUN ffcps_1 77 # elif defined (FFCPS_DEFAULT) 79 # define FF_FUN ffcps_default_utf 81 # define FF_FUN ffcps_default 85 #if (defined(__GNUC__) && __SANITIZE_ADDRESS__) \ 86  || (defined(__clang__) \ 87  && ((__clang_major__ == 3 && __clang_minor__ >= 3) || (__clang_major__ > 3))) 88

__attribute__((no_sanitize_address))

103

vect_t vc1 = VDUPQ(c1);

105 #elif defined(FFCS_2) 107

vect_t vc1 = VDUPQ(c1);

109

vect_t vc2 = VDUPQ(c2);

111 #elif defined(FFCS_MASK) 113

vect_t vc1 = VDUPQ(c1);

115

vect_t vmask = VDUPQ(

mask

);

119

compare_type compare1_type = compare_match1;

120

compare_type compare2_type = compare_match1;

121

vect_t cmp1a, cmp1b, cmp2a, cmp2b;

122 const sljit_u32

diff = IN_UCHARS(offs1 - offs2);

126 # ifdef FFCPS_CHAR1A2A 127

cmp1a = VDUPQ(char1a);

128

cmp2a = VDUPQ(char2a);

134 if

(char1a == char1b)

136

cmp1a = VDUPQ(char1a);

142  if

(is_powerof2(bit1))

144

compare1_type = compare_match1i;

145

cmp1a = VDUPQ(char1a | bit1);

150

compare1_type = compare_match2;

151

cmp1a = VDUPQ(char1a);

152

cmp1b = VDUPQ(char1b);

156 if

(char2a == char2b)

158

cmp2a = VDUPQ(char2a);

164  if

(is_powerof2(bit2))

166

compare2_type = compare_match1i;

167

cmp2a = VDUPQ(char2a | bit2);

172

compare2_type = compare_match2;

173

cmp2a = VDUPQ(char2a);

174

cmp2b = VDUPQ(char2b);

179

*str_ptr += IN_UCHARS(offs1);

182 #if PCRE2_CODE_UNIT_WIDTH != 8 183

vect_t char_mask = VDUPQ(0xff);

191 if

(*str_ptr >= str_end)

197

vect_t

data

= VLD1Q(*str_ptr);

198 #if PCRE2_CODE_UNIT_WIDTH != 8 203

vect_t

eq

= VCEQQ(

data

, vc1);

205 #elif defined(FFCS_2) 206

vect_t eq1 = VCEQQ(

data

, vc1);

207

vect_t eq2 = VCEQQ(

data

, vc2);

208

vect_t

eq

= VORRQ(eq1, eq2);

210 #elif defined(FFCS_MASK) 211

vect_t

eq

= VORRQ(

data

, vmask);

212 eq

= VCEQQ(

eq

, vc1);

215 # if defined(FFCPS_DIFF1) 216

vect_t prev_data =

data

;

222

data2 = VLD1Q(*str_ptr - diff);

223 #if PCRE2_CODE_UNIT_WIDTH != 8 224

data2 = VANDQ(data2, char_mask);

228

data2 = shift_left_n_lanes(

data

, offs1 - offs2);

230 if

(compare1_type == compare_match1)

233  data

= fast_forward_char_pair_compare(compare1_type,

data

, cmp1a, cmp1b);

235 if

(compare2_type == compare_match1)

236

data2 = VCEQQ(data2, cmp2a);

238

data2 = fast_forward_char_pair_compare(compare2_type, data2, cmp2a, cmp2b);

240

vect_t

eq

= VANDQ(

data

, data2);

245 if

(align_offset < 8)

247

qw.dw[0] >>= align_offset * 8;

250

*str_ptr += align_offset + __builtin_ctzll(qw.dw[0]) / 8;

255

*str_ptr += 8 + __builtin_ctzll(qw.dw[1]) / 8;

261

qw.dw[1] >>= (align_offset - 8) * 8;

264

*str_ptr += align_offset + __builtin_ctzll(qw.dw[1]) / 8;

270 while

(*str_ptr < str_end)

272

vect_t orig_data = VLD1Q(*str_ptr);

273 #if PCRE2_CODE_UNIT_WIDTH != 8 274

orig_data = VANDQ(orig_data, char_mask);

281 #elif defined(FFCS_2) 282

eq1 = VCEQQ(

data

, vc1);

283

eq2 = VCEQQ(

data

, vc2);

284  eq

= VORRQ(eq1, eq2);

286 #elif defined(FFCS_MASK) 287  eq

= VORRQ(

data

, vmask);

288  eq

= VCEQQ(

eq

, vc1);

292 # if defined (FFCPS_DIFF1) 293

data2 = VEXTQ(prev_data,

data

, VECTOR_FACTOR - 1);

295

data2 = VLD1Q(*str_ptr - diff);

296 # if PCRE2_CODE_UNIT_WIDTH != 8 297

data2 = VANDQ(data2, char_mask);

301 # ifdef FFCPS_CHAR1A2A 303

data2 = VCEQQ(data2, cmp2a);

305  if

(compare1_type == compare_match1)

308  data

= fast_forward_char_pair_compare(compare1_type,

data

, cmp1a, cmp1b);

309  if

(compare2_type == compare_match1)

310

data2 = VCEQQ(data2, cmp2a);

312

data2 = fast_forward_char_pair_compare(compare2_type, data2, cmp2a, cmp2b);

315  eq

= VANDQ(

data

, data2);

320

*str_ptr += __builtin_ctzll(qw.dw[0]) / 8;

322

*str_ptr += 8 + __builtin_ctzll(qw.dw[1]) / 8;

325 #if defined (FFCPS_DIFF1) 326

prev_data = orig_data;

332  if

(*str_ptr >= str_end)

337  if

(utf_continue((

PCRE2_SPTR

)*str_ptr - offs1))

340

*str_ptr += IN_UCHARS(1);

347

*str_ptr -= IN_UCHARS(offs1);

ncbi::TMaskedQueryRegions mask

static const BitmapCharRec *const chars[]

bool eq(T x_, T y_, T round_)

static sljit_u8 *SLJIT_FUNC FF_FUN(sljit_u8 *str_end, sljit_u8 **str_ptr, sljit_uw offs1, sljit_uw offs2, sljit_uw chars)

static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)

#define SLJIT_UNUSED_ARG(arg)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4