Ignore:
Timestamp:
Dec 12, 2012, 6:10:33 PM (6 years ago)
Author:
cameron
Message:

Various fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icXML/icXML-devel/src/icxmlc/XMLUTF16CharacterSetAdapter.hpp

    r2728 r2774  
    77/*
    88 * @author Nigel Medforth, nigelm -at- interational-characters.com
    9  * @version $Id: XMLUTF16CharacterSetAdapter.hpp 217 2012-12-03 15:00:50Z robc $
     9 * @version $Id: XMLUTF16CharacterSetAdapter.hpp 224 2012-12-12 03:31:56Z nigelm $
    1010 *
    1111 */
     
    204204
    205205  struct Callouts {
    206   BitBlock CtCDPI_marks;
     206  BitBlock PI_openers;
     207  BitBlock CtCD_openers;
    207208  BitBlock CtCDPI_closers;
    208209  BitBlock CtCDPI_content_starts;
     
    382383              AttNameFollow = subcarryQ.BitBlock_scanthru_ci_co(AttNameStart, lex.NameScan, simd<1>::constant<0>(), 0);
    383384              callouts.Symbol_ends = simd_or(callouts.Symbol_ends, AttNameFollow);
    384               if ((bitblock::any(simd_and(AttNameFollow, lex.WS)) || subcarryQ.CarryTest(3, 1))) {
     385              if (bitblock::any(simd_and(AttNameFollow, lex.WS))) {
    385386                EqExpected = subcarryQ.BitBlock_scanthru_ci_co(AttNameFollow, lex.WS, simd<1>::constant<0>(), 1);
    386387              }
     
    405406              callouts.AttCloseQuotes = simd_or(callouts.AttCloseQuotes, AttValEnd);
    406407              AttValFollow = subcarryQ.BitBlock_advance_ci_co(AttValEnd, simd<1>::constant<0>(), 5);
    407               if ((bitblock::any(simd_and(AttValFollow, lex.WS)) || subcarryQ.CarryTest(8, 1))) {
     408              if (bitblock::any(simd_and(AttValFollow, lex.WS))) {
    408409                AfterWS = subcarryQ.BitBlock_scanthru_ci_co(AttValFollow, lex.WS, simd<1>::constant<0>(), 6);
    409410              }
     
    533534              AttNameFollow = subcarryQ.BitBlock_scanthru_ci_co(AttNameStart, lex.NameScan, simd<1>::constant<0>(), 0);
    534535              callouts.Symbol_ends = simd_or(callouts.Symbol_ends, AttNameFollow);
    535               if ((bitblock::any(simd_and(AttNameFollow, lex.WS)) || subcarryQ.CarryTest(3, 1))) {
     536              if (bitblock::any(simd_and(AttNameFollow, lex.WS))) {
    536537                EqExpected = subcarryQ.BitBlock_scanthru_ci_co(AttNameFollow, lex.WS, simd<1>::constant<0>(), 1);
    537538              }
     
    556557              callouts.AttCloseQuotes = simd_or(callouts.AttCloseQuotes, AttValEnd);
    557558              AttValFollow = subcarryQ.BitBlock_advance_ci_co(AttValEnd, simd<1>::constant<0>(), 5);
    558               if ((bitblock::any(simd_and(AttValFollow, lex.WS)) || subcarryQ.CarryTest(8, 1))) {
     559              if (bitblock::any(simd_and(AttValFollow, lex.WS))) {
    559560                AfterWS = subcarryQ.BitBlock_scanthru_ci_co(AttValFollow, lex.WS, simd<1>::constant<0>(), 6);
    560561              }
     
    642643 }
    643644  IDISA_ALWAYS_INLINE void do_block(Lex & lex, Marker & marker, Callouts & callouts, Errors & errors) {
    644                 BitBlock CtCDPI_starts, v, w, v1, w1, LAngle_scope, PI_opener, CtCD_opener;
    645                 BitBlock CtCDPI_opener, CD_closer, DoubleHyphen, DoubleRBracket, PI_closer;
    646                 BitBlock CtCDPI_Cursor, PI_Cursor, CD_Ct_Cursor, CD_Cursor, Ct_Cursor;
    647                 BitBlock CD_Ct_Error, PI_name_end, PI_error, Ct_error;
     645                BitBlock CtCDPI_starts, v, w, v1, w1, LAngle_scope, CtCDPI_opener, CD_closer;
     646                BitBlock DoubleHyphen, DoubleRBracket, PI_closer, CtCDPI_Cursor, PI_Cursor;
     647                BitBlock CD_Ct_Cursor, CD_Cursor, Ct_Cursor, CD_Ct_Error, PI_name_end;
     648                BitBlock PI_error, Ct_error;
    648649
    649650                BitBlock tempvar0, tempvar1, tempvar2, tempvar3, tempvar4, tempvar5;
     
    652653        callouts.Symbol_starts = simd<1>::constant<0>();
    653654        callouts.Symbol_ends = simd<1>::constant<0>();
    654         callouts.CtCDPI_marks = simd<1>::constant<0>();
    655655        callouts.CtCDPI_content_starts = simd<1>::constant<0>();
    656656        callouts.CtCDPI_closers = simd<1>::constant<0>();
     
    669669        w1 = carryQ.BitBlock_advance_ci_co(w, carryQ.get_carry_in(1), 1);
    670670        LAngle_scope = simd_andc(v1, w1);
    671         PI_opener = simd_and(LAngle_scope, lex.QMark);
    672         CtCD_opener = simd_and(LAngle_scope, lex.Exclam);
    673         CtCDPI_opener = simd_or(PI_opener, CtCD_opener);
     671        callouts.PI_openers = simd_and(LAngle_scope, lex.QMark);
     672        callouts.CtCD_openers = simd<1>::constant<0>();
     673        CtCDPI_opener = simd_or(simd_and(LAngle_scope, lex.Exclam), callouts.PI_openers);
    674674        CD_closer = simd<1>::constant<0>();
    675675        DoubleHyphen = simd_and(simd_and(v1, w1), lex.Hyphen);
     
    687687        if ((bitblock::any(CtCDPI_Cursor) || carryQ.CarryTest(5, 14))) {
    688688          CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    689           PI_Cursor = simd_and(CtCDPI_Cursor, PI_opener);
     689          PI_Cursor = simd_and(CtCDPI_Cursor, callouts.PI_openers);
    690690          CD_Ct_Cursor = carryQ.BitBlock_advance_ci_co(simd_andc(CtCDPI_Cursor, PI_Cursor), carryQ.get_carry_in(5), 5);
    691           callouts.CtCDPI_marks = simd_or(callouts.CtCDPI_marks, simd_or(PI_Cursor, CD_Ct_Cursor));
     691          callouts.CtCD_openers = simd_or(callouts.CtCD_openers, CD_Ct_Cursor);
    692692          CD_Cursor = simd_and(CD_Ct_Cursor, lex.LBracket);
    693693          Ct_Cursor = simd_and(CD_Ct_Cursor, lex.Hyphen);
     
    695695          errors.ExpectedCommentOrCDATA = simd_or(errors.ExpectedCommentOrCDATA, CD_Ct_Error);
    696696          if ((bitblock::any(PI_Cursor) || carryQ.CarryTest(6, 5))) {
    697             callouts.Symbol_starts = simd_or(callouts.Symbol_starts, PI_Cursor);
    698697            PI_Cursor = carryQ.BitBlock_advance_ci_co(PI_Cursor, carryQ.get_carry_in(6), 6);
    699698            PI_name_end = carryQ.BitBlock_scanthru_ci_co(PI_Cursor, lex.NameScan, carryQ.get_carry_in(7), 7);
     
    703702            PI_error = simd_andc(tempvar2, PI_closer);
    704703            errors.UnterminatedPI = simd_or(errors.UnterminatedPI, PI_error);
    705             callouts.Symbol_ends = simd_or(callouts.Symbol_ends, PI_name_end);
     704            callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, PI_Cursor);
     705            callouts.CtCDPI_closers = simd_or(callouts.CtCDPI_closers, PI_name_end);
    706706            tempvar3 = carryQ.BitBlock_scanthru_ci_co(PI_name_end, lex.WS, carryQ.get_carry_in(9), 9);
    707707            callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, tempvar3);
     
    751751            LocalCarryDeclare(subcarryQ, 14);
    752752            CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    753             PI_Cursor = simd_and(CtCDPI_Cursor, PI_opener);
     753            PI_Cursor = simd_and(CtCDPI_Cursor, callouts.PI_openers);
    754754            CD_Ct_Cursor = subcarryQ.BitBlock_advance_ci_co(simd_andc(CtCDPI_Cursor, PI_Cursor), simd<1>::constant<0>(), 0);
    755             callouts.CtCDPI_marks = simd_or(callouts.CtCDPI_marks, simd_or(PI_Cursor, CD_Ct_Cursor));
     755            callouts.CtCD_openers = simd_or(callouts.CtCD_openers, CD_Ct_Cursor);
    756756            CD_Cursor = simd_and(CD_Ct_Cursor, lex.LBracket);
    757757            Ct_Cursor = simd_and(CD_Ct_Cursor, lex.Hyphen);
    758758            CD_Ct_Error = simd_andc(CD_Ct_Cursor, simd_or(lex.LBracket, lex.Hyphen));
    759759            errors.ExpectedCommentOrCDATA = simd_or(errors.ExpectedCommentOrCDATA, CD_Ct_Error);
    760             if ((bitblock::any(PI_Cursor) || subcarryQ.CarryTest(6, 5))) {
    761               callouts.Symbol_starts = simd_or(callouts.Symbol_starts, PI_Cursor);
     760            if (bitblock::any(PI_Cursor)) {
    762761              PI_Cursor = subcarryQ.BitBlock_advance_ci_co(PI_Cursor, simd<1>::constant<0>(), 1);
    763762              PI_name_end = subcarryQ.BitBlock_scanthru_ci_co(PI_Cursor, lex.NameScan, simd<1>::constant<0>(), 2);
     
    767766              PI_error = simd_andc(tempvar2, PI_closer);
    768767              errors.UnterminatedPI = simd_or(errors.UnterminatedPI, PI_error);
    769               callouts.Symbol_ends = simd_or(callouts.Symbol_ends, PI_name_end);
     768              callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, PI_Cursor);
     769              callouts.CtCDPI_closers = simd_or(callouts.CtCDPI_closers, PI_name_end);
    770770              tempvar3 = subcarryQ.BitBlock_scanthru_ci_co(PI_name_end, lex.WS, simd<1>::constant<0>(), 4);
    771771              callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, tempvar3);
     
    775775              subcarryQ.CarryDequeueEnqueue(6, 5);
    776776            }
    777             if ((bitblock::any(CD_Cursor) || subcarryQ.CarryTest(11, 1))) {
     777            if (bitblock::any(CD_Cursor)) {
    778778              callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, CD_Cursor);
    779779              CD_Cursor = subcarryQ.BitBlock_scanthru_ci_co(CD_Cursor, simd_not(CD_closer), simd<1>::constant<0>(), 6);
     
    782782              subcarryQ.CarryDequeueEnqueue(11, 1);
    783783            }
    784             if ((bitblock::any(Ct_Cursor) || subcarryQ.CarryTest(12, 5))) {
     784            if (bitblock::any(Ct_Cursor)) {
    785785              Ct_Cursor = subcarryQ.BitBlock_advance_ci_co(Ct_Cursor, simd<1>::constant<0>(), 7);
    786786              Ct_error = simd_andc(Ct_Cursor, lex.Hyphen);
     
    826826  }
    827827  IDISA_ALWAYS_INLINE void do_final_block(Lex & lex, Marker & marker, Callouts & callouts, Errors & errors, BitBlock EOF_mask) {
    828                 BitBlock CtCDPI_starts, v, w, v1, w1, LAngle_scope, PI_opener, CtCD_opener;
    829                 BitBlock CtCDPI_opener, CD_closer, DoubleHyphen, DoubleRBracket, PI_closer;
    830                 BitBlock CtCDPI_Cursor, PI_Cursor, CD_Ct_Cursor, CD_Cursor, Ct_Cursor;
    831                 BitBlock CD_Ct_Error, PI_name_end, PI_error, Ct_error;
     828                BitBlock CtCDPI_starts, v, w, v1, w1, LAngle_scope, CtCDPI_opener, CD_closer;
     829                BitBlock DoubleHyphen, DoubleRBracket, PI_closer, CtCDPI_Cursor, PI_Cursor;
     830                BitBlock CD_Ct_Cursor, CD_Cursor, Ct_Cursor, CD_Ct_Error, PI_name_end;
     831                BitBlock PI_error, Ct_error;
    832832
    833833                BitBlock tempvar0, tempvar1, tempvar2, tempvar3, tempvar4, tempvar5;
     
    836836        callouts.Symbol_starts = simd<1>::constant<0>();
    837837        callouts.Symbol_ends = simd<1>::constant<0>();
    838         callouts.CtCDPI_marks = simd<1>::constant<0>();
    839838        callouts.CtCDPI_content_starts = simd<1>::constant<0>();
    840839        callouts.CtCDPI_closers = simd<1>::constant<0>();
     
    853852        w1 = carryQ.BitBlock_advance_ci_co(w, carryQ.get_carry_in(1), 1);
    854853        LAngle_scope = simd_andc(v1, w1);
    855         PI_opener = simd_and(LAngle_scope, lex.QMark);
    856         CtCD_opener = simd_and(LAngle_scope, lex.Exclam);
    857         CtCDPI_opener = simd_or(PI_opener, CtCD_opener);
     854        callouts.PI_openers = simd_and(LAngle_scope, lex.QMark);
     855        callouts.CtCD_openers = simd<1>::constant<0>();
     856        CtCDPI_opener = simd_or(simd_and(LAngle_scope, lex.Exclam), callouts.PI_openers);
    858857        CD_closer = simd<1>::constant<0>();
    859858        DoubleHyphen = simd_and(simd_and(v1, w1), lex.Hyphen);
     
    871870        if ((bitblock::any(simd_and(CtCDPI_Cursor, EOF_mask)) || carryQ.CarryTest(5, 14))) {
    872871          CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    873           PI_Cursor = simd_and(CtCDPI_Cursor, PI_opener);
     872          PI_Cursor = simd_and(CtCDPI_Cursor, callouts.PI_openers);
    874873          CD_Ct_Cursor = carryQ.BitBlock_advance_ci_co(simd_andc(CtCDPI_Cursor, PI_Cursor), carryQ.get_carry_in(5), 5);
    875           callouts.CtCDPI_marks = simd_or(callouts.CtCDPI_marks, simd_or(PI_Cursor, CD_Ct_Cursor));
     874          callouts.CtCD_openers = simd_or(callouts.CtCD_openers, CD_Ct_Cursor);
    876875          CD_Cursor = simd_and(CD_Ct_Cursor, lex.LBracket);
    877876          Ct_Cursor = simd_and(CD_Ct_Cursor, lex.Hyphen);
     
    879878          errors.ExpectedCommentOrCDATA = simd_or(errors.ExpectedCommentOrCDATA, CD_Ct_Error);
    880879          if ((bitblock::any(PI_Cursor) || carryQ.CarryTest(6, 5))) {
    881             callouts.Symbol_starts = simd_or(callouts.Symbol_starts, PI_Cursor);
    882880            PI_Cursor = carryQ.BitBlock_advance_ci_co(PI_Cursor, carryQ.get_carry_in(6), 6);
    883881            PI_name_end = carryQ.BitBlock_scanthru_ci_co(PI_Cursor, lex.NameScan, carryQ.get_carry_in(7), 7);
     
    887885            PI_error = simd_andc(tempvar2, PI_closer);
    888886            errors.UnterminatedPI = simd_or(errors.UnterminatedPI, PI_error);
    889             callouts.Symbol_ends = simd_or(callouts.Symbol_ends, PI_name_end);
     887            callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, PI_Cursor);
     888            callouts.CtCDPI_closers = simd_or(callouts.CtCDPI_closers, PI_name_end);
    890889            tempvar3 = carryQ.BitBlock_scanthru_ci_co(PI_name_end, lex.WS, carryQ.get_carry_in(9), 9);
    891890            callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, tempvar3);
     
    935934            LocalCarryDeclare(subcarryQ, 14);
    936935            CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    937             PI_Cursor = simd_and(CtCDPI_Cursor, PI_opener);
     936            PI_Cursor = simd_and(CtCDPI_Cursor, callouts.PI_openers);
    938937            CD_Ct_Cursor = subcarryQ.BitBlock_advance_ci_co(simd_andc(CtCDPI_Cursor, PI_Cursor), simd<1>::constant<0>(), 0);
    939             callouts.CtCDPI_marks = simd_or(callouts.CtCDPI_marks, simd_or(PI_Cursor, CD_Ct_Cursor));
     938            callouts.CtCD_openers = simd_or(callouts.CtCD_openers, CD_Ct_Cursor);
    940939            CD_Cursor = simd_and(CD_Ct_Cursor, lex.LBracket);
    941940            Ct_Cursor = simd_and(CD_Ct_Cursor, lex.Hyphen);
    942941            CD_Ct_Error = simd_andc(CD_Ct_Cursor, simd_or(lex.LBracket, lex.Hyphen));
    943942            errors.ExpectedCommentOrCDATA = simd_or(errors.ExpectedCommentOrCDATA, CD_Ct_Error);
    944             if ((bitblock::any(PI_Cursor) || subcarryQ.CarryTest(6, 5))) {
    945               callouts.Symbol_starts = simd_or(callouts.Symbol_starts, PI_Cursor);
     943            if (bitblock::any(PI_Cursor)) {
    946944              PI_Cursor = subcarryQ.BitBlock_advance_ci_co(PI_Cursor, simd<1>::constant<0>(), 1);
    947945              PI_name_end = subcarryQ.BitBlock_scanthru_ci_co(PI_Cursor, lex.NameScan, simd<1>::constant<0>(), 2);
     
    951949              PI_error = simd_andc(tempvar2, PI_closer);
    952950              errors.UnterminatedPI = simd_or(errors.UnterminatedPI, PI_error);
    953               callouts.Symbol_ends = simd_or(callouts.Symbol_ends, PI_name_end);
     951              callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, PI_Cursor);
     952              callouts.CtCDPI_closers = simd_or(callouts.CtCDPI_closers, PI_name_end);
    954953              tempvar3 = subcarryQ.BitBlock_scanthru_ci_co(PI_name_end, lex.WS, simd<1>::constant<0>(), 4);
    955954              callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, tempvar3);
     
    959958              subcarryQ.CarryDequeueEnqueue(6, 5);
    960959            }
    961             if ((bitblock::any(CD_Cursor) || subcarryQ.CarryTest(11, 1))) {
     960            if (bitblock::any(CD_Cursor)) {
    962961              callouts.CtCDPI_content_starts = simd_or(callouts.CtCDPI_content_starts, CD_Cursor);
    963962              CD_Cursor = subcarryQ.BitBlock_scanthru_ci_co(CD_Cursor, simd_andc(EOF_mask, CD_closer), simd<1>::constant<0>(), 6);
     
    966965              subcarryQ.CarryDequeueEnqueue(11, 1);
    967966            }
    968             if ((bitblock::any(Ct_Cursor) || subcarryQ.CarryTest(12, 5))) {
     967            if (bitblock::any(Ct_Cursor)) {
    969968              Ct_Cursor = subcarryQ.BitBlock_advance_ci_co(Ct_Cursor, simd<1>::constant<0>(), 7);
    970969              Ct_error = simd_andc(Ct_Cursor, lex.Hyphen);
     
    10471046 }
    10481047  IDISA_ALWAYS_INLINE void do_block(U16hi & u16hi, U16lo & u16lo, Lex & lex, Callouts & callouts, Marker & marker) {
    1049                 BitBlock transition_marks, zeromask, CtCD_marks;
     1048                BitBlock CtCDPI_openers, transition_marks, zeromask;
    10501049
    10511050                BitBlock tempvar0, tempvar1;
    10521051
    10531052
    1054         transition_marks = simd_or(simd_or(simd_or(simd_or(callouts.CtCDPI_marks, callouts.AttEq_marks), callouts.StartTag_closers), callouts.EmptyTag_closers), callouts.EndTag_marks);
     1053        CtCDPI_openers = simd_or(callouts.PI_openers, callouts.CtCD_openers);
     1054        transition_marks = simd_or(simd_or(simd_or(simd_or(CtCDPI_openers, callouts.AttEq_marks), callouts.StartTag_closers), callouts.EmptyTag_closers), callouts.EndTag_marks);
    10551055        callouts.MarkupDelimiters = simd_or(callouts.Tag_closers, callouts.CtCDPI_closers);
    10561056        callouts.StringEnds = simd_or(simd_or(callouts.CtCDPI_closers, callouts.AttCloseQuotes), marker.LAngle);
    10571057        callouts.delmask = simd_or(callouts.delmask, simd_andc(callouts.TagSpan, simd_or(simd_or(callouts.AttValSpan, transition_marks), callouts.StringEnds)));
    1058         tempvar0 = carryQ.BitBlock_exclusive_span(callouts.CtCDPI_marks, callouts.CtCDPI_content_starts, carryQ.get_carry_in(0), 0);
     1058        tempvar0 = carryQ.BitBlock_exclusive_span(CtCDPI_openers, callouts.CtCDPI_content_starts, carryQ.get_carry_in(0), 0);
    10591059        callouts.delmask = simd_or(callouts.delmask, tempvar0);
    10601060        tempvar1 = carryQ.BitBlock_advance_ci_co(marker.LAngle, carryQ.get_carry_in(1), 1);
    10611061        callouts.delmask = simd_or(callouts.delmask, simd_and(tempvar1, lex.Exclam));
    10621062        zeromask = simd_or(simd_or(callouts.delmask, callouts.StringEnds), transition_marks);
    1063         CtCD_marks = simd_andc(callouts.CtCDPI_marks, callouts.Symbol_starts);
    10641063        u16hi.bit_0 = simd_andc(u16hi.bit_0, zeromask);
    10651064        u16hi.bit_1 = simd_andc(u16hi.bit_1, zeromask);
     
    10751074        u16lo.bit_3 = simd_andc(u16lo.bit_3, zeromask);
    10761075        u16lo.bit_4 = simd_andc(u16lo.bit_4, simd_xor(zeromask, callouts.EmptyTag_closers));
    1077         u16lo.bit_5 = simd_andc(u16lo.bit_5, zeromask);
    1078         u16lo.bit_5 = simd_or(u16lo.bit_5, callouts.CtCDPI_marks);
    1079         u16lo.bit_6 = simd_andc(u16lo.bit_6, simd_xor(simd_xor(zeromask, callouts.EndTag_marks), CtCD_marks));
    1080         u16lo.bit_7 = simd_andc(u16lo.bit_7, simd_xor(simd_xor(zeromask, CtCD_marks), callouts.AttEq_marks));
     1076        u16lo.bit_5 = simd_or(simd_andc(u16lo.bit_5, zeromask), CtCDPI_openers);
     1077        u16lo.bit_6 = simd_andc(u16lo.bit_6, simd_xor(simd_xor(zeromask, callouts.EndTag_marks), callouts.CtCD_openers));
     1078        u16lo.bit_7 = simd_andc(u16lo.bit_7, simd_xor(simd_xor(zeromask, callouts.CtCD_openers), callouts.AttEq_marks));
    10811079        carryQ.CarryQ_Adjust(2);
    10821080  }
    10831081  IDISA_ALWAYS_INLINE void do_final_block(U16hi & u16hi, U16lo & u16lo, Lex & lex, Callouts & callouts, Marker & marker, BitBlock EOF_mask) {
    1084                 BitBlock transition_marks, zeromask, CtCD_marks;
     1082                BitBlock CtCDPI_openers, transition_marks, zeromask;
    10851083
    10861084                BitBlock tempvar0, tempvar1;
    10871085
    10881086
    1089         transition_marks = simd_or(simd_or(simd_or(simd_or(callouts.CtCDPI_marks, callouts.AttEq_marks), callouts.StartTag_closers), callouts.EmptyTag_closers), callouts.EndTag_marks);
     1087        CtCDPI_openers = simd_or(callouts.PI_openers, callouts.CtCD_openers);
     1088        transition_marks = simd_or(simd_or(simd_or(simd_or(CtCDPI_openers, callouts.AttEq_marks), callouts.StartTag_closers), callouts.EmptyTag_closers), callouts.EndTag_marks);
    10901089        callouts.MarkupDelimiters = simd_or(callouts.Tag_closers, callouts.CtCDPI_closers);
    10911090        callouts.StringEnds = simd_or(simd_or(callouts.CtCDPI_closers, callouts.AttCloseQuotes), marker.LAngle);
    10921091        callouts.delmask = simd_or(callouts.delmask, simd_andc(callouts.TagSpan, simd_or(simd_or(callouts.AttValSpan, transition_marks), callouts.StringEnds)));
    1093         tempvar0 = carryQ.BitBlock_exclusive_span(callouts.CtCDPI_marks, callouts.CtCDPI_content_starts, carryQ.get_carry_in(0), 0);
     1092        tempvar0 = carryQ.BitBlock_exclusive_span(CtCDPI_openers, callouts.CtCDPI_content_starts, carryQ.get_carry_in(0), 0);
    10941093        callouts.delmask = simd_or(callouts.delmask, tempvar0);
    10951094        tempvar1 = carryQ.BitBlock_advance_ci_co(marker.LAngle, carryQ.get_carry_in(1), 1);
    10961095        callouts.delmask = simd_or(callouts.delmask, simd_and(tempvar1, lex.Exclam));
    10971096        zeromask = simd_or(simd_or(callouts.delmask, callouts.StringEnds), transition_marks);
    1098         CtCD_marks = simd_andc(callouts.CtCDPI_marks, callouts.Symbol_starts);
    10991097        u16hi.bit_0 = simd_andc(u16hi.bit_0, zeromask);
    11001098        u16hi.bit_1 = simd_andc(u16hi.bit_1, zeromask);
     
    11101108        u16lo.bit_3 = simd_andc(u16lo.bit_3, zeromask);
    11111109        u16lo.bit_4 = simd_andc(u16lo.bit_4, simd_xor(zeromask, callouts.EmptyTag_closers));
    1112         u16lo.bit_5 = simd_andc(u16lo.bit_5, zeromask);
    1113         u16lo.bit_5 = simd_or(u16lo.bit_5, callouts.CtCDPI_marks);
    1114         u16lo.bit_6 = simd_andc(u16lo.bit_6, simd_xor(simd_xor(zeromask, callouts.EndTag_marks), CtCD_marks));
    1115         u16lo.bit_7 = simd_andc(u16lo.bit_7, simd_xor(simd_xor(zeromask, CtCD_marks), callouts.AttEq_marks));
     1110        u16lo.bit_5 = simd_or(simd_andc(u16lo.bit_5, zeromask), CtCDPI_openers);
     1111        u16lo.bit_6 = simd_andc(u16lo.bit_6, simd_xor(simd_xor(zeromask, callouts.EndTag_marks), callouts.CtCD_openers));
     1112        u16lo.bit_7 = simd_andc(u16lo.bit_7, simd_xor(simd_xor(zeromask, callouts.CtCD_openers), callouts.AttEq_marks));
    11161113  }
    11171114  void do_segment(U16hi u16hi[], U16lo u16lo[], Lex lex[], Callouts callouts[], Marker marker[], int segment_blocks) {
Note: See TracChangeset for help on using the changeset viewer.