source: proto/parabix2/src/carryq/xmlwf_cq.c @ 1496

Last change on this file since 1496 was 535, checked in by ksherdy, 9 years ago

Add carry queue hand optimized implementation.

File size: 57.7 KB
Line 
1#include <stdio.h>
2#include <stdlib.h>
3#include <errno.h>
4#include <sys/types.h>
5#include <sys/stat.h>
6#include "../../lib/lib_simd.h"
7#include "../../lib/block_carry.h"
8
9typedef SIMD_type BytePack;
10typedef SIMD_type BitBlock;
11
12#include "../xmldecl.h"
13#include "../xml_error.c"
14#include "../xmldecl.c"
15
16#include "../../lib/perflib/perfsec.h"
17
18#ifdef BUFFER_PROFILING
19        BOM_Table * parser_timer;
20
21#elif CODE_CLOCKER
22        #define NUM_EVENTS 1
23        int Events[NUM_EVENTS] = {PAPI_TOT_CYC};
24        //int Events[NUM_EVENTS] = {PAPI_L2_DCM};
25        //int Events[NUM_EVENTS] = {PAPI_TOT_CYC, PAPI_BR_MSP};
26        int cal_size = 20;
27        CC * parser_timer = new CC(Events,NUM_EVENTS,cal_size);
28#else
29        void * parser_timer;
30#endif
31
32#define s2p_step(s0,s1,hi_mask,shift,p0,p1)  \
33{ \
34BitBlock t0,t1; \
35t0= simd_pack_16_hh(s0,s1) ; \
36t1= simd_pack_16_ll(s0,s1) ; \
37p0= simd_if(hi_mask,t0,simd_srli_16(t1,shift) ) ; \
38p1= simd_if(hi_mask,simd_slli_16(t0,shift) ,t1) ; \
39} \
40
41#define s2p_bytepack(s0,s1,s2,s3,s4,s5,s6,s7,p0,p1,p2,p3,p4,p5,p6,p7)  \
42{BitBlock bit00224466_0,bit00224466_1,bit00224466_2,bit00224466_3; \
43BitBlock bit11335577_0,bit11335577_1,bit11335577_2,bit11335577_3; \
44BitBlock bit00004444_0,bit22226666_0,bit00004444_1,bit22226666_1; \
45BitBlock bit11115555_0,bit33337777_0,bit11115555_1,bit33337777_1; \
46s2p_step(s0,s1,simd_himask_2,1,bit00224466_0,bit11335577_0)  \
47s2p_step(s2,s3,simd_himask_2,1,bit00224466_1,bit11335577_1)  \
48s2p_step(s4,s5,simd_himask_2,1,bit00224466_2,bit11335577_2)  \
49s2p_step(s6,s7,simd_himask_2,1,bit00224466_3,bit11335577_3)  \
50s2p_step(bit00224466_0,bit00224466_1,simd_himask_4,2,bit00004444_0,bit22226666_0)  \
51s2p_step(bit00224466_2,bit00224466_3,simd_himask_4,2,bit00004444_1,bit22226666_1)  \
52s2p_step(bit11335577_0,bit11335577_1,simd_himask_4,2,bit11115555_0,bit33337777_0)  \
53s2p_step(bit11335577_2,bit11335577_3,simd_himask_4,2,bit11115555_1,bit33337777_1)  \
54s2p_step(bit00004444_0,bit00004444_1,simd_himask_8,4,p0,p4)  \
55s2p_step(bit11115555_0,bit11115555_1,simd_himask_8,4,p1,p5)  \
56s2p_step(bit22226666_0,bit22226666_1,simd_himask_8,4,p2,p6)  \
57s2p_step(bit33337777_0,bit33337777_1,simd_himask_8,4,p3,p7)  \
58} \
59
60#define p2s_step(p0,p1,hi_mask,shift,s0,s1)  \
61{ \
62BitBlock t0,t1; \
63t0= simd_if(hi_mask,p0,simd_srli_16(p1,shift) ) ; \
64t1= simd_if(hi_mask,simd_slli_16(p0,shift) ,p1) ; \
65s0= simd_mergeh_8(t0,t1) ; \
66s1= simd_mergel_8(t0,t1) ; \
67} \
68
69#define p2s_bytemerge(p0,p1,p2,p3,p4,p5,p6,p7,s0,s1,s2,s3,s4,s5,s6,s7)  \
70{ \
71BitBlock bit00004444_0,bit22226666_0,bit00004444_1,bit22226666_1; \
72BitBlock bit11115555_0,bit33337777_0,bit11115555_1,bit33337777_1; \
73BitBlock bit00224466_0,bit00224466_1,bit00224466_2,bit00224466_3; \
74BitBlock bit11335577_0,bit11335577_1,bit11335577_2,bit11335577_3; \
75p2s_step(p0,p4,simd_himask_8,4,bit00004444_0,bit00004444_1)  \
76p2s_step(p1,p5,simd_himask_8,4,bit11115555_0,bit11115555_1)  \
77p2s_step(p2,p6,simd_himask_8,4,bit22226666_0,bit22226666_1)  \
78p2s_step(p3,p7,simd_himask_8,4,bit33337777_0,bit33337777_1)  \
79p2s_step(bit00004444_0,bit22226666_0,simd_himask_4,2,bit00224466_0,bit00224466_1)  \
80p2s_step(bit11115555_0,bit33337777_0,simd_himask_4,2,bit11335577_0,bit11335577_1)  \
81p2s_step(bit00004444_1,bit22226666_1,simd_himask_4,2,bit00224466_2,bit00224466_3)  \
82p2s_step(bit11115555_1,bit33337777_1,simd_himask_4,2,bit11335577_2,bit11335577_3)  \
83p2s_step(bit00224466_0,bit11335577_0,simd_himask_2,1,s0,s1)  \
84p2s_step(bit00224466_1,bit11335577_1,simd_himask_2,1,s2,s3)  \
85p2s_step(bit00224466_2,bit11335577_2,simd_himask_2,1,s4,s5)  \
86p2s_step(bit00224466_3,bit11335577_3,simd_himask_2,1,s6,s7)  \
87} \
88
89       
90#define BUFFER_SIZE 12800   
91#define BLOCK_SIZE 128
92
93void do_process(FILE *infile, FILE *outfile) {
94
95  BitBlock strct_refs__GenRefs_;
96BitBlock strct_lex__SQuote_;
97BitBlock _strct_byteclass__classify_bytes__strct_lex__QMark_;
98BitBlock Temp180;
99BitBlock Temp181;
100BitBlock Temp182;
101BitBlock Temp183;
102BitBlock Temp184;
103BitBlock Temp185;
104BitBlock Temp186;
105BitBlock Temp187;
106BitBlock Temp188;
107BitBlock Temp189;
108BitBlock strct_lex__WS_;
109BitBlock _strct_byteclass__classify_bytes__strct_u8__xF4_scope_;
110BitBlock _strct_byteclass__classify_bytes__strct_lex__SQuote_;
111BitBlock array_bit__2_;
112BitBlock strct_lex__PI_end_;
113BitBlock _parse_refs_NumRef2;
114BitBlock strct_lex__NameScan_;
115BitBlock PI_Cursor;
116BitBlock _strct_byteclass__classify_bytes__temp58;
117BitBlock EOF_mask = simd_const_1(1);
118BitBlock ParseError;
119BitBlock _strct_byteclass__classify_bytes__strct_lex__ASCII_name_char_;
120BitBlock _strct_byteclass__classify_bytes__temp38;
121BitBlock _strct_byteclass__classify_bytes__temp15;
122BitBlock _strct_byteclass__classify_bytes__temp14;
123BitBlock _strct_byteclass__classify_bytes__temp17;
124BitBlock _strct_byteclass__classify_bytes__temp16;
125BitBlock _strct_byteclass__classify_bytes__temp11;
126BitBlock _strct_byteclass__classify_bytes__temp10;
127BitBlock _strct_byteclass__classify_bytes__temp13;
128BitBlock _strct_byteclass__classify_bytes__temp12;
129BitBlock _strct_byteclass__classify_bytes__strct_lex__Semicolon_;
130BitBlock _validate_xmlchar_ret;
131BitBlock _strct_byteclass__classify_bytes__temp19;
132BitBlock _strct_byteclass__classify_bytes__temp18;
133BitBlock _strct_byteclass__classify_bytes__temp51;
134BitBlock strct_lex__QMark_scope_;
135BitBlock Temp139;
136BitBlock AttListDelim;
137BitBlock _strct_byteclass__classify_bytes__strct_lex__Hyphen_scope_;
138BitBlock _strct_byteclass__classify_bytes__strct_u8__suffix_;
139BitBlock _strct_byteclass__classify_bytes__temp55;
140BitBlock _strct_byteclass__classify_bytes__strct_lex__Hyphen_;
141BitBlock _validate_no_CD_end_ret;
142BitBlock error_mask;
143BitBlock strct_lex__RBracket_;
144BitBlock EndTagSeconds;
145BitBlock _parse_refs_HexRef3;
146BitBlock _parse_refs_HexRef4;
147BitBlock _strct_byteclass__classify_bytes__temp2;
148BitBlock _strct_byteclass__classify_bytes__strct_lex__DQuote_;
149BitBlock _parse_refs_Error_10;
150BitBlock _parse_refs_Error_11;
151BitBlock _strct_byteclass__classify_bytes__strct_control__CR_;
152BitBlock strct_CT_callouts__PI_name_;
153BitBlock _strct_byteclass__classify_bytes__temp60;
154BitBlock _strct_byteclass__classify_bytes__temp61;
155BitBlock _strct_byteclass__classify_bytes__temp62;
156BitBlock _strct_byteclass__classify_bytes__temp63;
157BitBlock _strct_byteclass__classify_bytes__temp64;
158BitBlock _strct_byteclass__classify_bytes__temp65;
159BitBlock _strct_byteclass__classify_bytes__temp66;
160BitBlock _strct_byteclass__classify_bytes__temp67;
161BitBlock _strct_byteclass__classify_bytes__temp68;
162BitBlock _strct_byteclass__classify_bytes__temp69;
163BitBlock AttNameStarts;
164BitBlock array_bit__0_;
165BitBlock strct_lex__RefStart_;
166BitBlock Temp145;
167BitBlock Temp147;
168BitBlock Temp141;
169BitBlock _strct_byteclass__classify_bytes__strct_lex__Hash_;
170BitBlock ParseError_4;
171BitBlock ParseError_5;
172BitBlock ParseError_6;
173BitBlock ParseError_7;
174BitBlock ParseError_0;
175BitBlock _strct_byteclass__classify_bytes__strct_u8__xBF_;
176BitBlock ParseError_2;
177BitBlock ParseError_1;
178BitBlock DQuoteAttEnd;
179BitBlock _strct_u8u16__validate_utf8__error_mask_14;
180BitBlock _strct_u8u16__validate_utf8__error_mask_15;
181BitBlock _strct_u8u16__validate_utf8__error_mask_16;
182BitBlock ParseError_3;
183BitBlock _strct_byteclass__classify_bytes__strct_u8__x80_x8F_;
184BitBlock _strct_byteclass__classify_bytes__strct_u8__prefix_;
185BitBlock _strct_u8u16__validate_utf8__error_mask_13;
186BitBlock AllZero = simd_const_1(0);
187BitBlock Temp28;
188BitBlock nmtoken_stream;
189BitBlock Temp20;
190BitBlock Temp21;
191BitBlock strct_control__LF_;
192BitBlock _strct_byteclass__classify_bytes__strct_lex__RBracket_scope_;
193BitBlock _strct_byteclass__classify_bytes__strct_lex__Hex_;
194BitBlock _strct_byteclass__classify_bytes__strct_lex__LAngle_;
195BitBlock strct_callouts__error_;
196BitBlock CD_ends;
197BitBlock strct_CT_callouts__CtCDPI_mask_;
198BitBlock AfterWS;
199BitBlock _strct_byteclass__classify_bytes__strct_lex__LAngle_scope_;
200BitBlock AttValEnds;
201BitBlock _parse_refs_DecRefEnds;
202BitBlock Ct_starts;
203BitBlock strct_lex__Hyphen_;
204BitBlock _strct_byteclass__classify_bytes__strct_lex__RefStart_;
205BitBlock _strct_byteclass__classify_bytes__strct_u8__badprefix_;
206BitBlock strct_lex__LAngle_scope_;
207BitBlock _strct_byteclass__classify_bytes__temp46;
208BitBlock _strct_byteclass__classify_bytes__temp47;
209BitBlock _strct_byteclass__classify_bytes__temp44;
210BitBlock _strct_byteclass__classify_bytes__strct_u8__scope42_;
211BitBlock _strct_byteclass__classify_bytes__temp42;
212BitBlock _strct_byteclass__classify_bytes__temp43;
213BitBlock _strct_byteclass__classify_bytes__temp40;
214BitBlock _strct_byteclass__classify_bytes__temp41;
215BitBlock _strct_byteclass__classify_bytes__temp54;
216BitBlock _strct_u8u16__validate_utf8__error_mask;
217BitBlock _strct_byteclass__classify_bytes__temp48;
218BitBlock _strct_byteclass__classify_bytes__temp49;
219BitBlock qname_stream;
220BitBlock Temp168;
221BitBlock Temp169;
222BitBlock CtCDPI_scan;
223BitBlock array_bit__7_;
224BitBlock strct_lex__RefStart_scope_;
225BitBlock Temp97;
226BitBlock CD_end_scan;
227BitBlock Temp13;
228BitBlock name_start_check;
229BitBlock _parse_refs_NumRef3;
230BitBlock strct_lex__Colon_;
231BitBlock strct_lex__Equals_;
232BitBlock Temp99;
233BitBlock Temp98;
234BitBlock strct_lex__CD_end_;
235BitBlock Temp92;
236BitBlock strct_lex__Hyphen_scope_;
237BitBlock Temp96;
238BitBlock strct_callouts__EmptyTagMarks_;
239BitBlock strct_CT_callouts__error_;
240BitBlock _strct_byteclass__classify_bytes__strct_lex__ASCII_name_start_;
241BitBlock _strct_byteclass__classify_bytes__temp28;
242BitBlock _strct_byteclass__classify_bytes__temp29;
243BitBlock _strct_byteclass__classify_bytes__temp24;
244BitBlock _strct_byteclass__classify_bytes__temp25;
245BitBlock _strct_byteclass__classify_bytes__temp26;
246BitBlock _strct_byteclass__classify_bytes__temp27;
247BitBlock _strct_byteclass__classify_bytes__temp20;
248BitBlock _strct_byteclass__classify_bytes__temp21;
249BitBlock _strct_byteclass__classify_bytes__temp22;
250BitBlock _strct_byteclass__classify_bytes__temp23;
251BitBlock Temp108;
252BitBlock Temp109;
253BitBlock _strct_byteclass__classify_bytes__strct_lex__QMark_scope_;
254BitBlock Temp100;
255BitBlock Temp101;
256BitBlock Temp102;
257BitBlock Temp103;
258BitBlock array_bit__5_;
259BitBlock _strct_byteclass__classify_bytes__strct_u8__x80_x9F_;
260BitBlock Temp106;
261BitBlock Temp107;
262BitBlock _strct_byteclass__classify_bytes__strct_u8__scope33_;
263BitBlock _strct_byteclass__classify_bytes__strct_control__SP_;
264BitBlock CD_Ct_Cursor;
265BitBlock AllOne = simd_const_1(1);
266BitBlock Temp193;
267BitBlock Temp192;
268BitBlock Temp191;
269BitBlock Temp190;
270BitBlock _strct_byteclass__classify_bytes__strct_u8__scope22_;
271BitBlock strct_lex__x_;
272BitBlock Temp194;
273BitBlock _strct_byteclass__classify_bytes__strct_u8__prefix2_;
274BitBlock DQuoteAttVal;
275BitBlock Temp105;
276BitBlock _strct_byteclass__classify_bytes__strct_lex__Slash_;
277BitBlock SQuoteAttVal;
278BitBlock _parse_refs_GenRefEnds;
279BitBlock strct_lex__LAngle_;
280BitBlock ElemNameFollows;
281BitBlock _strct_byteclass__classify_bytes__strct_control__x00_x1F_;
282BitBlock strct_callouts__AttNames_;
283BitBlock strct_lex__EndTag_start_;
284BitBlock _strct_byteclass__classify_bytes__temp9;
285BitBlock _strct_byteclass__classify_bytes__temp8;
286BitBlock strct_lex__PI_start_;
287BitBlock _strct_byteclass__classify_bytes__temp1;
288BitBlock PI_name_end;
289BitBlock _strct_byteclass__classify_bytes__temp3;
290BitBlock strct_lex__Hash_;
291BitBlock _strct_byteclass__classify_bytes__temp5;
292BitBlock _strct_byteclass__classify_bytes__temp4;
293BitBlock _strct_byteclass__classify_bytes__temp7;
294BitBlock _strct_byteclass__classify_bytes__temp6;
295BitBlock strct_control__CR_;
296BitBlock Temp74;
297BitBlock Temp77;
298BitBlock delmask;
299BitBlock ncname_stream;
300BitBlock Ct_Cursor;
301BitBlock _strct_byteclass__classify_bytes__strct_lex__Colon_;
302BitBlock Temp79;
303BitBlock name_check;
304BitBlock _strct_byteclass__classify_bytes__strct_u8__xBE_;
305BitBlock array_bit__4_;
306BitBlock Temp178;
307BitBlock _strct_byteclass__classify_bytes__xE0;
308BitBlock _parse_refs_strct_CallOuts__GenRefs_;
309BitBlock _strct_byteclass__classify_bytes__strct_u8__xA0_xBF_;
310BitBlock strct_lex__Hex_;
311BitBlock _strct_byteclass__classify_bytes__xEF;
312BitBlock _strct_byteclass__classify_bytes__xED;
313BitBlock _strct_byteclass__classify_bytes__xF4;
314BitBlock _strct_byteclass__classify_bytes__strct_u8__scope32_;
315BitBlock AttListEnd;
316BitBlock _strct_byteclass__classify_bytes__strct_lex__LBracket_;
317BitBlock strct_lex__RBracket_scope_;
318BitBlock _strct_byteclass__classify_bytes__xF0;
319BitBlock strct_lex__DoubleHyphen_;
320BitBlock PI_ends;
321BitBlock array_bit__3_;
322BitBlock _validate_xmlchar_EF_BF_pending;
323BitBlock _strct_byteclass__classify_bytes__strct_u8__scope44_;
324BitBlock CtCDPI_Cursor_18;
325BitBlock Temp72;
326BitBlock LAngleFollow;
327BitBlock strct_lex__RAngle_;
328BitBlock strct_lex__CtCD_start_;
329BitBlock Temp159;
330BitBlock strct_lex__Exclam_;
331BitBlock _strct_u8u16__validate_utf8__u8lastscope;
332BitBlock PI_name_ends;
333BitBlock strct_CT_callouts__error__8;
334BitBlock EqToCheck;
335BitBlock Temp54;
336BitBlock Temp68;
337BitBlock Temp52;
338BitBlock _parse_refs_Ref2;
339BitBlock Temp121;
340BitBlock Temp127;
341BitBlock _strct_byteclass__classify_bytes__strct_lex__WS_;
342BitBlock Temp129;
343BitBlock strct_lex__QMark_;
344BitBlock Temp104;
345BitBlock strct_callouts__Tags_;
346BitBlock name_stream;
347BitBlock strct_lex__Slash_;
348BitBlock strct_control__x00_x1F_;
349BitBlock SQuoteAttEnd;
350BitBlock _parse_refs_DecRef3;
351BitBlock _strct_byteclass__classify_bytes__strct_u8__x90_xBF_;
352BitBlock _strct_byteclass__classify_bytes__temp73;
353BitBlock _strct_byteclass__classify_bytes__temp72;
354BitBlock _strct_byteclass__classify_bytes__temp71;
355BitBlock _strct_byteclass__classify_bytes__temp70;
356BitBlock CD_Cursor;
357BitBlock array_bit__1_;
358BitBlock Temp171;
359BitBlock Temp170;
360BitBlock Temp173;
361BitBlock Temp172;
362BitBlock Temp175;
363BitBlock Temp174;
364BitBlock Temp177;
365BitBlock Temp176;
366BitBlock Temp179;
367BitBlock array_bit__6_;
368BitBlock ElemNamePositions;
369BitBlock _strct_byteclass__classify_bytes__strct_lex__NameScan_;
370BitBlock Temp39;
371BitBlock Temp31;
372BitBlock _strct_byteclass__classify_bytes__strct_u8__xED_scope_;
373BitBlock _strct_byteclass__classify_bytes__strct_lex__RBracket_;
374BitBlock _parse_refs_HexRefEnds;
375BitBlock Temp36;
376BitBlock _parse_refs_Error;
377BitBlock _strct_byteclass__classify_bytes__strct_u8__xF0_scope_;
378BitBlock CtCDPI_Cursor_17;
379BitBlock _strct_byteclass__classify_bytes__strct_lex__Equals_;
380BitBlock strct_refs__delmask_;
381BitBlock AttNameStart;
382BitBlock Temp88;
383BitBlock strct_control__CR_scope_;
384BitBlock _strct_byteclass__classify_bytes__temp45;
385BitBlock CtCDPI_Cursor;
386BitBlock _strct_u8u16__validate_utf8__u8anyscope;
387BitBlock _strct_byteclass__classify_bytes__strct_lex__RAngle_;
388BitBlock AttValStarts;
389BitBlock CtCDPI_starts;
390BitBlock PI_end_scan;
391BitBlock _strct_byteclass__classify_bytes__temp59;
392BitBlock AttValFollows;
393BitBlock Temp195;
394BitBlock AttNameFollows;
395BitBlock _strct_byteclass__classify_bytes__temp50;
396BitBlock _strct_byteclass__classify_bytes__temp53;
397BitBlock _strct_byteclass__classify_bytes__temp52;
398BitBlock AttValEnd;
399BitBlock strct_CT_callouts__error__9;
400BitBlock _strct_byteclass__classify_bytes__temp57;
401BitBlock _strct_byteclass__classify_bytes__temp56;
402BitBlock EqExpected;
403BitBlock strct_callouts__ElemNames_;
404BitBlock _strct_byteclass__classify_bytes__strct_u8__prefix4_;
405BitBlock strct_control__SP_;
406BitBlock Ct_end_scan;
407BitBlock strct_lex__LBracket_;
408BitBlock AttValPos;
409BitBlock strct_lex__Semicolon_;
410BitBlock Temp110;
411BitBlock SQuoteScan;
412BitBlock Temp115;
413BitBlock strct_refs__error_;
414BitBlock Temp12;
415BitBlock Temp11;
416BitBlock Temp10;
417BitBlock Temp17;
418BitBlock Temp16;
419BitBlock Temp15;
420BitBlock Temp14;
421BitBlock Ct_ends;
422BitBlock Temp19;
423BitBlock Temp18;
424BitBlock strct_lex__ASCII_name_char_;
425BitBlock _strct_byteclass__classify_bytes__strct_u8__xE0_scope_;
426BitBlock Temp3;
427BitBlock _strct_byteclass__classify_bytes__strct_lex__RefStart_scope_;
428BitBlock Temp2;
429BitBlock _strct_byteclass__classify_bytes__strct_u8__prefix3_;
430BitBlock strct_control__CRLF_;
431BitBlock _strct_byteclass__classify_bytes__strct_u8__xEF_scope_;
432BitBlock strct_lex__ASCII_name_start_;
433BitBlock strct_control__HT_;
434BitBlock EndTagEnds;
435BitBlock Temp164;
436BitBlock _parse_refs_GenRef2;
437BitBlock Temp5;
438BitBlock strct_lex__DQuote_;
439BitBlock AttNameFollow;
440BitBlock name_start;
441BitBlock _strct_byteclass__classify_bytes__strct_lex__x_;
442BitBlock Temp64;
443BitBlock _strct_byteclass__classify_bytes__strct_lex__Exclam_;
444BitBlock _strct_byteclass__classify_bytes__temp39;
445BitBlock Temp61;
446BitBlock _strct_byteclass__classify_bytes__temp37;
447BitBlock _strct_byteclass__classify_bytes__temp36;
448BitBlock _strct_byteclass__classify_bytes__temp35;
449BitBlock _strct_byteclass__classify_bytes__temp34;
450BitBlock _strct_byteclass__classify_bytes__temp33;
451BitBlock _strct_byteclass__classify_bytes__temp32;
452BitBlock _strct_byteclass__classify_bytes__temp31;
453BitBlock _strct_byteclass__classify_bytes__temp30;
454BitBlock _strct_byteclass__classify_bytes__strct_u8__scope43_;
455BitBlock DQuoteScan;
456BitBlock Temp1;
457BitBlock Temp7;
458BitBlock Temp6;
459BitBlock strct_lex__Digit_;
460BitBlock Temp4;
461BitBlock AttValFollow;
462BitBlock Temp9;
463BitBlock Temp8;
464BitBlock _strct_byteclass__classify_bytes__strct_lex__Digit_;
465BitBlock Temp167;
466
467CarryType carry45_i = Carry0;
468CarryType carry24_i = Carry0;
469CarryType carry28 = Carry0;
470CarryType carry29 = Carry0;
471CarryType carry43_i = Carry0;
472CarryType carry20 = Carry0;
473CarryType carry21 = Carry0;
474CarryType carry22 = Carry0;
475CarryType carry23 = Carry0;
476CarryType carry24 = Carry0;
477CarryType carry25 = Carry0;
478CarryType carry26 = Carry0;
479CarryType carry27 = Carry0;
480CarryType carry20_i = Carry0;
481CarryType CarryTemp213 = Carry0;
482CarryType carry22_i = Carry0;
483CarryType carry15 = Carry0;
484CarryType carry14 = Carry0;
485CarryType carry17 = Carry0;
486CarryType carry16 = Carry0;
487CarryType carry11 = Carry0;
488CarryType carry10 = Carry0;
489CarryType carry13 = Carry0;
490CarryType carry12 = Carry0;
491CarryType carry38_i = Carry0;
492CarryType carry19 = Carry0;
493CarryType carry18 = Carry0;
494CarryType carry51 = Carry0;
495CarryType carry50 = Carry0;
496CarryType carry53 = Carry0;
497CarryType carry36_i = Carry0;
498CarryType carry55 = Carry0;
499CarryType carry54 = Carry0;
500CarryType carry40_i = Carry0;
501CarryType carry27_i = Carry0;
502CarryType carry29_i = Carry0;
503CarryType carry23_i = Carry0;
504CarryType carry38 = Carry0;
505CarryType carry30_i = Carry0;
506CarryType carry42_i = Carry0;
507CarryType carry25_i = Carry0;
508CarryType carry48 = Carry0;
509CarryType carry49 = Carry0;
510CarryType carry46 = Carry0;
511CarryType carry47 = Carry0;
512CarryType carry44 = Carry0;
513CarryType carry45 = Carry0;
514CarryType carry42 = Carry0;
515CarryType carry43 = Carry0;
516CarryType carry40 = Carry0;
517CarryType carry41 = Carry0;
518CarryType carry1 = Carry0;
519CarryType carry0 = Carry0;
520CarryType carry3 = Carry0;
521CarryType carry2 = Carry0;
522CarryType carry5 = Carry0;
523CarryType carry4 = Carry0;
524CarryType carry7 = Carry0;
525CarryType carry6 = Carry0;
526CarryType carry9 = Carry0;
527CarryType carry26_i = Carry0;
528CarryType carry21_i = Carry0;
529CarryType carry44_i = Carry0;
530CarryType carry39_i = Carry0;
531CarryType carry37_i = Carry0;
532CarryType carry_brw3 = Carry0;
533CarryType carry_brw2 = Carry0;
534CarryType carry_brw1 = Carry0;
535CarryType carry_brw0 = Carry0;
536CarryType carry_brw4 = Carry0;
537CarryType carry33 = Carry0;
538CarryType carry32 = Carry0;
539CarryType carry31 = Carry0;
540CarryType carry30 = Carry0;
541CarryType carry37 = Carry0;
542CarryType carry36 = Carry0;
543CarryType carry35 = Carry0;
544CarryType carry34 = Carry0;
545CarryType carry41_i = Carry0;
546CarryType carry39 = Carry0;
547CarryType carry28_i = Carry0;
548CarryType carry52 = Carry0;
549CarryType carry8 = Carry0;
550CarryType CarryTemp252 = Carry0;
551
552CarryType carry_queue = Carry0;
553CarryType carry = Carry0;
554
555CarryType ctcdpi_carry_queue = Carry0;
556CarryType ctcdpi_carry_in = Carry0;
557
558CarryType stag_carry_queue = Carry0;
559CarryType stag_carry_in = Carry0;
560
561  BytePack U8[8];
562  int buf_pos = 0;
563  int block_pos = 0;
564  int errpos = 0;
565  int chars_read = 0;
566  char srcbuf[BUFFER_SIZE+BLOCK_SIZE];
567 
568  EOF_mask = simd_const_1(1);
569  chars_read = fread((void *)srcbuf, 1, BUFFER_SIZE, infile);
570
571  Entity_Info * e = new Entity_Info;
572  e->AnalyzeSignature((unsigned char *)srcbuf);
573  XML_Decl_Parser<ASCII> decl_parser((unsigned char *)srcbuf);
574
575  decl_parser.ReadXMLInfo(*e);
576
577  if (e->content_start != 0) {
578        memmove(&srcbuf[0], &srcbuf[e->content_start], chars_read - e->content_start);
579        if (chars_read == BUFFER_SIZE) {
580                chars_read = BUFFER_SIZE - e->content_start + 
581                             fread(&srcbuf[BUFFER_SIZE-e->content_start], 1, e->content_start, infile);
582        }
583  }
584 
585  CtCDPI_Cursor_17 = sisd_from_int(1);
586
587
588  while(chars_read>0){
589
590    PERF_SEC_START(parser_timer);
591
592    while (block_pos < chars_read){
593
594        int bytes = chars_read - block_pos;
595        if(bytes < BLOCK_SIZE){
596          EOF_mask = sisd_srl(simd_const_1(1),sisd_from_int(BLOCK_SIZE-bytes));
597        }
598        BytePack * U8pack = (BytePack *) &srcbuf[block_pos];
599        U8[0] = sisd_load_unaligned(&U8pack[0]);
600        U8[1] = sisd_load_unaligned(&U8pack[1]);
601        U8[2] = sisd_load_unaligned(&U8pack[2]);
602        U8[3] = sisd_load_unaligned(&U8pack[3]);
603        U8[4] = sisd_load_unaligned(&U8pack[4]);
604        U8[5] = sisd_load_unaligned(&U8pack[5]);
605        U8[6] = sisd_load_unaligned(&U8pack[6]);
606        U8[7] = sisd_load_unaligned(&U8pack[7]); 
607       
608        s2p_bytepack(U8[7], U8[6], U8[5], U8[4], U8[3], U8[2], U8[1], U8[0],
609        array_bit__0_,array_bit__1_,array_bit__2_,array_bit__3_,array_bit__4_,array_bit__5_,array_bit__6_,array_bit__7_);
610
611        array_bit__0_ = simd_and(array_bit__0_, EOF_mask);
612        array_bit__1_ = simd_and(array_bit__1_, EOF_mask);
613        array_bit__2_ = simd_and(array_bit__2_, EOF_mask);
614        array_bit__3_ = simd_and(array_bit__3_, EOF_mask);
615        array_bit__4_ = simd_and(array_bit__4_, EOF_mask);
616        array_bit__5_ = simd_and(array_bit__5_, EOF_mask);
617        array_bit__6_ = simd_and(array_bit__6_, EOF_mask);
618        array_bit__7_ = simd_and(array_bit__7_, EOF_mask);
619
620        _strct_byteclass__classify_bytes__temp1 = simd_or(array_bit__0_,array_bit__1_);
621_strct_byteclass__classify_bytes__temp2 = simd_andc(array_bit__2_,array_bit__3_);
622_strct_byteclass__classify_bytes__temp3 = simd_andc(_strct_byteclass__classify_bytes__temp2,_strct_byteclass__classify_bytes__temp1);
623_strct_byteclass__classify_bytes__temp4 = simd_andc(array_bit__5_,array_bit__4_);
624_strct_byteclass__classify_bytes__temp5 = simd_andc(array_bit__6_,array_bit__7_);
625_strct_byteclass__classify_bytes__temp6 = simd_and(_strct_byteclass__classify_bytes__temp4,_strct_byteclass__classify_bytes__temp5);
626_strct_byteclass__classify_bytes__strct_lex__RefStart_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp6);
627_strct_byteclass__classify_bytes__temp7 = simd_and(array_bit__2_,array_bit__3_);
628_strct_byteclass__classify_bytes__temp8 = simd_andc(_strct_byteclass__classify_bytes__temp7,_strct_byteclass__classify_bytes__temp1);
629_strct_byteclass__classify_bytes__temp9 = simd_andc(array_bit__4_,array_bit__5_);
630_strct_byteclass__classify_bytes__temp10 = simd_and(array_bit__6_,array_bit__7_);
631_strct_byteclass__classify_bytes__temp11 = simd_and(_strct_byteclass__classify_bytes__temp9,_strct_byteclass__classify_bytes__temp10);
632_strct_byteclass__classify_bytes__strct_lex__Semicolon_ = simd_and(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp11);
633_strct_byteclass__classify_bytes__temp12 = simd_and(array_bit__4_,array_bit__5_);
634_strct_byteclass__classify_bytes__temp13 = simd_or(array_bit__6_,array_bit__7_);
635_strct_byteclass__classify_bytes__temp14 = simd_andc(_strct_byteclass__classify_bytes__temp12,_strct_byteclass__classify_bytes__temp13);
636_strct_byteclass__classify_bytes__strct_lex__LAngle_ = simd_and(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp14);
637_strct_byteclass__classify_bytes__temp15 = simd_and(_strct_byteclass__classify_bytes__temp12,_strct_byteclass__classify_bytes__temp5);
638_strct_byteclass__classify_bytes__strct_lex__RAngle_ = simd_and(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp15);
639_strct_byteclass__classify_bytes__temp16 = simd_andc(array_bit__1_,array_bit__0_);
640_strct_byteclass__classify_bytes__temp17 = simd_andc(array_bit__3_,array_bit__2_);
641_strct_byteclass__classify_bytes__temp18 = simd_and(_strct_byteclass__classify_bytes__temp16,_strct_byteclass__classify_bytes__temp17);
642_strct_byteclass__classify_bytes__strct_lex__LBracket_ = simd_and(_strct_byteclass__classify_bytes__temp18,_strct_byteclass__classify_bytes__temp11);
643_strct_byteclass__classify_bytes__temp19 = simd_andc(array_bit__7_,array_bit__6_);
644_strct_byteclass__classify_bytes__temp20 = simd_and(_strct_byteclass__classify_bytes__temp12,_strct_byteclass__classify_bytes__temp19);
645_strct_byteclass__classify_bytes__strct_lex__RBracket_ = simd_and(_strct_byteclass__classify_bytes__temp18,_strct_byteclass__classify_bytes__temp20);
646_strct_byteclass__classify_bytes__temp21 = simd_or(array_bit__4_,array_bit__5_);
647_strct_byteclass__classify_bytes__temp22 = simd_andc(_strct_byteclass__classify_bytes__temp19,_strct_byteclass__classify_bytes__temp21);
648_strct_byteclass__classify_bytes__strct_lex__Exclam_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp22);
649_strct_byteclass__classify_bytes__temp23 = simd_and(_strct_byteclass__classify_bytes__temp12,_strct_byteclass__classify_bytes__temp10);
650_strct_byteclass__classify_bytes__strct_lex__QMark_ = simd_and(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp23);
651_strct_byteclass__classify_bytes__strct_lex__Hyphen_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp20);
652_strct_byteclass__classify_bytes__strct_lex__Equals_ = simd_and(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp20);
653_strct_byteclass__classify_bytes__temp24 = simd_and(_strct_byteclass__classify_bytes__temp4,_strct_byteclass__classify_bytes__temp10);
654_strct_byteclass__classify_bytes__strct_lex__SQuote_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp24);
655_strct_byteclass__classify_bytes__temp25 = simd_andc(_strct_byteclass__classify_bytes__temp5,_strct_byteclass__classify_bytes__temp21);
656_strct_byteclass__classify_bytes__strct_lex__DQuote_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp25);
657_strct_byteclass__classify_bytes__strct_lex__Slash_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp23);
658_strct_byteclass__classify_bytes__temp26 = simd_andc(_strct_byteclass__classify_bytes__temp10,_strct_byteclass__classify_bytes__temp21);
659_strct_byteclass__classify_bytes__strct_lex__Hash_ = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp26);
660_strct_byteclass__classify_bytes__temp27 = simd_and(_strct_byteclass__classify_bytes__temp16,_strct_byteclass__classify_bytes__temp7);
661_strct_byteclass__classify_bytes__temp28 = simd_andc(_strct_byteclass__classify_bytes__temp9,_strct_byteclass__classify_bytes__temp13);
662_strct_byteclass__classify_bytes__strct_lex__x_ = simd_and(_strct_byteclass__classify_bytes__temp27,_strct_byteclass__classify_bytes__temp28);
663_strct_byteclass__classify_bytes__temp29 = simd_and(_strct_byteclass__classify_bytes__temp9,_strct_byteclass__classify_bytes__temp5);
664_strct_byteclass__classify_bytes__strct_lex__Colon_ = simd_and(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp29);
665_strct_byteclass__classify_bytes__temp30 = simd_and(_strct_byteclass__classify_bytes__temp18,_strct_byteclass__classify_bytes__temp23);
666_strct_byteclass__classify_bytes__temp31 = simd_or(_strct_byteclass__classify_bytes__temp30,_strct_byteclass__classify_bytes__strct_lex__Colon_);
667_strct_byteclass__classify_bytes__temp32 = simd_andc(_strct_byteclass__classify_bytes__temp16,array_bit__2_);
668_strct_byteclass__classify_bytes__temp33 = simd_or(array_bit__5_,_strct_byteclass__classify_bytes__temp10);
669_strct_byteclass__classify_bytes__temp34 = simd_and(array_bit__4_,_strct_byteclass__classify_bytes__temp33);
670_strct_byteclass__classify_bytes__temp35 = simd_andc(AllOne,_strct_byteclass__classify_bytes__temp34);
671_strct_byteclass__classify_bytes__temp36 = simd_or(_strct_byteclass__classify_bytes__temp21,_strct_byteclass__classify_bytes__temp13);
672Temp1 = simd_and(array_bit__3_,_strct_byteclass__classify_bytes__temp35);
673Temp2 = simd_andc(_strct_byteclass__classify_bytes__temp36,array_bit__3_);
674_strct_byteclass__classify_bytes__temp37 = simd_or(Temp1,Temp2);
675_strct_byteclass__classify_bytes__temp38 = simd_and(_strct_byteclass__classify_bytes__temp32,_strct_byteclass__classify_bytes__temp37);
676_strct_byteclass__classify_bytes__temp39 = simd_or(_strct_byteclass__classify_bytes__temp31,_strct_byteclass__classify_bytes__temp38);
677_strct_byteclass__classify_bytes__temp40 = simd_and(_strct_byteclass__classify_bytes__temp16,array_bit__2_);
678_strct_byteclass__classify_bytes__temp41 = simd_and(_strct_byteclass__classify_bytes__temp40,_strct_byteclass__classify_bytes__temp37);
679_strct_byteclass__classify_bytes__strct_lex__ASCII_name_start_ = simd_or(_strct_byteclass__classify_bytes__temp39,_strct_byteclass__classify_bytes__temp41);
680_strct_byteclass__classify_bytes__temp42 = simd_or(_strct_byteclass__classify_bytes__temp30,_strct_byteclass__classify_bytes__strct_lex__Hyphen_);
681_strct_byteclass__classify_bytes__temp43 = simd_and(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp15);
682_strct_byteclass__classify_bytes__temp44 = simd_or(_strct_byteclass__classify_bytes__temp42,_strct_byteclass__classify_bytes__temp43);
683_strct_byteclass__classify_bytes__temp45 = simd_andc(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp34);
684_strct_byteclass__classify_bytes__temp46 = simd_or(_strct_byteclass__classify_bytes__temp44,_strct_byteclass__classify_bytes__temp45);
685_strct_byteclass__classify_bytes__temp47 = simd_or(_strct_byteclass__classify_bytes__temp46,_strct_byteclass__classify_bytes__temp38);
686_strct_byteclass__classify_bytes__strct_lex__ASCII_name_char_ = simd_or(_strct_byteclass__classify_bytes__temp47,_strct_byteclass__classify_bytes__temp41);
687_strct_byteclass__classify_bytes__strct_lex__NameScan_ = simd_or(_strct_byteclass__classify_bytes__strct_lex__ASCII_name_char_,array_bit__0_);
688_strct_byteclass__classify_bytes__temp48 = simd_or(_strct_byteclass__classify_bytes__temp1,array_bit__2_);
689_strct_byteclass__classify_bytes__strct_control__x00_x1F_ = simd_andc(AllOne,_strct_byteclass__classify_bytes__temp48);
690_strct_byteclass__classify_bytes__temp49 = simd_or(array_bit__2_,array_bit__3_);
691_strct_byteclass__classify_bytes__temp50 = simd_or(_strct_byteclass__classify_bytes__temp1,_strct_byteclass__classify_bytes__temp49);
692_strct_byteclass__classify_bytes__strct_control__CR_ = simd_andc(_strct_byteclass__classify_bytes__temp20,_strct_byteclass__classify_bytes__temp50);
693_strct_byteclass__classify_bytes__temp51 = simd_and(_strct_byteclass__classify_bytes__temp9,_strct_byteclass__classify_bytes__temp19);
694_strct_byteclass__classify_bytes__strct_control__SP_ = simd_andc(_strct_byteclass__classify_bytes__temp3,_strct_byteclass__classify_bytes__temp36);
695_strct_byteclass__classify_bytes__temp52 = simd_or(_strct_byteclass__classify_bytes__temp20,_strct_byteclass__classify_bytes__temp29);
696_strct_byteclass__classify_bytes__temp53 = simd_or(_strct_byteclass__classify_bytes__temp52,_strct_byteclass__classify_bytes__temp51);
697_strct_byteclass__classify_bytes__temp54 = simd_andc(_strct_byteclass__classify_bytes__temp53,_strct_byteclass__classify_bytes__temp50);
698_strct_byteclass__classify_bytes__strct_lex__WS_ = simd_or(_strct_byteclass__classify_bytes__temp54,_strct_byteclass__classify_bytes__strct_control__SP_);
699_strct_byteclass__classify_bytes__temp55 = simd_or(array_bit__5_,array_bit__6_);
700_strct_byteclass__classify_bytes__temp56 = simd_and(array_bit__4_,_strct_byteclass__classify_bytes__temp55);
701_strct_byteclass__classify_bytes__strct_lex__Digit_ = simd_andc(_strct_byteclass__classify_bytes__temp8,_strct_byteclass__classify_bytes__temp56);
702_strct_byteclass__classify_bytes__temp57 = simd_andc(_strct_byteclass__classify_bytes__temp16,_strct_byteclass__classify_bytes__temp49);
703_strct_byteclass__classify_bytes__temp58 = simd_andc(_strct_byteclass__classify_bytes__temp57,array_bit__4_);
704_strct_byteclass__classify_bytes__temp59 = simd_andc(AllOne,_strct_byteclass__classify_bytes__temp10);
705Temp3 = simd_and(array_bit__5_,_strct_byteclass__classify_bytes__temp59);
706Temp4 = simd_andc(_strct_byteclass__classify_bytes__temp13,array_bit__5_);
707_strct_byteclass__classify_bytes__temp60 = simd_or(Temp3,Temp4);
708_strct_byteclass__classify_bytes__temp61 = simd_and(_strct_byteclass__classify_bytes__temp58,_strct_byteclass__classify_bytes__temp60);
709_strct_byteclass__classify_bytes__temp62 = simd_or(_strct_byteclass__classify_bytes__strct_lex__Digit_,_strct_byteclass__classify_bytes__temp61);
710_strct_byteclass__classify_bytes__temp63 = simd_and(_strct_byteclass__classify_bytes__temp16,_strct_byteclass__classify_bytes__temp2);
711_strct_byteclass__classify_bytes__temp64 = simd_andc(_strct_byteclass__classify_bytes__temp63,array_bit__4_);
712_strct_byteclass__classify_bytes__temp65 = simd_and(_strct_byteclass__classify_bytes__temp64,_strct_byteclass__classify_bytes__temp60);
713_strct_byteclass__classify_bytes__strct_lex__Hex_ = simd_or(_strct_byteclass__classify_bytes__temp62,_strct_byteclass__classify_bytes__temp65);
714_strct_byteclass__classify_bytes__strct_u8__prefix_ = simd_and(array_bit__0_,array_bit__1_);
715_strct_byteclass__classify_bytes__strct_u8__prefix2_ = simd_andc(_strct_byteclass__classify_bytes__strct_u8__prefix_,array_bit__2_);
716_strct_byteclass__classify_bytes__strct_u8__prefix3_ = simd_and(_strct_byteclass__classify_bytes__strct_u8__prefix_,_strct_byteclass__classify_bytes__temp2);
717_strct_byteclass__classify_bytes__strct_u8__prefix4_ = simd_and(_strct_byteclass__classify_bytes__strct_u8__prefix_,_strct_byteclass__classify_bytes__temp7);
718_strct_byteclass__classify_bytes__strct_u8__suffix_ = simd_andc(array_bit__0_,array_bit__1_);
719_strct_byteclass__classify_bytes__temp66 = simd_andc(_strct_byteclass__classify_bytes__strct_u8__prefix_,_strct_byteclass__classify_bytes__temp49);
720_strct_byteclass__classify_bytes__temp67 = simd_or(_strct_byteclass__classify_bytes__temp21,array_bit__6_);
721_strct_byteclass__classify_bytes__temp68 = simd_andc(_strct_byteclass__classify_bytes__temp66,_strct_byteclass__classify_bytes__temp67);
722_strct_byteclass__classify_bytes__temp69 = simd_and(array_bit__5_,_strct_byteclass__classify_bytes__temp13);
723_strct_byteclass__classify_bytes__temp70 = simd_or(array_bit__4_,_strct_byteclass__classify_bytes__temp69);
724_strct_byteclass__classify_bytes__temp71 = simd_and(_strct_byteclass__classify_bytes__strct_u8__prefix4_,_strct_byteclass__classify_bytes__temp70);
725_strct_byteclass__classify_bytes__strct_u8__badprefix_ = simd_or(_strct_byteclass__classify_bytes__temp68,_strct_byteclass__classify_bytes__temp71);
726_strct_byteclass__classify_bytes__xE0 = simd_andc(_strct_byteclass__classify_bytes__strct_u8__prefix3_,_strct_byteclass__classify_bytes__temp36);
727_strct_byteclass__classify_bytes__xED = simd_and(_strct_byteclass__classify_bytes__strct_u8__prefix3_,_strct_byteclass__classify_bytes__temp20);
728_strct_byteclass__classify_bytes__xF0 = simd_andc(_strct_byteclass__classify_bytes__strct_u8__prefix4_,_strct_byteclass__classify_bytes__temp36);
729_strct_byteclass__classify_bytes__temp72 = simd_andc(_strct_byteclass__classify_bytes__temp4,_strct_byteclass__classify_bytes__temp13);
730_strct_byteclass__classify_bytes__xF4 = simd_and(_strct_byteclass__classify_bytes__strct_u8__prefix4_,_strct_byteclass__classify_bytes__temp72);
731_strct_byteclass__classify_bytes__strct_u8__xA0_xBF_ = simd_and(_strct_byteclass__classify_bytes__strct_u8__suffix_,array_bit__2_);
732_strct_byteclass__classify_bytes__strct_u8__x80_x9F_ = simd_andc(_strct_byteclass__classify_bytes__strct_u8__suffix_,array_bit__2_);
733_strct_byteclass__classify_bytes__strct_u8__x90_xBF_ = simd_and(_strct_byteclass__classify_bytes__strct_u8__suffix_,_strct_byteclass__classify_bytes__temp49);
734_strct_byteclass__classify_bytes__strct_u8__x80_x8F_ = simd_andc(_strct_byteclass__classify_bytes__strct_u8__suffix_,_strct_byteclass__classify_bytes__temp49);
735_strct_byteclass__classify_bytes__xEF = simd_and(_strct_byteclass__classify_bytes__strct_u8__prefix3_,_strct_byteclass__classify_bytes__temp23);
736_strct_byteclass__classify_bytes__temp73 = simd_and(_strct_byteclass__classify_bytes__strct_u8__suffix_,_strct_byteclass__classify_bytes__temp7);
737_strct_byteclass__classify_bytes__strct_u8__xBF_ = simd_and(_strct_byteclass__classify_bytes__temp73,_strct_byteclass__classify_bytes__temp23);
738_strct_byteclass__classify_bytes__strct_u8__xBE_ = simd_and(_strct_byteclass__classify_bytes__temp73,_strct_byteclass__classify_bytes__temp15);
739
740clc();
741adc(carry_queue,carry_queue,carry,carry_queue);
742advance_with_carry(_strct_byteclass__classify_bytes__xE0, carry1, _strct_byteclass__classify_bytes__strct_u8__xE0_scope_);
743adc(carry_queue,carry_queue,carry,carry_queue);
744advance_with_carry(_strct_byteclass__classify_bytes__xED, carry2, _strct_byteclass__classify_bytes__strct_u8__xED_scope_);
745adc(carry_queue,carry_queue,carry,carry_queue);
746advance_with_carry(_strct_byteclass__classify_bytes__xF0, carry3, _strct_byteclass__classify_bytes__strct_u8__xF0_scope_);
747adc(carry_queue,carry_queue,carry,carry_queue);
748advance_with_carry(_strct_byteclass__classify_bytes__xF4, carry4, _strct_byteclass__classify_bytes__strct_u8__xF4_scope_);
749adc(carry_queue,carry_queue,carry,carry_queue);
750advance_with_carry(_strct_byteclass__classify_bytes__xEF, carry5, _strct_byteclass__classify_bytes__strct_u8__xEF_scope_);
751
752adc(carry_queue,carry_queue,carry,carry_queue);
753advance_with_carry(_strct_byteclass__classify_bytes__strct_lex__RefStart_, carry6, _strct_byteclass__classify_bytes__strct_lex__RefStart_scope_);
754adc(carry_queue,carry_queue,carry,carry_queue);
755advance_with_carry(_strct_byteclass__classify_bytes__strct_lex__LAngle_, carry7, _strct_byteclass__classify_bytes__strct_lex__LAngle_scope_);
756adc(carry_queue,carry_queue,carry,carry_queue);
757advance_with_carry(_strct_byteclass__classify_bytes__strct_lex__Hyphen_, carry8, _strct_byteclass__classify_bytes__strct_lex__Hyphen_scope_);
758adc(carry_queue,carry_queue,carry,carry_queue);
759advance_with_carry(_strct_byteclass__classify_bytes__strct_lex__QMark_, carry9, _strct_byteclass__classify_bytes__strct_lex__QMark_scope_);
760adc(carry_queue,carry_queue,carry,carry_queue);
761advance_with_carry(_strct_byteclass__classify_bytes__strct_lex__RBracket_, carry10, _strct_byteclass__classify_bytes__strct_lex__RBracket_scope_);
762
763adc(carry_queue,carry_queue,carry,carry_queue);
764advance_with_carry(_strct_byteclass__classify_bytes__strct_u8__prefix2_, carry11, _strct_byteclass__classify_bytes__strct_u8__scope22_);
765adc(carry_queue,carry_queue,carry,carry_queue);
766advance_with_carry(_strct_byteclass__classify_bytes__strct_u8__prefix3_, carry12, _strct_byteclass__classify_bytes__strct_u8__scope32_);
767adc(carry_queue,carry_queue,carry,carry_queue);
768advance_with_carry(_strct_byteclass__classify_bytes__strct_u8__scope32_, carry13, _strct_byteclass__classify_bytes__strct_u8__scope33_);
769adc(carry_queue,carry_queue,carry,carry_queue);
770advance_with_carry(_strct_byteclass__classify_bytes__strct_u8__prefix4_, carry14, _strct_byteclass__classify_bytes__strct_u8__scope42_);
771adc(carry_queue,carry_queue,carry,carry_queue);
772advance_with_carry(_strct_byteclass__classify_bytes__strct_u8__scope42_, carry15, _strct_byteclass__classify_bytes__strct_u8__scope43_);
773
774adc(carry_queue,carry_queue,carry,carry_queue);
775advance_with_carry(_strct_byteclass__classify_bytes__strct_u8__scope43_, carry16, _strct_byteclass__classify_bytes__strct_u8__scope44_);
776
777// 16
778Temp5 = simd_or(_strct_byteclass__classify_bytes__strct_u8__scope22_,_strct_byteclass__classify_bytes__strct_u8__scope33_);
779_strct_u8u16__validate_utf8__u8lastscope = simd_or(Temp5,_strct_byteclass__classify_bytes__strct_u8__scope44_);
780Temp6 = simd_or(_strct_u8u16__validate_utf8__u8lastscope,_strct_byteclass__classify_bytes__strct_u8__scope32_);
781Temp7 = simd_or(Temp6,_strct_byteclass__classify_bytes__strct_u8__scope42_);
782_strct_u8u16__validate_utf8__u8anyscope = simd_or(Temp7,_strct_byteclass__classify_bytes__strct_u8__scope43_);
783Temp8 = simd_and(_strct_byteclass__classify_bytes__strct_u8__xE0_scope_,_strct_byteclass__classify_bytes__strct_u8__x80_x9F_);
784_strct_u8u16__validate_utf8__error_mask_13 = simd_or(_strct_byteclass__classify_bytes__strct_u8__badprefix_,Temp8);
785Temp9 = simd_and(_strct_byteclass__classify_bytes__strct_u8__xED_scope_,_strct_byteclass__classify_bytes__strct_u8__xA0_xBF_);
786_strct_u8u16__validate_utf8__error_mask_14 = simd_or(_strct_u8u16__validate_utf8__error_mask_13,Temp9);
787Temp10 = simd_and(_strct_byteclass__classify_bytes__strct_u8__xF0_scope_,_strct_byteclass__classify_bytes__strct_u8__x80_x8F_);
788_strct_u8u16__validate_utf8__error_mask_15 = simd_or(_strct_u8u16__validate_utf8__error_mask_14,Temp10);
789Temp11 = simd_and(_strct_byteclass__classify_bytes__strct_u8__xF4_scope_,_strct_byteclass__classify_bytes__strct_u8__x90_xBF_);
790_strct_u8u16__validate_utf8__error_mask_16 = simd_or(_strct_u8u16__validate_utf8__error_mask_15,Temp11);
791Temp12 = simd_xor(_strct_u8u16__validate_utf8__u8anyscope,_strct_byteclass__classify_bytes__strct_u8__suffix_);
792_strct_u8u16__validate_utf8__error_mask = simd_or(_strct_u8u16__validate_utf8__error_mask_16,Temp12);
793Temp13 = simd_and(_strct_byteclass__classify_bytes__strct_u8__xEF_scope_,_strct_byteclass__classify_bytes__strct_u8__xBF_);
794//17
795adc(carry_queue,carry_queue,carry,carry_queue);
796advance_with_carry(Temp13, carry17, _validate_xmlchar_EF_BF_pending);
797Temp14 = simd_or(_strct_byteclass__classify_bytes__strct_u8__xBE_,_strct_byteclass__classify_bytes__strct_u8__xBF_);
798Temp15 = simd_and(_validate_xmlchar_EF_BF_pending,Temp14);
799Temp16 = simd_andc(_strct_byteclass__classify_bytes__strct_control__x00_x1F_,_strct_byteclass__classify_bytes__strct_lex__WS_);
800Temp17 = simd_and(Temp16,EOF_mask);
801_validate_xmlchar_ret = simd_or(Temp15,Temp17);
802strct_lex__PI_start_ = simd_and(_strct_byteclass__classify_bytes__strct_lex__LAngle_scope_,_strct_byteclass__classify_bytes__strct_lex__QMark_);
803strct_lex__CtCD_start_ = simd_and(_strct_byteclass__classify_bytes__strct_lex__LAngle_scope_,_strct_byteclass__classify_bytes__strct_lex__Exclam_);
804strct_lex__EndTag_start_ = simd_and(_strct_byteclass__classify_bytes__strct_lex__LAngle_scope_,_strct_byteclass__classify_bytes__strct_lex__Slash_);
805Temp18 = simd_and(_strct_byteclass__classify_bytes__strct_lex__RBracket_scope_,_strct_byteclass__classify_bytes__strct_lex__RBracket_);
806//18
807adc(carry_queue,carry_queue,carry,carry_queue);
808advance_with_carry(Temp18, carry18, Temp19);
809strct_lex__CD_end_ = simd_and(Temp19,_strct_byteclass__classify_bytes__strct_lex__RAngle_);
810strct_lex__DoubleHyphen_ = simd_and(_strct_byteclass__classify_bytes__strct_lex__Hyphen_scope_,_strct_byteclass__classify_bytes__strct_lex__Hyphen_);
811strct_lex__PI_end_ = simd_and(_strct_byteclass__classify_bytes__strct_lex__QMark_scope_,_strct_byteclass__classify_bytes__strct_lex__RAngle_);
812PI_ends = AllZero;
813Ct_starts = AllZero;
814Ct_ends = AllZero;
815CD_ends = AllZero;
816CtCDPI_starts = AllZero;
817PI_name_ends = AllZero;
818Temp20 = simd_or(strct_lex__CtCD_start_,strct_lex__PI_start_);
819CtCDPI_scan = simd_andc(EOF_mask,Temp20);
820Ct_end_scan = simd_andc(EOF_mask,strct_lex__DoubleHyphen_);
821CD_end_scan = simd_andc(EOF_mask,strct_lex__CD_end_);
822PI_end_scan = simd_andc(EOF_mask,strct_lex__PI_end_);
823//19
824adc(carry_queue,carry_queue,carry,carry_queue);
825adc128(CtCDPI_Cursor_17, CtCDPI_scan, carry19, Temp21);
826
827CtCDPI_Cursor_18 = simd_andc(Temp21,CtCDPI_scan);
828CtCDPI_Cursor = simd_and(CtCDPI_Cursor_18,EOF_mask);
829
830ctcdpi_carry_queue = ctcdpi_carry_in;
831ctcdpi_carry_in = Carry0;
832
833clc();
834
835while ((bitblock_has_bit(CtCDPI_Cursor))||(test_carry(ctcdpi_carry_queue))) {
836
837    CtCDPI_starts = simd_or(CtCDPI_starts,CtCDPI_Cursor);
838    PI_Cursor = simd_and(CtCDPI_Cursor,strct_lex__PI_start_);
839    Temp28 = simd_andc(CtCDPI_Cursor,PI_Cursor);
840    Temp31 = simd_andc(CtCDPI_Cursor,PI_Cursor);
841// 1
842    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
843    adc128(Temp28, Temp31, carry20, CD_Ct_Cursor);
844    CD_Cursor = simd_and(CD_Ct_Cursor,_strct_byteclass__classify_bytes__strct_lex__LBracket_);
845    Temp36 = simd_and(CD_Ct_Cursor,_strct_byteclass__classify_bytes__strct_lex__Hyphen_);
846    Temp39 = simd_and(CD_Ct_Cursor,_strct_byteclass__classify_bytes__strct_lex__Hyphen_);
847// 2
848    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
849    adc128(Temp36, Temp39, carry21, Ct_Cursor);
850    Ct_starts = simd_or(Ct_starts,Ct_Cursor);
851// 3
852    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
853    advance_with_carry(Ct_Cursor, carry22, Ct_Cursor);
854    Ct_end_scan = simd_or(Ct_end_scan,Ct_Cursor);
855// 4
856    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
857    advance_with_carry(PI_Cursor, carry23, Temp52);
858
859// 5
860    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
861    adc128(Temp52, _strct_byteclass__classify_bytes__strct_lex__NameScan_, carry24, Temp54);
862    PI_name_end = simd_andc(Temp54,_strct_byteclass__classify_bytes__strct_lex__NameScan_);
863    PI_name_ends = simd_or(PI_name_ends,PI_name_end);
864    sbb128(PI_name_end, PI_Cursor, carry_brw0, Temp61);
865    strct_CT_callouts__PI_name_ = simd_or(strct_CT_callouts__PI_name_,Temp61);
866// 6
867    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
868    adc128(PI_name_end, PI_end_scan, carry25, Temp64);
869    PI_Cursor = simd_andc(Temp64,PI_end_scan);
870// 7
871    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
872    adc128(CD_Cursor, CD_end_scan, carry26, Temp68);
873    CD_Cursor = simd_andc(Temp68,CD_end_scan);
874
875// 8
876    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
877    adc128(Ct_Cursor, Ct_end_scan, carry27, Temp72);
878    Temp74 = simd_andc(Temp72,Ct_end_scan);
879
880// 9
881    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
882    adc128(Ct_Cursor, Ct_end_scan, carry28, Temp77);
883    Temp79 = simd_andc(Temp77,Ct_end_scan);
884
885// 10
886    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
887    adc128(Temp74, Temp79, carry29, Ct_Cursor);
888    PI_ends = simd_or(PI_ends,PI_Cursor);
889    CD_ends = simd_or(CD_ends,CD_Cursor);
890    Ct_ends = simd_or(Ct_ends,Ct_Cursor);
891    Temp88 = simd_or(PI_Cursor,CD_Cursor);
892    CtCDPI_Cursor = simd_or(Temp88,Ct_Cursor);
893
894// 11
895    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
896    adc128(CtCDPI_Cursor, CtCDPI_scan, carry30, Temp92);
897    CtCDPI_Cursor = simd_andc(Temp92,CtCDPI_scan);
898    CtCDPI_Cursor = simd_and(CtCDPI_Cursor,EOF_mask);
899// 12
900    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
901    adc(ctcdpi_carry_queue,ctcdpi_carry_queue,carry,ctcdpi_carry_queue);
902    ctcdpi_carry_in |= ctcdpi_carry_queue;
903    ctcdpi_carry_queue = Carry0;
904}
905
906ctcdpi_carry_in = ctcdpi_carry_in << ((sizeof(CarryType)<<3) - 12);
907ctcdpi_carry_queue = ctcdpi_carry_in;
908ctcdpi_carry_in = Carry0;
909
910Temp96 = simd_or(CD_ends,Ct_ends);
911Temp97 = simd_or(Temp96,PI_ends);
912
913clc();
914//20
915adc(carry_queue,carry_queue,carry,carry_queue);
916advance_with_carry(Temp97, carry31, Temp98);
917
918sbb128(Temp98, CtCDPI_starts, carry_brw1, strct_CT_callouts__CtCDPI_mask_);
919Temp99 = simd_andc(Ct_ends,_strct_byteclass__classify_bytes__strct_lex__RAngle_);
920Temp100 = simd_andc(Ct_starts,_strct_byteclass__classify_bytes__strct_lex__Hyphen_);
921strct_CT_callouts__error__8 = simd_or(Temp99,Temp100);
922Temp101 = simd_andc(PI_name_ends,_strct_byteclass__classify_bytes__strct_lex__WS_);
923
924//21
925adc(carry_queue,carry_queue,carry,carry_queue);
926advance_with_carry(Temp101, carry32, Temp102);
927Temp103 = simd_andc(Temp102,strct_lex__PI_end_);
928strct_CT_callouts__error__9 = simd_or(strct_CT_callouts__error__8,Temp103);
929Temp104 = simd_andc(strct_CT_callouts__CtCDPI_mask_,EOF_mask);
930strct_CT_callouts__error_ = simd_or(strct_CT_callouts__error__9,Temp104);
931Temp105 = simd_or(_strct_byteclass__classify_bytes__strct_lex__DQuote_,_strct_byteclass__classify_bytes__strct_lex__LAngle_);
932DQuoteScan = simd_andc(EOF_mask,Temp105);
933Temp106 = simd_or(_strct_byteclass__classify_bytes__strct_lex__SQuote_,_strct_byteclass__classify_bytes__strct_lex__LAngle_);
934SQuoteScan = simd_andc(EOF_mask,Temp106);
935AttListDelim = simd_or(_strct_byteclass__classify_bytes__strct_lex__Slash_,_strct_byteclass__classify_bytes__strct_lex__RAngle_);
936
937//22
938adc(carry_queue,carry_queue,carry,carry_queue);
939advance_with_carry(_strct_byteclass__classify_bytes__strct_lex__LAngle_, carry33, Temp107);
940LAngleFollow = simd_andc(Temp107,strct_CT_callouts__CtCDPI_mask_);
941ElemNamePositions = simd_andc(LAngleFollow,_strct_byteclass__classify_bytes__strct_lex__Slash_);
942EndTagSeconds = simd_and(LAngleFollow,_strct_byteclass__classify_bytes__strct_lex__Slash_);
943
944//23
945adc(carry_queue,carry_queue,carry,carry_queue);
946adc128(ElemNamePositions, _strct_byteclass__classify_bytes__strct_lex__NameScan_, carry34, Temp108);
947ElemNameFollows = simd_andc(Temp108,_strct_byteclass__classify_bytes__strct_lex__NameScan_);
948ParseError_0 = simd_and(ElemNamePositions,ElemNameFollows);
949sbb128(ElemNameFollows, ElemNamePositions, carry_brw2, strct_callouts__ElemNames_);
950AttNameStarts = AllZero;
951AttNameFollows = AllZero;
952EqToCheck = AllZero;
953AttValStarts = AllZero;
954AttValEnds = AllZero;
955AttValFollows = AllZero;
956
957//24
958adc(carry_queue,carry_queue,carry,carry_queue);
959adc128(ElemNameFollows, _strct_byteclass__classify_bytes__strct_lex__WS_, carry35, Temp109);
960AfterWS = simd_andc(Temp109,_strct_byteclass__classify_bytes__strct_lex__WS_);
961AttListEnd = simd_and(AfterWS,AttListDelim);
962AttNameStart = simd_andc(AfterWS,AttListDelim);
963Temp110 = simd_and(ElemNameFollows,AttNameStart);
964ParseError_1 = simd_or(ParseError_0,Temp110);
965
966stag_carry_queue = stag_carry_in;
967stag_carry_in = Carry0;
968
969clc();
970while ((bitblock_has_bit(AttNameStart))||(test_carry(stag_carry_queue))) {
971
972    AttNameStarts = simd_or(AttNameStarts,AttNameStart);
973// 1
974    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
975    adc128(AttNameStart, _strct_byteclass__classify_bytes__strct_lex__NameScan_, carry36, Temp115);
976    AttNameFollow = simd_andc(Temp115,_strct_byteclass__classify_bytes__strct_lex__NameScan_);
977    AttNameFollows = simd_or(AttNameFollows,AttNameFollow);
978//  2
979    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
980    adc128(AttNameFollow, _strct_byteclass__classify_bytes__strct_lex__WS_, carry37, Temp121);
981    EqExpected = simd_andc(Temp121,_strct_byteclass__classify_bytes__strct_lex__WS_);
982    EqToCheck = simd_or(EqToCheck,EqExpected);
983//  3
984    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
985    advance_with_carry(EqExpected, carry38, Temp127);
986//  4
987    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
988    adc128(Temp127, _strct_byteclass__classify_bytes__strct_lex__WS_, carry39, Temp129);
989    AttValPos = simd_andc(Temp129,_strct_byteclass__classify_bytes__strct_lex__WS_);
990    AttValStarts = simd_or(AttValStarts,AttValPos);
991    DQuoteAttVal = simd_and(AttValPos,_strct_byteclass__classify_bytes__strct_lex__DQuote_);
992    SQuoteAttVal = simd_and(AttValPos,_strct_byteclass__classify_bytes__strct_lex__SQuote_);
993//  5
994    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
995    advance_with_carry(DQuoteAttVal, carry40, Temp139);
996//  6
997    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
998    adc128(Temp139, DQuoteScan, carry41, Temp141);
999    DQuoteAttEnd = simd_andc(Temp141,DQuoteScan);
1000//  7
1001    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
1002    advance_with_carry(SQuoteAttVal, carry42, Temp145);
1003//  8
1004    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
1005    adc128(Temp145, SQuoteScan, carry43, Temp147);
1006    SQuoteAttEnd = simd_andc(Temp147,SQuoteScan);
1007    AttValEnd = simd_or(DQuoteAttEnd,SQuoteAttEnd);
1008    AttValEnds = simd_or(AttValEnds,AttValEnd);
1009//  9
1010    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
1011    advance_with_carry(AttValEnd, carry44, AttValFollow);
1012    AttValFollows = simd_or(AttValFollows,AttValFollow);
1013//  10
1014    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
1015    adc128(AttValFollow, _strct_byteclass__classify_bytes__strct_lex__WS_, carry45, Temp159);
1016    adc(stag_carry_queue,stag_carry_queue,carry,stag_carry_queue);
1017    AfterWS = simd_andc(Temp159,_strct_byteclass__classify_bytes__strct_lex__WS_);
1018    Temp164 = simd_and(AfterWS,AttListDelim);
1019    AttListEnd = simd_or(AttListEnd,Temp164);
1020    AttNameStart = simd_andc(AfterWS,AttListDelim);
1021
1022    stag_carry_in |= stag_carry_queue;
1023    stag_carry_queue = Carry0;
1024
1025}
1026
1027stag_carry_in = stag_carry_in << ((sizeof(CarryType)<<3) - 10);
1028
1029sbb128(AttNameFollows, AttNameStarts, carry_brw3, strct_callouts__AttNames_);
1030Temp167 = simd_and(AttListEnd,_strct_byteclass__classify_bytes__strct_lex__Slash_);
1031
1032clc();
1033//25
1034adc(carry_queue,carry_queue,carry,carry_queue);
1035advance_with_carry(Temp167, carry46, strct_callouts__EmptyTagMarks_);
1036Temp168 = simd_and(AttValFollows,AttNameStarts);
1037ParseError_2 = simd_or(ParseError_1,Temp168);
1038Temp169 = simd_and(AttNameStarts,AttNameFollows);
1039ParseError_3 = simd_or(ParseError_2,Temp169);
1040Temp170 = simd_andc(EqToCheck,_strct_byteclass__classify_bytes__strct_lex__Equals_);
1041ParseError_4 = simd_or(ParseError_3,Temp170);
1042Temp171 = simd_or(_strct_byteclass__classify_bytes__strct_lex__DQuote_,_strct_byteclass__classify_bytes__strct_lex__SQuote_);
1043Temp172 = simd_andc(AttValStarts,Temp171);
1044ParseError_5 = simd_or(ParseError_4,Temp172);
1045Temp173 = simd_andc(AttValEnds,Temp171);
1046ParseError_6 = simd_or(ParseError_5,Temp173);
1047Temp174 = simd_andc(strct_callouts__EmptyTagMarks_,_strct_byteclass__classify_bytes__strct_lex__RAngle_);
1048ParseError_7 = simd_or(ParseError_6,Temp174);
1049
1050//26
1051adc(carry_queue,carry_queue,carry,carry_queue);
1052advance_with_carry(EndTagSeconds, carry47, Temp175);
1053
1054//27
1055adc(carry_queue,carry_queue,carry,carry_queue);
1056adc128(Temp175, _strct_byteclass__classify_bytes__strct_lex__NameScan_, carry48, Temp176);
1057Temp177 = simd_andc(Temp176,_strct_byteclass__classify_bytes__strct_lex__NameScan_);
1058
1059//28
1060adc(carry_queue,carry_queue,carry,carry_queue);
1061adc128(Temp177, _strct_byteclass__classify_bytes__strct_lex__WS_, carry49, Temp178);
1062EndTagEnds = simd_andc(Temp178,_strct_byteclass__classify_bytes__strct_lex__WS_);
1063Temp179 = simd_andc(EndTagEnds,_strct_byteclass__classify_bytes__strct_lex__RAngle_);
1064ParseError = simd_or(ParseError_7,Temp179);
1065strct_callouts__error_ = simd_or(ParseError_7,Temp179);
1066_parse_refs_Ref2 = simd_andc(_strct_byteclass__classify_bytes__strct_lex__RefStart_scope_,strct_CT_callouts__CtCDPI_mask_);
1067_parse_refs_NumRef2 = simd_and(_parse_refs_Ref2,_strct_byteclass__classify_bytes__strct_lex__Hash_);
1068_parse_refs_GenRef2 = simd_andc(_parse_refs_Ref2,_strct_byteclass__classify_bytes__strct_lex__Hash_);
1069
1070//29
1071adc(carry_queue,carry_queue,carry,carry_queue);
1072advance_with_carry(_parse_refs_NumRef2, carry50, _parse_refs_NumRef3);
1073_parse_refs_HexRef3 = simd_and(_parse_refs_NumRef3,_strct_byteclass__classify_bytes__strct_lex__x_);
1074_parse_refs_DecRef3 = simd_andc(_parse_refs_NumRef3,_strct_byteclass__classify_bytes__strct_lex__x_);
1075
1076//30
1077adc(carry_queue,carry_queue,carry,carry_queue);
1078advance_with_carry(_parse_refs_HexRef3, carry51, _parse_refs_HexRef4);
1079
1080//31
1081adc(carry_queue,carry_queue,carry,carry_queue);
1082adc128(_parse_refs_GenRef2, _strct_byteclass__classify_bytes__strct_lex__NameScan_, carry52, Temp180);
1083_parse_refs_GenRefEnds = simd_andc(Temp180,_strct_byteclass__classify_bytes__strct_lex__NameScan_);
1084
1085//32
1086adc(carry_queue,carry_queue,carry,carry_queue);
1087adc128(_parse_refs_DecRef3, _strct_byteclass__classify_bytes__strct_lex__Digit_, carry53, Temp181);
1088_parse_refs_DecRefEnds = simd_andc(Temp181,_strct_byteclass__classify_bytes__strct_lex__Digit_);
1089
1090//33
1091adc(carry_queue,carry_queue,carry,carry_queue);
1092adc128(_parse_refs_HexRef4, _strct_byteclass__classify_bytes__strct_lex__Hex_, carry54, Temp182);
1093_parse_refs_HexRefEnds = simd_andc(Temp182,_strct_byteclass__classify_bytes__strct_lex__Hex_);
1094_parse_refs_Error_10 = simd_andc(_parse_refs_DecRef3,_strct_byteclass__classify_bytes__strct_lex__Digit_);
1095Temp183 = simd_andc(_parse_refs_HexRef4,_strct_byteclass__classify_bytes__strct_lex__Hex_);
1096_parse_refs_Error_11 = simd_or(_parse_refs_Error_10,Temp183);
1097Temp184 = simd_or(_parse_refs_GenRefEnds,_parse_refs_DecRefEnds);
1098Temp185 = simd_or(Temp184,_parse_refs_HexRefEnds);
1099Temp186 = simd_andc(Temp185,_strct_byteclass__classify_bytes__strct_lex__Semicolon_);
1100_parse_refs_Error = simd_or(_parse_refs_Error_11,Temp186);
1101sbb128(_parse_refs_GenRefEnds, _parse_refs_GenRef2, carry_brw4, _parse_refs_strct_CallOuts__GenRefs_);
1102strct_refs__error_ = simd_or(_parse_refs_Error_11,Temp186);
1103sbb128(_parse_refs_GenRefEnds, _parse_refs_GenRef2, carry_brw4, strct_refs__GenRefs_);
1104Temp187 = simd_or(strct_CT_callouts__CtCDPI_mask_,strct_callouts__Tags_);
1105_validate_no_CD_end_ret = simd_andc(strct_lex__CD_end_,Temp187);
1106Temp188 = simd_or(_strct_u8u16__validate_utf8__error_mask,_validate_xmlchar_ret);
1107Temp189 = simd_or(Temp188,strct_CT_callouts__error_);
1108Temp190 = simd_or(Temp189,ParseError);
1109Temp191 = simd_or(Temp190,_validate_no_CD_end_ret);
1110error_mask = simd_or(Temp191,_parse_refs_Error);
1111delmask = simd_or(strct_control__CRLF_,strct_refs__delmask_);
1112qname_stream = simd_or(strct_callouts__ElemNames_,strct_callouts__AttNames_);
1113ncname_stream = simd_or(strct_CT_callouts__PI_name_,_parse_refs_strct_CallOuts__GenRefs_);
1114name_stream = simd_or(qname_stream,ncname_stream);
1115
1116//34
1117adc(carry_queue,carry_queue,carry,carry_queue);
1118advance_with_carry(name_stream, carry55, Temp192);
1119adc(carry_queue,carry_queue,carry,carry_queue);
1120
1121carry_queue = carry_queue << ((sizeof(CarryType)<<3) - 34);
1122
1123name_start = simd_andc(name_stream,Temp192);
1124name_start_check = simd_andc(name_start,_strct_byteclass__classify_bytes__strct_lex__ASCII_name_start_);
1125Temp193 = simd_andc(name_stream,name_start);
1126Temp194 = simd_or(Temp193,nmtoken_stream);
1127Temp195 = simd_andc(Temp194,_strct_byteclass__classify_bytes__strct_lex__ASCII_name_char_);
1128name_check = simd_andc(Temp195,_strct_byteclass__classify_bytes__strct_u8__suffix_);
1129
1130
1131        if (bitblock_has_bit(error_mask)) {
1132          errpos = block_pos + buf_pos + count_forward_zeroes(error_mask);
1133          fprintf(stderr, "error found at position %i\n",errpos);
1134          exit(-1);
1135        }
1136       
1137        block_pos += BLOCK_SIZE;
1138      }
1139
1140    PERF_SEC_END(parser_timer, chars_read);
1141
1142    buf_pos += chars_read;
1143    chars_read = fread((void *)srcbuf, 1, BUFFER_SIZE, infile);
1144    block_pos = 0;
1145  }
1146}
1147
1148
1149
1150int
1151main(int argc, char * argv[]) {
1152        char * infilename, * outfilename;       
1153        FILE *infile, *outfile;
1154        struct stat fileinfo;
1155
1156        if (argc < 2) {
1157                printf("Usage: %s <filename> [<outputfile>]\n", argv[0]);
1158                exit(-1);
1159        }
1160
1161        infilename = argv[1];
1162        stat(infilename, &fileinfo);
1163        infile = fopen(infilename, "rb");
1164        if (!infile) {
1165                fprintf(stderr, "Error: cannot open %s for input.\n", infilename);
1166                exit(-1);
1167        }
1168       
1169        if (argc < 3) outfile = stdout;
1170        else {
1171                outfilename = argv[2];
1172                outfile = fopen(outfilename, "wb");
1173                if (!outfile) {
1174                        fprintf(stderr, "Error: cannot open %s for writing.\n", outfilename);
1175                        exit(-1);
1176                }
1177        }
1178
1179
1180        PERF_SEC_INIT(parser_timer);
1181
1182        do_process(infile, outfile);
1183       
1184        PERF_SEC_DUMP(parser_timer);
1185       
1186        PERF_SEC_DESTROY(parser_timer);
1187
1188        fclose(infile);
1189        fclose(outfile);
1190        return(0);
1191}
Note: See TracBrowser for help on using the repository browser.