Changeset 1050 for proto


Ignore:
Timestamp:
Mar 28, 2011, 2:04:10 PM (8 years ago)
Author:
lindanl
Message:

remove mask

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/parabix2/src/xmlwf_multithreads.cpp

    r1049 r1050  
    2626#include "TagMatcher.h"
    2727#include "LineColTracker.h"
     28BitBlock EOF_mask = simd_const_1(1);
    2829
    2930#ifdef BUFFER_PROFILING
     
    186187        return 0;
    187188}
     189
    188190  struct U8 {
    189191  BitBlock unibyte;
     
    308310};
    309311
    310   struct Masks {
    311   BitBlock EOF_mask;
    312 };
    313 
    314312  struct Check_streams {
    315313  BitBlock misc_mask;
     
    372370  struct Parse_tags {
    373371  Parse_tags() { CarryInit(carryQ, 13); }
    374   void do_block(Lex & lex, Scope1 & scope1, CtCDPI_Callouts & ctCDPI_Callouts, Tag_Callouts & tag_Callouts, Masks & masks) {
    375                 BitBlock DQuoteScan, SQuoteScan, AttListDelim, ParseError, EqToCheck;
     372  void do_block(Lex & lex, Scope1 & scope1, CtCDPI_Callouts & ctCDPI_Callouts, Tag_Callouts & tag_Callouts) {
     373                BitBlock DQuoteDelim, SQuoteDelim, AttListDelim, ParseError, EqToCheck;
    376374                BitBlock AttValEnds, AfterWS, AttListEnd, AttNameStart, AttNameFollow;
    377375                BitBlock EqExpected, AttValPos, DQuoteAttVal, SQuoteAttVal, DQuoteAttEnd;
     
    379377
    380378
    381         DQuoteScan = simd_andc(masks.EOF_mask, simd_or(lex.DQuote, lex.LAngle));
    382         SQuoteScan = simd_andc(masks.EOF_mask, simd_or(lex.SQuote, lex.LAngle));
     379        DQuoteDelim = simd_or(lex.DQuote, lex.LAngle);
     380        SQuoteDelim = simd_or(lex.SQuote, lex.LAngle);
    383381        AttListDelim = simd_or(lex.Slash, lex.RAngle);
    384382        tag_Callouts.LAngleFollow = simd_andc(scope1.LAngle, ctCDPI_Callouts.CtCDPI_mask);
     
    407405          DQuoteAttVal = simd_and(AttValPos, lex.DQuote);
    408406          SQuoteAttVal = simd_and(AttValPos, lex.SQuote);
    409           DQuoteAttEnd = BitBlock_scanthru_ci_co(DQuoteAttVal, simd_or(DQuoteAttVal, DQuoteScan), carryQ, 5);
    410           SQuoteAttEnd = BitBlock_scanthru_ci_co(SQuoteAttVal, simd_or(SQuoteAttVal, SQuoteScan), carryQ, 6);
     407          DQuoteAttEnd = BitBlock_scanto_ci_co(DQuoteAttVal, simd_andc(DQuoteDelim, DQuoteAttVal), carryQ, 5);
     408          SQuoteAttEnd = BitBlock_scanto_ci_co(SQuoteAttVal, simd_andc(SQuoteDelim, SQuoteAttVal), carryQ, 6);
    411409          AttValEnd = simd_or(DQuoteAttEnd, SQuoteAttEnd);
    412410          AttValEnds = simd_or(AttValEnds, AttValEnd);
     
    428426            DQuoteAttVal = simd_and(AttValPos, lex.DQuote);
    429427            SQuoteAttVal = simd_and(AttValPos, lex.SQuote);
    430             DQuoteAttEnd = BitBlock_scanthru_co(DQuoteAttVal, simd_or(DQuoteAttVal, DQuoteScan), subcarryQ, 3);
    431             SQuoteAttEnd = BitBlock_scanthru_co(SQuoteAttVal, simd_or(SQuoteAttVal, SQuoteScan), subcarryQ, 4);
     428            DQuoteAttEnd = BitBlock_scanto_co(DQuoteAttVal, simd_andc(DQuoteDelim, DQuoteAttVal), subcarryQ, 3);
     429            SQuoteAttEnd = BitBlock_scanto_co(SQuoteAttVal, simd_andc(SQuoteDelim, SQuoteAttVal), subcarryQ, 4);
    432430            AttValEnd = simd_or(DQuoteAttEnd, SQuoteAttEnd);
    433431            AttValEnds = simd_or(AttValEnds, AttValEnd);
     
    457455        CarryQ_Adjust(carryQ, 13);
    458456  }
    459   void do_segment(Lex lex[], Scope1 scope1[], CtCDPI_Callouts ctCDPI_Callouts[], Tag_Callouts tag_Callouts[], Masks masks[]) {
     457  void do_segment(Lex lex[], Scope1 scope1[], CtCDPI_Callouts ctCDPI_Callouts[], Tag_Callouts tag_Callouts[]) {
    460458  for (int i = 0; i < SEGMENT_BLOCKS; i++)
    461     do_block(lex[i], scope1[i], ctCDPI_Callouts[i], tag_Callouts[i], masks[i]);
     459    do_block(lex[i], scope1[i], ctCDPI_Callouts[i], tag_Callouts[i]);
    462460  }
    463461  CarryDeclare(carryQ, 13);
     
    647645
    648646  struct Parse_CtCDPI {
    649   Parse_CtCDPI() { CarryInit(carryQ, 18); }
    650   void do_block(CtCDPI_Callouts & ctCDPI_Callouts, Lex & lex, Scope1 & scope1, Masks & masks, Check_streams & check_streams) {
    651                 BitBlock CtCDPI_starts, PI_start, CtCD_start, CtCDPI_start, DoubleHyphen;
    652                 BitBlock PI_end, CtCDPI_scan, Ct_end_scan, CD_end_scan, PI_end_scan;
    653                 BitBlock CtCDPI_Cursor, PI_Cursor, CD_Ct_Cursor, CD_Cursor, Ct_Cursor;
    654                 BitBlock Ct_errors, PI_name_end;
     647  Parse_CtCDPI() { CarryInit(carryQ, 19); }
     648  void do_block(CtCDPI_Callouts & ctCDPI_Callouts, Lex & lex, Scope1 & scope1, Check_streams & check_streams) {
     649                BitBlock CtCDPI_starts, Ct_errors, PI_start, CtCD_start, CtCDPI_start;
     650                BitBlock DoubleHyphen, PI_end, CtCDPI_Cursor, PI_Cursor, CD_Ct_Cursor;
     651                BitBlock CD_Cursor, Ct_Cursor, PI_name_end;
    655652
    656653  CtCDPI_Cursor = sisd_from_int(1);
     
    668665        ctCDPI_Callouts.error = simd_const_1(0);
    669666        CtCDPI_starts = simd_const_1(0);
     667        Ct_errors = simd_const_1(0);
    670668        if ((bitblock_has_bit(lex.RBracket) || CarryTest(carryQ, 0, 2))) {
    671669          scope1.RBracket = BitBlock_advance_ci_co(lex.RBracket, carryQ, 0);
     
    680678        DoubleHyphen = simd_and(scope1.Hyphen, lex.Hyphen);
    681679        PI_end = simd_and(scope1.QMark, lex.RAngle);
    682         CtCDPI_scan = simd_andc(masks.EOF_mask, CtCDPI_start);
    683         Ct_end_scan = simd_andc(masks.EOF_mask, DoubleHyphen);
    684         CD_end_scan = simd_andc(masks.EOF_mask, ctCDPI_Callouts.CD_end);
    685         PI_end_scan = simd_andc(masks.EOF_mask, PI_end);
    686         CtCDPI_Cursor = BitBlock_scanthru_ci_co(CtCDPI_Cursor, CtCDPI_scan, carryQ, 2);
    687         CtCDPI_Cursor = simd_and(CtCDPI_Cursor, masks.EOF_mask);
    688         if ((bitblock_has_bit(CtCDPI_Cursor) || CarryTest(carryQ, 3, 13))) {
     680        CtCDPI_Cursor = BitBlock_scanto_ci_co(CtCDPI_Cursor, CtCDPI_start, carryQ, 2);
     681        CtCDPI_Cursor = simd_and(CtCDPI_Cursor, EOF_mask);
     682        if ((bitblock_has_bit(CtCDPI_Cursor) || CarryTest(carryQ, 3, 14))) {
    689683          CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    690684          PI_Cursor = simd_and(CtCDPI_Cursor, PI_start);
     
    697691          Ct_Cursor = BitBlock_advance_ci_co(Ct_Cursor, carryQ, 4);
    698692          Ct_errors = simd_or(Ct_errors, simd_andc(Ct_Cursor, lex.Hyphen));
    699           Ct_Cursor = BitBlock_advance_ci_co(Ct_Cursor, carryQ, 5);
    700           Ct_end_scan = simd_or(Ct_end_scan, Ct_Cursor);
    701           PI_Cursor = BitBlock_advance_ci_co(PI_Cursor, carryQ, 6);
     693          Ct_Cursor = BitBlock_advance_ci_co(BitBlock_advance_ci_co(Ct_Cursor, carryQ, 5), carryQ, 6);
     694          PI_Cursor = BitBlock_advance_ci_co(PI_Cursor, carryQ, 7);
    702695          ctCDPI_Callouts.PI_name_starts = simd_or(ctCDPI_Callouts.PI_name_starts, PI_Cursor);
    703           PI_name_end = BitBlock_scanthru_ci_co(PI_Cursor, lex.NameScan, carryQ, 7);
     696          PI_name_end = BitBlock_scanthru_ci_co(PI_Cursor, lex.NameScan, carryQ, 8);
    704697          ctCDPI_Callouts.PI_name_ends = simd_or(ctCDPI_Callouts.PI_name_ends, PI_name_end);
    705           PI_Cursor = BitBlock_scanthru_ci_co(PI_name_end, PI_end_scan, carryQ, 8);
    706           CD_Cursor = BitBlock_scanthru_ci_co(CD_Cursor, CD_end_scan, carryQ, 9);
    707           Ct_Cursor = BitBlock_advance_ci_co(BitBlock_scanthru_ci_co(Ct_Cursor, Ct_end_scan, carryQ, 10), carryQ, 11);
     698          PI_Cursor = BitBlock_scanto_ci_co(PI_name_end, PI_end, carryQ, 9);
     699          CD_Cursor = BitBlock_scanto_ci_co(CD_Cursor, ctCDPI_Callouts.CD_end, carryQ, 10);
     700          Ct_Cursor = BitBlock_advance_ci_co(BitBlock_scanto_ci_co(Ct_Cursor, DoubleHyphen, carryQ, 11), carryQ, 12);
    708701          ctCDPI_Callouts.PI_ends = simd_or(ctCDPI_Callouts.PI_ends, PI_Cursor);
    709702          ctCDPI_Callouts.CD_ends = simd_or(ctCDPI_Callouts.CD_ends, CD_Cursor);
    710703          ctCDPI_Callouts.Ct_ends = simd_or(ctCDPI_Callouts.Ct_ends, Ct_Cursor);
    711704          CtCDPI_Cursor = simd_or(simd_or(PI_Cursor, CD_Cursor), Ct_Cursor);
    712           CtCDPI_Cursor = BitBlock_scanthru_ci_co(CtCDPI_Cursor, CtCDPI_scan, carryQ, 12);
    713           CtCDPI_Cursor = simd_and(CtCDPI_Cursor, masks.EOF_mask);
    714           ctCDPI_Callouts.CtCDPI_mask = BitBlock_sub_ci_co(BitBlock_advance_ci_co(simd_or(simd_or(ctCDPI_Callouts.CD_ends, ctCDPI_Callouts.Ct_ends), ctCDPI_Callouts.PI_ends), carryQ, 13), CtCDPI_starts, carryQ, 14);
     705          CtCDPI_Cursor = BitBlock_scanto_ci_co(CtCDPI_Cursor, CtCDPI_start, carryQ, 13);
     706          CtCDPI_Cursor = simd_and(CtCDPI_Cursor, EOF_mask);
     707          ctCDPI_Callouts.CtCDPI_mask = BitBlock_sub_ci_co(BitBlock_advance_ci_co(simd_or(simd_or(ctCDPI_Callouts.CD_ends, ctCDPI_Callouts.Ct_ends), ctCDPI_Callouts.PI_ends), carryQ, 14), CtCDPI_starts, carryQ, 15);
    715708          ctCDPI_Callouts.error = simd_or(Ct_errors, simd_andc(ctCDPI_Callouts.Ct_ends, lex.RAngle));
    716           ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(BitBlock_advance_ci_co(simd_andc(ctCDPI_Callouts.PI_name_ends, lex.WS), carryQ, 15), PI_end));
     709          ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(BitBlock_advance_ci_co(simd_andc(ctCDPI_Callouts.PI_name_ends, lex.WS), carryQ, 16), PI_end));
    717710          ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_and(ctCDPI_Callouts.PI_name_starts, ctCDPI_Callouts.PI_name_ends));
    718           ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(ctCDPI_Callouts.CtCDPI_mask, masks.EOF_mask));
     711          ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(ctCDPI_Callouts.CtCDPI_mask, EOF_mask));
    719712          while (bitblock_has_bit(CtCDPI_Cursor)) {
    720             CarryDeclare(subcarryQ, 13);
    721             CarryInit(subcarryQ, 13);
     713            CarryDeclare(subcarryQ, 14);
     714            CarryInit(subcarryQ, 14);
    722715            CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    723716            PI_Cursor = simd_and(CtCDPI_Cursor, PI_start);
     
    730723            Ct_Cursor = BitBlock_advance_co(Ct_Cursor, subcarryQ, 1);
    731724            Ct_errors = simd_or(Ct_errors, simd_andc(Ct_Cursor, lex.Hyphen));
    732             Ct_Cursor = BitBlock_advance_co(Ct_Cursor, subcarryQ, 2);
    733             Ct_end_scan = simd_or(Ct_end_scan, Ct_Cursor);
    734             PI_Cursor = BitBlock_advance_co(PI_Cursor, subcarryQ, 3);
     725            Ct_Cursor = BitBlock_advance_co(BitBlock_advance_co(Ct_Cursor, subcarryQ, 2), subcarryQ, 3);
     726            PI_Cursor = BitBlock_advance_co(PI_Cursor, subcarryQ, 4);
    735727            ctCDPI_Callouts.PI_name_starts = simd_or(ctCDPI_Callouts.PI_name_starts, PI_Cursor);
    736             PI_name_end = BitBlock_scanthru_co(PI_Cursor, lex.NameScan, subcarryQ, 4);
     728            PI_name_end = BitBlock_scanthru_co(PI_Cursor, lex.NameScan, subcarryQ, 5);
    737729            ctCDPI_Callouts.PI_name_ends = simd_or(ctCDPI_Callouts.PI_name_ends, PI_name_end);
    738             PI_Cursor = BitBlock_scanthru_co(PI_name_end, PI_end_scan, subcarryQ, 5);
    739             CD_Cursor = BitBlock_scanthru_co(CD_Cursor, CD_end_scan, subcarryQ, 6);
    740             Ct_Cursor = BitBlock_advance_co(BitBlock_scanthru_co(Ct_Cursor, Ct_end_scan, subcarryQ, 7), subcarryQ, 8);
     730            PI_Cursor = BitBlock_scanto_co(PI_name_end, PI_end, subcarryQ, 6);
     731            CD_Cursor = BitBlock_scanto_co(CD_Cursor, ctCDPI_Callouts.CD_end, subcarryQ, 7);
     732            Ct_Cursor = BitBlock_advance_co(BitBlock_scanto_co(Ct_Cursor, DoubleHyphen, subcarryQ, 8), subcarryQ, 9);
    741733            ctCDPI_Callouts.PI_ends = simd_or(ctCDPI_Callouts.PI_ends, PI_Cursor);
    742734            ctCDPI_Callouts.CD_ends = simd_or(ctCDPI_Callouts.CD_ends, CD_Cursor);
    743735            ctCDPI_Callouts.Ct_ends = simd_or(ctCDPI_Callouts.Ct_ends, Ct_Cursor);
    744736            CtCDPI_Cursor = simd_or(simd_or(PI_Cursor, CD_Cursor), Ct_Cursor);
    745             CtCDPI_Cursor = BitBlock_scanthru_co(CtCDPI_Cursor, CtCDPI_scan, subcarryQ, 9);
    746             CtCDPI_Cursor = simd_and(CtCDPI_Cursor, masks.EOF_mask);
    747             ctCDPI_Callouts.CtCDPI_mask = BitBlock_sub_co(BitBlock_advance_co(simd_or(simd_or(ctCDPI_Callouts.CD_ends, ctCDPI_Callouts.Ct_ends), ctCDPI_Callouts.PI_ends), subcarryQ, 10), CtCDPI_starts, subcarryQ, 11);
     737            CtCDPI_Cursor = BitBlock_scanto_co(CtCDPI_Cursor, CtCDPI_start, subcarryQ, 10);
     738            CtCDPI_Cursor = simd_and(CtCDPI_Cursor, EOF_mask);
     739            ctCDPI_Callouts.CtCDPI_mask = BitBlock_sub_co(BitBlock_advance_co(simd_or(simd_or(ctCDPI_Callouts.CD_ends, ctCDPI_Callouts.Ct_ends), ctCDPI_Callouts.PI_ends), subcarryQ, 11), CtCDPI_starts, subcarryQ, 12);
    748740            ctCDPI_Callouts.error = simd_or(Ct_errors, simd_andc(ctCDPI_Callouts.Ct_ends, lex.RAngle));
    749             ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(BitBlock_advance_co(simd_andc(ctCDPI_Callouts.PI_name_ends, lex.WS), subcarryQ, 12), PI_end));
     741            ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(BitBlock_advance_co(simd_andc(ctCDPI_Callouts.PI_name_ends, lex.WS), subcarryQ, 13), PI_end));
    750742            ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_and(ctCDPI_Callouts.PI_name_starts, ctCDPI_Callouts.PI_name_ends));
    751             ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(ctCDPI_Callouts.CtCDPI_mask, masks.EOF_mask));
    752             CarryCombine(carryQ, subcarryQ, 3, 13);
     743            ctCDPI_Callouts.error = simd_or(ctCDPI_Callouts.error, simd_andc(ctCDPI_Callouts.CtCDPI_mask, EOF_mask));
     744            CarryCombine(carryQ, subcarryQ, 3, 14);
    753745          }
    754746        }
    755747        else {
    756           CarryDequeueEnqueue(carryQ, 3, 13);
     748          CarryDequeueEnqueue(carryQ, 3, 14);
    757749        }
    758         check_streams.misc_mask = simd_and(simd_or(simd_or(simd_or(lex.WS, lex.LAngle), BitBlock_sub_ci_co(BitBlock_advance_ci_co(simd_or(ctCDPI_Callouts.Ct_ends, ctCDPI_Callouts.PI_ends), carryQ, 16), simd_or(ctCDPI_Callouts.Ct_starts, ctCDPI_Callouts.PI_starts), carryQ, 17)), CtCDPI_starts), masks.EOF_mask);
    759         CarryQ_Adjust(carryQ, 18);
    760   }
    761   void do_segment(CtCDPI_Callouts ctCDPI_Callouts[], Lex lex[], Scope1 scope1[], Masks masks[], Check_streams check_streams[]) {
     750        check_streams.misc_mask = simd_and(simd_or(simd_or(simd_or(lex.WS, lex.LAngle), BitBlock_sub_ci_co(BitBlock_advance_ci_co(simd_or(ctCDPI_Callouts.Ct_ends, ctCDPI_Callouts.PI_ends), carryQ, 17), simd_or(ctCDPI_Callouts.Ct_starts, ctCDPI_Callouts.PI_starts), carryQ, 18)), CtCDPI_starts), EOF_mask);
     751        CarryQ_Adjust(carryQ, 19);
     752  }
     753  void do_segment(CtCDPI_Callouts ctCDPI_Callouts[], Lex lex[], Scope1 scope1[], Check_streams check_streams[]) {
    762754  for (int i = 0; i < SEGMENT_BLOCKS; i++)
    763     do_block(ctCDPI_Callouts[i], lex[i], scope1[i], masks[i], check_streams[i]);
    764   }
    765   CarryDeclare(carryQ, 18);
     755    do_block(ctCDPI_Callouts[i], lex[i], scope1[i], check_streams[i]);
     756  }
     757  CarryDeclare(carryQ, 19);
    766758  };
    767759
    768760  struct Do_check_streams {
    769761
    770   void do_block(CtCDPI_Callouts & ctCDPI_Callouts, Tag_Callouts & tag_Callouts, Lex & lex, U8 & u8, Scope1 & scope1, Ref_Callouts & ref_Callouts, Xml_names & xml_names, Check_streams & check_streams, Masks & masks) {
     762  void do_block(CtCDPI_Callouts & ctCDPI_Callouts, Tag_Callouts & tag_Callouts, Lex & lex, U8 & u8, Scope1 & scope1, Ref_Callouts & ref_Callouts, Xml_names & xml_names, Check_streams & check_streams) {
    771763                BitBlock CD_end_error;
    772764
    773765
    774766        CD_end_error = simd_andc(ctCDPI_Callouts.CD_end, simd_or(ctCDPI_Callouts.CtCDPI_mask, tag_Callouts.AttVal_spans));
    775         check_streams.error_mask = simd_or(simd_or(simd_or(simd_or(simd_or(simd_or(simd_or(simd_and(lex.error, masks.EOF_mask), u8.error), u8.FFFE_FFFF), ctCDPI_Callouts.error), tag_Callouts.error), CD_end_error), ref_Callouts.error), xml_names.namespace_error);
     767        check_streams.error_mask = simd_or(simd_or(simd_or(simd_or(simd_or(simd_or(simd_or(simd_and(lex.error, EOF_mask), u8.error), u8.FFFE_FFFF), ctCDPI_Callouts.error), tag_Callouts.error), CD_end_error), ref_Callouts.error), xml_names.namespace_error);
    776768        check_streams.tag_marks = simd_or(simd_or(tag_Callouts.EmptyTag_marks, tag_Callouts.LAngleFollow), tag_Callouts.AttName_starts);
    777769        check_streams.name_follows = simd_or(tag_Callouts.ElemName_ends, tag_Callouts.AttName_ends);
    778770        check_streams.att_refs = simd_and(tag_Callouts.AttVal_spans, scope1.RefStart);
    779771  }
    780   void do_segment(CtCDPI_Callouts ctCDPI_Callouts[], Tag_Callouts tag_Callouts[], Lex lex[], U8 u8[], Scope1 scope1[], Ref_Callouts ref_Callouts[], Xml_names xml_names[], Check_streams check_streams[], Masks masks[]) {
     772  void do_segment(CtCDPI_Callouts ctCDPI_Callouts[], Tag_Callouts tag_Callouts[], Lex lex[], U8 u8[], Scope1 scope1[], Ref_Callouts ref_Callouts[], Xml_names xml_names[], Check_streams check_streams[]) {
    781773  for (int i = 0; i < SEGMENT_BLOCKS; i++)
    782     do_block(ctCDPI_Callouts[i], tag_Callouts[i], lex[i], u8[i], scope1[i], ref_Callouts[i], xml_names[i], check_streams[i], masks[i]);
     774    do_block(ctCDPI_Callouts[i], tag_Callouts[i], lex[i], u8[i], scope1[i], ref_Callouts[i], xml_names[i], check_streams[i]);
    783775  }
    784776
     
    842834  };
    843835
     836
    844837static inline void s2p_do_block(BytePack U8[], Basis_bits & basis_bits) {
    845838  s2p(U8[0], U8[1], U8[2], U8[3], U8[4], U8[5], U8[6], U8[7],
    846839        basis_bits.bit_0, basis_bits.bit_1, basis_bits.bit_2, basis_bits.bit_3, basis_bits.bit_4, basis_bits.bit_5, basis_bits.bit_6, basis_bits.bit_7);
     840}
     841
     842static inline void s2p_do_final_block(BytePack U8[], Basis_bits & basis_bits, BitBlock EOF_mask) {
     843  s2p_do_block(U8, basis_bits);
     844  basis_bits.bit_0 = simd_and(basis_bits.bit_0, EOF_mask);
     845  basis_bits.bit_1 = simd_and(basis_bits.bit_1, EOF_mask);
     846  basis_bits.bit_2 = simd_and(basis_bits.bit_2, EOF_mask);
     847  basis_bits.bit_3 = simd_and(basis_bits.bit_3, EOF_mask);
     848  basis_bits.bit_4 = simd_and(basis_bits.bit_4, EOF_mask);
     849  basis_bits.bit_5 = simd_and(basis_bits.bit_5, EOF_mask);
     850  basis_bits.bit_6 = simd_and(basis_bits.bit_6, EOF_mask);
     851  basis_bits.bit_7 = simd_and(basis_bits.bit_7, EOF_mask);
    847852}
    848853
     
    923928
    924929          struct Basis_bits basis_bits[SEGMENT_BLOCKS];
    925 
    926           struct Masks masks[SEGMENT_BLOCKS];
    927930
    928931          struct Check_streams check_streams[SEGMENT_BLOCKS];
     
    10051008      n->next_ = 0;
    10061009      //do pass1
    1007       for(int j=0;j<SEGMENT_BLOCKS;j++)
    1008           n->para_data.masks[j].EOF_mask = simd_const_1(1);
    1009 
    10101010      char * srcptr = n->para_data.srcbuf + OVERLAP_BUFSIZE;
    10111011      memmove(n->para_data.srcbuf, overlap_buffer, 2*overlap_bytes);
     
    10261026
    10271027                  add_scope_streams.do_segment(head2_->next_->para_data.lex, head2_->next_->para_data.scope1);
    1028                   parse_CtCDPI.do_segment(head2_->next_->para_data.ctCDPI_Callouts, head2_->next_->para_data.lex, head2_->next_->para_data.scope1, head2_->next_->para_data.masks, head2_->next_->para_data.check_streams);
     1028                  parse_CtCDPI.do_segment(head2_->next_->para_data.ctCDPI_Callouts, head2_->next_->para_data.lex, head2_->next_->para_data.scope1, head2_->next_->para_data.check_streams);
    10291029                  parse_refs.do_segment(head2_->next_->para_data.lex, head2_->next_->para_data.scope1, head2_->next_->para_data.ctCDPI_Callouts, head2_->next_->para_data.ref_Callouts);
    10301030
     
    10431043      {
    10441044          //do pass3
    1045           parse_tags.do_segment(head3_->next_->para_data.lex, head3_->next_->para_data.scope1, head3_->next_->para_data.ctCDPI_Callouts, head3_->next_->para_data.tag_Callouts, head3_->next_->para_data.masks);
     1045          parse_tags.do_segment(head3_->next_->para_data.lex, head3_->next_->para_data.scope1, head3_->next_->para_data.ctCDPI_Callouts, head3_->next_->para_data.tag_Callouts);
    10461046                  validate_xml_names.do_segment(head3_->next_->para_data.ctCDPI_Callouts, head3_->next_->para_data.ref_Callouts, head3_->next_->para_data.tag_Callouts, head3_->next_->para_data.lex, head3_->next_->para_data.u8, head3_->next_->para_data.xml_names, head3_->next_->para_data.check_streams);
    1047                   do_check_streams.do_segment(head3_->next_->para_data.ctCDPI_Callouts, head3_->next_->para_data.tag_Callouts, head3_->next_->para_data.lex, head3_->next_->para_data.u8, head3_->next_->para_data.scope1, head3_->next_->para_data.ref_Callouts, head3_->next_->para_data.xml_names, head3_->next_->para_data.check_streams, head3_->next_->para_data.masks);
     1047                  do_check_streams.do_segment(head3_->next_->para_data.ctCDPI_Callouts, head3_->next_->para_data.tag_Callouts, head3_->next_->para_data.lex, head3_->next_->para_data.u8, head3_->next_->para_data.scope1, head3_->next_->para_data.ref_Callouts, head3_->next_->para_data.xml_names, head3_->next_->para_data.check_streams);
    10481048
    10491049          store_release(&head3_, head3_->next_);
     
    12681268        return(0);
    12691269}
    1270 
Note: See TracChangeset for help on using the changeset viewer.