Changeset 768 for proto


Ignore:
Timestamp:
Dec 2, 2010, 7:04:17 PM (9 years ago)
Author:
ksherdy
Message:

Add fix to prototype and compilable.

Location:
proto/JSON
Files:
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • proto/JSON/json_compilable.py

    r766 r768  
    182182        #
    183183        StringMask = ParityMask & bitutil.Advance(ParityMask)
     184        StringSpans = StringMask | UnescapedDQuotes
    184185        #
    185186        ### End Generate String Mask ---
     
    187188        ### Start atom_starts   
    188189        #
    189         StringSpans = StringMask | UnescapedDQuotes
    190        
    191         AtomSpans = (Lex.True | Lex.False | Lex.Null | Lex.Number | StringSpans)
    192         AtomStarts = AtomSpans &~ bitutil.Advance(AtomSpans)
    193                
    194         StringStarts = AtomStarts & (Lex.DQuote)       
    195         NumberStarts = AtomStarts & (Lex.Minus|Lex.Digit0_9)
    196         TrueStarts = AtomStarts & (Lex.t)
    197         FalseStarts = AtomStarts & (Lex.f)
    198         NullStarts = AtomStarts & (Lex.n)       
     190       
     191       
     192        StringStarts = StringSpans &~ bitutil.Advance(StringSpans)     
     193
     194        UnmaskedAtomSpans = (Lex.True | Lex.False | Lex.Null | Lex.Number) &~ StringSpans
     195        UnmaskedAtomStarts = UnmaskedAtomSpans &~ bitutil.Advance(UnmaskedAtomSpans)
     196
     197        NumberStarts = UnmaskedAtomStarts & (Lex.Minus|Lex.Digit0_9)
     198        TrueStarts = UnmaskedAtomStarts & (Lex.t)
     199        FalseStarts = UnmaskedAtomStarts & (Lex.f)
     200        NullStarts = UnmaskedAtomStarts & (Lex.n)
     201       
    199202        #
    200203        ### End atom_starts
     
    234237        ### Start validate_number
    235238        #
    236         M0 = NumberStarts                                       # Initialize marker stream     
     239        M0 = NumberStarts                                       # Initialize marker stream     
    237240       
    238241        M1 = bitutil.ScanThru(M0, Lex.Minus & M0)               # ? Optional character class [-]
     
    257260       
    258261        M7a = M7 &~(Lex.Ee)                                     # Split
    259         M7b = M7 &(Lex.Ee)
     262        M7b = M7 & (Lex.Ee)
    260263        M8b = bitutil.Advance(M7b)
    261264        M9b = bitutil.ScanThru(M8b, Lex.PlusMinus & M8b)        # ? Optional character class [+-]               
     
    264267        M10b = bitutil.ScanThru(M9b,Lex.Digit0_9)
    265268
    266         M11 = M7a | M10b                                       
    267        
    268         NumberErrors = E1 | E5b | E9b   
     269        M11 = E1 | E5b | E9b | M7a | M10b                       # Record final marker positions,
     270                                                                # At Advance(M11) this positions is either (1) a known error position or (2) an undetermined position to be checked
     271       
     272        NumberErrors = E1 | E5b | E9b
     273       
     274        NumberSpans = M11 - M0
    269275        #
    270276        ### End validate_number
     
    272278        ### Start validate_true
    273279        #
    274         Scope1 = bitutil.Advance(TrueStarts)
    275         Scope2 = bitutil.Advance(Scope1)
    276         Scope3 = bitutil.Advance(Scope2)
    277        
    278         TrueErrors = Scope1 &~ Lex.r
    279         TrueErrors |= Scope2 &~ Lex.u
    280         TrueErrors |= Scope3 &~ Lex.e
    281        
    282         Follows = bitutil.Advance(Scope3)
    283         TrueSpans = Follows - TrueStarts
     280        TrueScope1 = bitutil.Advance(TrueStarts)
     281        TrueScope2 = bitutil.Advance(TrueScope1)
     282        TrueScope3 = bitutil.Advance(TrueScope2)
     283       
     284        TrueErrors = TrueScope1 &~ Lex.r
     285        TrueErrors |= TrueScope2 &~ Lex.u
     286        TrueErrors |= TrueScope3 &~ Lex.e
     287       
     288        TrueFollows = bitutil.Advance(TrueScope3)
     289        TrueSpans = TrueFollows - TrueStarts
    284290        #
    285291        ### End validate_true
     
    287293        ### Start validate_false
    288294        #
    289         Scope1 = bitutil.Advance(FalseStarts)
    290         Scope2 = bitutil.Advance(Scope1)
    291         Scope3 = bitutil.Advance(Scope2)
    292         Scope4 = bitutil.Advance(Scope3)
    293        
    294         FalseErrors = Scope1 &~ Lex.a
    295         FalseErrors |= Scope2 &~ Lex.l
    296         FalseErrors |= Scope3 &~ Lex.s
    297         FalseErrors |= Scope4 &~ Lex.e
    298 
    299         Follows = bitutil.Advance(Scope4)
    300         FalseSpans = Follows - FalseStarts
     295        FalseScope1 = bitutil.Advance(FalseStarts)
     296        FalseScope2 = bitutil.Advance(FalseScope1)
     297        FalseScope3 = bitutil.Advance(FalseScope2)
     298        FalseScope4 = bitutil.Advance(FalseScope3)
     299       
     300        FalseErrors = FalseScope1 &~ Lex.a
     301        FalseErrors |= FalseScope2 &~ Lex.l
     302        FalseErrors |= FalseScope3 &~ Lex.s
     303        FalseErrors |= FalseScope4 &~ Lex.e
     304
     305        FalseFollows = bitutil.Advance(FalseScope4)
     306        FalseSpans = FalseFollows - FalseStarts
    301307        #
    302308        ### End validate_false
     
    304310        ### Start validate_null
    305311        #
    306         Scope1 = bitutil.Advance(NullStarts)
    307         Scope2 = bitutil.Advance(Scope1)
    308         Scope3 = bitutil.Advance(Scope2)
    309        
    310         NullErrors |= Scope1 &~ Lex.u
    311         NullErrors |= Scope2 &~ Lex.l
    312         NullErrors |= Scope3 &~ Lex.l
    313        
    314         Follows = bitutil.Advance(Scope3)
    315         NullSpans = Follows - NullStarts
     312        NullScope1 = bitutil.Advance(NullStarts)
     313        NullScope2 = bitutil.Advance(NullScope1)
     314        NullScope3 = bitutil.Advance(NullScope2)
     315       
     316        NullErrors |= NullScope1 &~ Lex.u
     317        NullErrors |= NullScope2 &~ Lex.l
     318        NullErrors |= NullScope3 &~ Lex.l
     319       
     320        NullFollows = bitutil.Advance(Scope3)
     321        NullSpans = NullFollows - NullStarts
    316322        #
    317323        ### End validate_null
    318324
    319325        # AtomSpans & AtomsStarts serve as the basic interface to ANTLR
    320         AtomsSpans = StringSpans | NumberSpans | TrueSpans | FalseSpans | NullSpans
     326        AtomStarts = StringStarts | NumberStarts | TrueStarts | FalseStarts | NullStarts
     327        AtomSpans = StringSpans | NumberSpans | TrueSpans | FalseSpans | NullSpans
    321328
    322329        # Consolidate errors
  • proto/JSON/json_prototype.py

    r766 r768  
    2626import sys
    2727
    28 debug = False
     28debug = False#True
    2929filename = "json_prototype.py"
    3030
     
    149149        """
    150150        global lgth
    151        
    152         AtomSpans = (Lex.True | Lex.False | Lex.Null | Lex.Number | StringSpans)
    153         AtomStarts = AtomSpans &~ bitutil.Advance(AtomSpans)
    154151               
    155         StringStarts = AtomStarts & (Lex.DQuote)       
    156         NumberStarts = AtomStarts & (Lex.Minus|Lex.Digit0_9)
    157         TrueStarts = AtomStarts & (Lex.t)
    158         FalseStarts = AtomStarts & (Lex.f)
    159         NullStarts = AtomStarts & (Lex.n)
     152        StringStarts = StringSpans &~ bitutil.Advance(StringSpans)     
     153
     154        UnmaskedAtomSpans = (Lex.True | Lex.False | Lex.Null | Lex.Number) &~ StringSpans
     155        UnmaskedAtomStarts = UnmaskedAtomSpans &~ bitutil.Advance(UnmaskedAtomSpans)
     156
     157        NumberStarts = UnmaskedAtomStarts & (Lex.Minus|Lex.Digit0_9)
     158        TrueStarts = UnmaskedAtomStarts & (Lex.t)
     159        FalseStarts = UnmaskedAtomStarts & (Lex.f)
     160        NullStarts = UnmaskedAtomStarts & (Lex.n)
    160161
    161162        if debug:
     
    210211       
    211212        """     
    212         Scope1 = bitutil.Advance(TrueStarts)
    213         Scope2 = bitutil.Advance(Scope1)
    214         Scope3 = bitutil.Advance(Scope2)
    215        
    216         TrueErrors = Scope1 &~ Lex.r
    217         TrueErrors |= Scope2 &~ Lex.u
    218         TrueErrors |= Scope3 &~ Lex.e
    219        
    220         Follows = bitutil.Advance(Scope3)
    221         TrueSpans = Follows - TrueStarts
     213        TrueScope1 = bitutil.Advance(TrueStarts)
     214        TrueScope2 = bitutil.Advance(TrueScope1)
     215        TrueScope3 = bitutil.Advance(TrueScope2)
     216       
     217        TrueErrors = TrueScope1 &~ Lex.r
     218        TrueErrors |= TrueScope2 &~ Lex.u
     219        TrueErrors |= TrueScope3 &~ Lex.e
     220       
     221        TrueFollows = bitutil.Advance(TrueScope3)
     222        TrueSpans = TrueFollows - TrueStarts
    222223
    223224        return (TrueErrors, TrueSpans)
     
    230231       
    231232        """     
    232         Scope1 = bitutil.Advance(FalseStarts)
    233         Scope2 = bitutil.Advance(Scope1)
    234         Scope3 = bitutil.Advance(Scope2)
    235         Scope4 = bitutil.Advance(Scope3)
    236        
    237         FalseErrors = Scope1 &~ Lex.a
    238         FalseErrors |= Scope2 &~ Lex.l
    239         FalseErrors |= Scope3 &~ Lex.s
    240         FalseErrors |= Scope4 &~ Lex.e
    241 
    242         Follows = bitutil.Advance(Scope4)
    243         FalseSpans = Follows - FalseStarts
     233        FalseScope1 = bitutil.Advance(FalseStarts)
     234        FalseScope2 = bitutil.Advance(FalseScope1)
     235        FalseScope3 = bitutil.Advance(FalseScope2)
     236        FalseScope4 = bitutil.Advance(FalseScope3)
     237       
     238        FalseErrors = FalseScope1 &~ Lex.a
     239        FalseErrors |= FalseScope2 &~ Lex.l
     240        FalseErrors |= FalseScope3 &~ Lex.s
     241        FalseErrors |= FalseScope4 &~ Lex.e
     242
     243        FalseFollows = bitutil.Advance(FalseScope4)
     244        FalseSpans = FalseFollows - FalseStarts
    244245       
    245246        return (FalseErrors, FalseSpans)
     
    252253       
    253254        """
    254         Scope1 = bitutil.Advance(NullStarts)
    255         Scope2 = bitutil.Advance(Scope1)
    256         Scope3 = bitutil.Advance(Scope2)
    257        
    258         NullErrors = Scope1 &~ Lex.u
    259         NullErrors |= Scope2 &~ Lex.l
    260         NullErrors |= Scope3 &~ Lex.l
    261        
    262         Follows = bitutil.Advance(Scope3)
    263         NullSpans = Follows - NullStarts
     255        NullScope1 = bitutil.Advance(NullStarts)
     256        NullScope2 = bitutil.Advance(NullScope1)
     257        NullScope3 = bitutil.Advance(NullScope2)
     258       
     259        NullErrors = NullScope1 &~ Lex.u
     260        NullErrors |= NullScope2 &~ Lex.l
     261        NullErrors |= NullScope3 &~ Lex.l
     262       
     263        NullFollows = bitutil.Advance(NullScope3)
     264        NullSpans = NullFollows - NullStarts
    264265
    265266        return (NullErrors, NullSpans)
     
    286287        global lgth
    287288       
    288         M0 = NumberStarts                                               # Initialize marker stream     
     289        M0 = NumberStarts                                       # Initialize marker stream     
    289290       
    290291        M1 = bitutil.ScanThru(M0, Lex.Minus & M0)               # ? Optional character class [-]
     
    309310       
    310311        M7a = M7 &~(Lex.Ee)                                     # Split
    311         M7b = M7 &(Lex.Ee)
     312        M7b = M7 & (Lex.Ee)
    312313        M8b = bitutil.Advance(M7b)
    313314        M9b = bitutil.ScanThru(M8b, Lex.PlusMinus & M8b)        # ? Optional character class [+-]               
     
    316317        M10b = bitutil.ScanThru(M9b,Lex.Digit0_9)
    317318
    318         M11 = M7a | M10b                                       
     319        M11 = E1 | E5b | E9b | M7a | M10b                       # Record final marker positions,
     320                                                                # At Advance(M11) this positions is either (1) a known error position or (2) an undetermined position to be checked
    319321       
    320322        NumberErrors = E1 | E5b | E9b
     
    364366        Ee          : _______________________1____1______________________1_______________
    365367        PlusMinus   : _1_11_1_____1___1___1____1_______1_______1______1_____1____________
    366         NumberSpans : _11_11_11___11__1111_1111_1111___11111111__11111__1111__1__________
     368        NumberSpans : _1_1__1__1__11__111_111__111__1__11111111__11111__1111__1__________
    367369        NumberErrors: __1_1__1___________1___1____1_______________________________________
    368370        EOF_Mask    : 1111111111111111111111111111111111111111111111111111111111111111111_
  • proto/JSON/src/json.c

    r766 r768  
    4747BitBlock temp49;
    4848BitBlock temp42;
    49 BitBlock FalseErrors_1;
    50 BitBlock M4b;
     49BitBlock FalseStarts;
     50BitBlock StringErrors_9;
    5151BitBlock M4a;
    5252BitBlock TrueSpans;
     
    6464BitBlock Temp42;
    6565BitBlock strct_u8__unibyte_;
    66 BitBlock temp81;
     66BitBlock Temp44;
     67BitBlock Temp45;
     68BitBlock Temp46;
     69BitBlock Temp47;
     70BitBlock Temp48;
     71BitBlock Temp49;
    6772BitBlock NullSpans;
    6873BitBlock strct_u8__xED_;
    6974BitBlock temp28;
    7075BitBlock temp29;
     76BitBlock NullErrors_8;
    7177BitBlock temp22;
    7278BitBlock temp23;
     
    7783BitBlock temp24;
    7884BitBlock temp25;
    79 BitBlock M4;
     85BitBlock temp81;
     86BitBlock M4b;
    8087BitBlock M7;
    8188BitBlock M6;
     
    9198BitBlock strct_u8__prefix4_;
    9299BitBlock strct_Lex__LCurlyBrace_;
     100BitBlock Temp39;
    93101BitBlock ParityMask;
    94 BitBlock temp36;
     102BitBlock E5b;
     103BitBlock TrueFollows;
    95104BitBlock AllZero = simd_const_1(0);
    96105BitBlock Temp28;
     
    106115BitBlock Temp25;
    107116BitBlock Escape;
     117BitBlock FalseScope2;
     118BitBlock FalseScope3;
     119BitBlock FalseScope1;
     120BitBlock FalseScope4;
     121BitBlock NullFollows;
    108122BitBlock StringMask;
    109123BitBlock strct_u8__x90_xBF_;
    110124BitBlock M3b;
     125BitBlock NullScope1;
     126BitBlock NullScope3;
    111127BitBlock M9b;
    112 BitBlock Scope3_6;
    113 BitBlock Scope3_7;
     128BitBlock M1_15;
     129BitBlock TrueScope2;
     130BitBlock TrueScope3;
     131BitBlock TrueScope1;
    114132BitBlock strct_Lex__Comma_;
    115133BitBlock array_bit__7_;
    116134BitBlock strct_Lex__Colon_;
    117135BitBlock OddStart;
    118 BitBlock Scope2;
    119136BitBlock StringNotEscapedChars;
    120 BitBlock Scope1;
    121 BitBlock Scope4;
    122137BitBlock strct_Lex__e_;
    123138BitBlock TrueErrors_4;
     
    126141BitBlock FalseSpans;
    127142BitBlock strct_Lex__PlusMinus_;
    128 BitBlock M9b_10;
     143BitBlock M9b_6;
    129144BitBlock M5b_0;
    130145BitBlock strct_u8__x80_x9F_;
    131 BitBlock StringErrors_20;
    132 BitBlock StringErrors_21;
    133 BitBlock StringErrors_22;
     146BitBlock strct_Lex__Zero_;
    134147BitBlock StringEnds;
    135148BitBlock temp75;
     
    153166BitBlock strct_Ctrl__LF_;
    154167BitBlock StringSpans;
    155 BitBlock Follows_8;
    156 BitBlock Follows_9;
    157168BitBlock strct_Ctrl__CR_;
    158169BitBlock strct_u8__badprefix_;
    159 BitBlock strct_Lex__Zero_;
    160170BitBlock strct_Lex__RCurlyBrace_;
    161171BitBlock strct_Lex__Ee_;
     172BitBlock UnmaskedAtomStarts;
     173BitBlock UnmaskedAtomSpans;
    162174BitBlock strct_u8__xF4_;
    163 BitBlock strct_Lex__Digit1_9_;
    164175BitBlock strct_Lex__True_;
    165176BitBlock temp10;
    166177BitBlock EvenStart;
    167 BitBlock NullErrors_12;
    168 BitBlock NullErrors_11;
    169178BitBlock strct_u8__xE0_;
    170179BitBlock temp59;
     
    182191BitBlock M5b;
    183192BitBlock UnescapedDQuotes;
    184 BitBlock AtomsSpans;
     193BitBlock FalseFollows;
    185194BitBlock TrueStarts;
    186195BitBlock FalseErrors;
     
    208217BitBlock M10b;
    209218BitBlock strct_u8__prefix2_;
    210 BitBlock Scope1_15;
    211219BitBlock E1;
    212220BitBlock temp39;
     
    219227BitBlock temp34;
    220228BitBlock temp37;
    221 BitBlock E5b;
     229BitBlock temp36;
    222230BitBlock NumberSpans;
    223231BitBlock strct_Lex__DQuote_;
     
    225233BitBlock array_bit__1_;
    226234BitBlock Even;
    227 BitBlock Follows;
    228235BitBlock array_bit__6_;
    229236BitBlock error_mask;
    230237BitBlock strct_Lex__r_;
    231238BitBlock Start;
    232 BitBlock Scope2_13;
    233 BitBlock M1_23;
    234 BitBlock Scope1_16;
    235239BitBlock strct_u8__xF0_;
    236 BitBlock Scope2_14;
    237240BitBlock M1a;
    238241BitBlock Temp38;
     
    246249BitBlock Temp37;
    247250BitBlock Temp36;
     251BitBlock NullErrors_7;
    248252BitBlock strct_Ctrl__SP_;
    249253BitBlock strct_Lex__False_;
    250254BitBlock strct_Lex__Digit0_9_;
    251255BitBlock NullErrors;
    252 BitBlock FalseStarts;
     256BitBlock FalseErrors_1;
    253257BitBlock FalseErrors_2;
    254258BitBlock FalseErrors_3;
    255259BitBlock NumberStarts;
     260BitBlock NullScope2;
    256261BitBlock temp88;
    257262BitBlock temp89;
     263BitBlock M4;
    258264BitBlock temp84;
    259265BitBlock temp85;
     
    305311BitBlock strct_Lex__Number_;
    306312BitBlock strct_Lex__l_;
    307 BitBlock StringErrors_17;
     313BitBlock StringErrors_14;
     314BitBlock StringErrors_11;
     315BitBlock StringErrors_10;
     316BitBlock StringErrors_13;
     317BitBlock StringErrors_12;
    308318BitBlock strct_Lex__Escape_;
    309 BitBlock StringErrors_19;
    310 BitBlock StringErrors_18;
    311319BitBlock Temp3;
    312320BitBlock Temp2;
     
    320328BitBlock Temp8;
    321329BitBlock M8b;
    322 BitBlock Temp39;
     330BitBlock strct_Lex__Digit1_9_;
    323331CarryType carry28 = Carry0;
    324332CarryType carry29 = Carry0;
     
    351359CarryType carry19 = Carry0;
    352360CarryType carry18 = Carry0;
     361CarryType carry_brw3 = Carry0;
    353362CarryType carry_brw2 = Carry0;
    354363CarryType carry_brw1 = Carry0;
    355364CarryType carry_brw0 = Carry0;
     365CarryType carry33 = Carry0;
    356366CarryType carry32 = Carry0;
    357367CarryType carry31 = Carry0;
     
    563573Escape = simd_or(EvenEscape,OddEscape);
    564574UnescapedDQuotes = simd_andc(strct_Lex__DQuote_,Escape);
     575advance_with_carry(ParityMask, carry3, Temp8);
     576StringMask = simd_and(ParityMask,Temp8);
     577StringSpans = simd_or(StringMask,UnescapedDQuotes);
     578advance_with_carry(StringSpans, carry4, Temp9);
     579StringStarts = simd_andc(StringSpans,Temp9);
     580Temp10 = simd_or(strct_Lex__True_,strct_Lex__False_);
     581Temp11 = simd_or(Temp10,strct_Lex__Null_);
     582Temp12 = simd_or(Temp11,strct_Lex__Number_);
     583UnmaskedAtomSpans = simd_andc(Temp12,StringSpans);
     584advance_with_carry(UnmaskedAtomSpans, carry5, Temp13);
     585UnmaskedAtomStarts = simd_andc(UnmaskedAtomSpans,Temp13);
     586NumberStarts = simd_and(UnmaskedAtomStarts,temp44);
     587TrueStarts = simd_and(UnmaskedAtomStarts,temp68);
     588FalseStarts = simd_and(UnmaskedAtomStarts,temp62);
     589NullStarts = simd_and(UnmaskedAtomStarts,temp64);
     590StringEscapeChars = simd_and(Escape,StringMask);
     591StringErrors_9 = simd_andc(StringEscapeChars,strct_Lex__Escape_);
     592u = simd_and(StringEscapeChars,strct_Lex__u_);
     593advance_with_carry(u, carry6, uScope1);
     594advance_with_carry(uScope1, carry7, uScope2);
     595advance_with_carry(uScope2, carry8, uScope3);
     596advance_with_carry(uScope3, carry9, uScope4);
     597Temp14 = simd_andc(uScope1,strct_Lex__HexDigit_);
     598StringErrors_10 = simd_or(StringErrors_9,Temp14);
     599Temp15 = simd_andc(uScope2,strct_Lex__HexDigit_);
     600StringErrors_11 = simd_or(StringErrors_10,Temp15);
     601Temp16 = simd_andc(uScope3,strct_Lex__HexDigit_);
     602StringErrors_12 = simd_or(StringErrors_11,Temp16);
     603Temp17 = simd_andc(uScope4,strct_Lex__HexDigit_);
     604StringErrors_13 = simd_or(StringErrors_12,Temp17);
     605Temp18 = simd_or(Escape,strct_Lex__RSolidus_);
     606StringNotEscapedChars = simd_andc(StringMask,Temp18);
     607Temp19 = simd_and(StringNotEscapedChars,strct_Ctrl__x00_x1F_);
     608StringErrors_14 = simd_or(StringErrors_13,Temp19);
     609advance_with_carry(StringStarts, carry10, StringCursor);
     610adc128(StringCursor, StringMask, carry11, Temp20);
     611StringEnds = simd_andc(Temp20,StringMask);
     612Temp21 = simd_andc(StringEnds,UnescapedDQuotes);
     613StringErrors = simd_or(StringErrors_14,Temp21);
     614M0 = NumberStarts;
     615Temp22 = simd_and(strct_Lex__Minus_,NumberStarts);
     616adc128(NumberStarts, Temp22, carry12, Temp23);
     617M1_15 = simd_andc(Temp23,Temp22);
     618Temp24 = simd_or(strct_Lex__Zero_,strct_Lex__Digit1_9_);
     619E1 = simd_andc(M1_15,Temp24);
     620M1 = simd_andc(M1_15,E1);
     621M1a = simd_and(M1,strct_Lex__Zero_);
     622M1b = simd_and(M1,strct_Lex__Digit1_9_);
     623advance_with_carry(M1a, carry13, M2a);
     624advance_with_carry(M1b, carry14, M2b);
     625adc128(M2b, strct_Lex__Digit0_9_, carry15, Temp25);
     626M3b = simd_andc(Temp25,strct_Lex__Digit0_9_);
     627M4 = simd_or(M2a,M3b);
     628M4a = simd_andc(M4,strct_Lex__DecimalPoint_);
     629M4b = simd_and(M4,strct_Lex__DecimalPoint_);
     630advance_with_carry(M4b, carry16, M5b_0);
     631E5b = simd_andc(M5b_0,strct_Lex__Digit0_9_);
     632M5b = simd_andc(M5b_0,E5b);
     633adc128(M5b, strct_Lex__Digit0_9_, carry17, Temp26);
     634M6 = simd_andc(Temp26,strct_Lex__Digit0_9_);
     635M7 = simd_or(M4a,M6);
     636M7a = simd_andc(M7,strct_Lex__Ee_);
     637M7b = simd_and(M7,strct_Lex__Ee_);
     638advance_with_carry(M7b, carry18, M8b);
     639Temp27 = simd_and(strct_Lex__PlusMinus_,M8b);
     640adc128(M8b, Temp27, carry19, Temp28);
     641M9b_6 = simd_andc(Temp28,Temp27);
     642E9b = simd_andc(M9b_6,strct_Lex__Digit0_9_);
     643M9b = simd_andc(M9b_6,E9b);
     644adc128(M9b, strct_Lex__Digit0_9_, carry20, Temp29);
     645M10b = simd_andc(Temp29,strct_Lex__Digit0_9_);
     646Temp30 = simd_or(E1,E5b);
     647Temp31 = simd_or(Temp30,E9b);
     648Temp32 = simd_or(Temp31,M7a);
     649M11 = simd_or(Temp32,M10b);
     650NumberErrors = Temp31;
     651sbb128(M11, NumberStarts, carry_brw0, NumberSpans);
     652advance_with_carry(TrueStarts, carry21, TrueScope1);
     653advance_with_carry(TrueScope1, carry22, TrueScope2);
     654advance_with_carry(TrueScope2, carry23, TrueScope3);
     655TrueErrors_4 = simd_andc(TrueScope1,temp66);
     656Temp33 = simd_andc(TrueScope2,strct_Lex__u_);
     657TrueErrors_5 = simd_or(TrueErrors_4,Temp33);
     658Temp34 = simd_andc(TrueScope3,temp50);
     659TrueErrors = simd_or(TrueErrors_5,Temp34);
     660advance_with_carry(TrueScope3, carry24, TrueFollows);
     661sbb128(TrueFollows, TrueStarts, carry_brw1, TrueSpans);
     662advance_with_carry(FalseStarts, carry25, FalseScope1);
     663advance_with_carry(FalseScope1, carry26, FalseScope2);
     664advance_with_carry(FalseScope2, carry27, FalseScope3);
     665advance_with_carry(FalseScope3, carry28, FalseScope4);
     666FalseErrors_1 = simd_andc(FalseScope1,strct_Lex__a_);
     667Temp35 = simd_andc(FalseScope2,strct_Lex__l_);
     668FalseErrors_2 = simd_or(FalseErrors_1,Temp35);
     669Temp36 = simd_andc(FalseScope3,strct_Lex__s_);
     670FalseErrors_3 = simd_or(FalseErrors_2,Temp36);
     671Temp37 = simd_andc(FalseScope4,temp50);
     672FalseErrors = simd_or(FalseErrors_3,Temp37);
     673advance_with_carry(FalseScope4, carry29, FalseFollows);
     674sbb128(FalseFollows, FalseStarts, carry_brw2, FalseSpans);
     675advance_with_carry(NullStarts, carry30, NullScope1);
     676advance_with_carry(NullScope1, carry31, NullScope2);
     677advance_with_carry(NullScope2, carry32, NullScope3);
     678Temp38 = simd_andc(NullScope1,strct_Lex__u_);
     679NullErrors_7 = simd_or(NullErrors,Temp38);
     680Temp39 = simd_andc(NullScope2,strct_Lex__l_);
     681NullErrors_8 = simd_or(NullErrors_7,Temp39);
     682Temp40 = simd_andc(NullScope3,strct_Lex__l_);
     683NullErrors = simd_or(NullErrors_8,Temp40);
     684advance_with_carry(Scope3, carry33, NullFollows);
     685sbb128(NullFollows, NullStarts, carry_brw3, NullSpans);
     686Temp41 = simd_or(StringStarts,NumberStarts);
     687Temp42 = simd_or(Temp41,TrueStarts);
     688Temp43 = simd_or(Temp42,FalseStarts);
     689AtomStarts = simd_or(Temp43,NullStarts);
     690Temp44 = simd_or(StringSpans,NumberSpans);
     691Temp45 = simd_or(Temp44,TrueSpans);
     692Temp46 = simd_or(Temp45,FalseSpans);
     693AtomSpans = simd_or(Temp46,NullSpans);
     694Temp47 = simd_or(StringErrors,Temp31);
     695Temp48 = simd_or(Temp47,TrueErrors);
     696Temp49 = simd_or(Temp48,FalseErrors);
     697error_mask = simd_or(Temp49,NullErrors);
     698
    565699
    566700                        /* Generate Parity Mask */
     
    569703                        bitblock_parity_mask = sisd_add( simd_not(sisd_srl(high_bit_is_set, sisd_from_int(BLOCK_SIZE-1))) , sisd_low_bit_mask);                                         
    570704                        ParityMask = bitblock_parallel_prefix_parity(UnescapedDQuotes, bitblock_parity_mask);
    571 
    572 advance_with_carry(ParityMask, carry3, Temp8);
    573 StringMask = simd_and(ParityMask,Temp8);
    574 StringSpans = simd_or(StringMask,UnescapedDQuotes);
    575 Temp9 = simd_or(strct_Lex__True_,strct_Lex__False_);
    576 Temp10 = simd_or(Temp9,strct_Lex__Null_);
    577 Temp11 = simd_or(Temp10,strct_Lex__Number_);
    578 AtomSpans = simd_or(Temp11,StringSpans);
    579 advance_with_carry(AtomSpans, carry4, Temp12);
    580 AtomStarts = simd_andc(AtomSpans,Temp12);
    581 StringStarts = simd_and(AtomStarts,strct_Lex__DQuote_);
    582 NumberStarts = simd_and(AtomStarts,temp44);
    583 TrueStarts = simd_and(AtomStarts,temp68);
    584 FalseStarts = simd_and(AtomStarts,temp62);
    585 NullStarts = simd_and(AtomStarts,temp64);
    586 StringEscapeChars = simd_and(Escape,StringMask);
    587 StringErrors_17 = simd_andc(StringEscapeChars,strct_Lex__Escape_);
    588 u = simd_and(StringEscapeChars,strct_Lex__u_);
    589 advance_with_carry(u, carry5, uScope1);
    590 advance_with_carry(uScope1, carry6, uScope2);
    591 advance_with_carry(uScope2, carry7, uScope3);
    592 advance_with_carry(uScope3, carry8, uScope4);
    593 Temp13 = simd_andc(uScope1,strct_Lex__HexDigit_);
    594 StringErrors_18 = simd_or(StringErrors_17,Temp13);
    595 Temp14 = simd_andc(uScope2,strct_Lex__HexDigit_);
    596 StringErrors_19 = simd_or(StringErrors_18,Temp14);
    597 Temp15 = simd_andc(uScope3,strct_Lex__HexDigit_);
    598 StringErrors_20 = simd_or(StringErrors_19,Temp15);
    599 Temp16 = simd_andc(uScope4,strct_Lex__HexDigit_);
    600 StringErrors_21 = simd_or(StringErrors_20,Temp16);
    601 Temp17 = simd_or(Escape,strct_Lex__RSolidus_);
    602 StringNotEscapedChars = simd_andc(StringMask,Temp17);
    603 Temp18 = simd_and(StringNotEscapedChars,strct_Ctrl__x00_x1F_);
    604 StringErrors_22 = simd_or(StringErrors_21,Temp18);
    605 advance_with_carry(StringStarts, carry9, StringCursor);
    606 adc128(StringCursor, StringMask, carry10, Temp19);
    607 StringEnds = simd_andc(Temp19,StringMask);
    608 Temp20 = simd_andc(StringEnds,UnescapedDQuotes);
    609 StringErrors = simd_or(StringErrors_22,Temp20);
    610 M0 = NumberStarts;
    611 Temp21 = simd_and(strct_Lex__Minus_,NumberStarts);
    612 adc128(NumberStarts, Temp21, carry11, Temp22);
    613 M1_23 = simd_andc(Temp22,Temp21);
    614 Temp23 = simd_or(strct_Lex__Zero_,strct_Lex__Digit1_9_);
    615 E1 = simd_andc(M1_23,Temp23);
    616 M1 = simd_andc(M1_23,E1);
    617 M1a = simd_and(M1,strct_Lex__Zero_);
    618 M1b = simd_and(M1,strct_Lex__Digit1_9_);
    619 advance_with_carry(M1a, carry12, M2a);
    620 advance_with_carry(M1b, carry13, M2b);
    621 adc128(M2b, strct_Lex__Digit0_9_, carry14, Temp24);
    622 M3b = simd_andc(Temp24,strct_Lex__Digit0_9_);
    623 M4 = simd_or(M2a,M3b);
    624 M4a = simd_andc(M4,strct_Lex__DecimalPoint_);
    625 M4b = simd_and(M4,strct_Lex__DecimalPoint_);
    626 advance_with_carry(M4b, carry15, M5b_0);
    627 E5b = simd_andc(M5b_0,strct_Lex__Digit0_9_);
    628 M5b = simd_andc(M5b_0,E5b);
    629 adc128(M5b, strct_Lex__Digit0_9_, carry16, Temp25);
    630 M6 = simd_andc(Temp25,strct_Lex__Digit0_9_);
    631 M7 = simd_or(M4a,M6);
    632 M7a = simd_andc(M7,strct_Lex__Ee_);
    633 M7b = simd_and(M7,strct_Lex__Ee_);
    634 advance_with_carry(M7b, carry17, M8b);
    635 Temp26 = simd_and(strct_Lex__PlusMinus_,M8b);
    636 adc128(M8b, Temp26, carry18, Temp27);
    637 M9b_10 = simd_andc(Temp27,Temp26);
    638 E9b = simd_andc(M9b_10,strct_Lex__Digit0_9_);
    639 M9b = simd_andc(M9b_10,E9b);
    640 adc128(M9b, strct_Lex__Digit0_9_, carry19, Temp28);
    641 M10b = simd_andc(Temp28,strct_Lex__Digit0_9_);
    642 M11 = simd_or(M7a,M10b);
    643 Temp29 = simd_or(E1,E5b);
    644 NumberErrors = simd_or(Temp29,E9b);
    645 advance_with_carry(TrueStarts, carry20, Scope1_15);
    646 advance_with_carry(Scope1_15, carry21, Scope2_13);
    647 advance_with_carry(Scope2_13, carry22, Scope3_6);
    648 TrueErrors_4 = simd_andc(Scope1_15,temp66);
    649 Temp30 = simd_andc(Scope2_13,strct_Lex__u_);
    650 TrueErrors_5 = simd_or(TrueErrors_4,Temp30);
    651 Temp31 = simd_andc(Scope3_6,temp50);
    652 TrueErrors = simd_or(TrueErrors_5,Temp31);
    653 advance_with_carry(Scope3_6, carry23, Follows_8);
    654 sbb128(Follows_8, TrueStarts, carry_brw0, TrueSpans);
    655 advance_with_carry(FalseStarts, carry24, Scope1_16);
    656 advance_with_carry(Scope1_16, carry25, Scope2_14);
    657 advance_with_carry(Scope2_14, carry26, Scope3_7);
    658 advance_with_carry(Scope3_7, carry27, Scope4);
    659 FalseErrors_1 = simd_andc(Scope1_16,strct_Lex__a_);
    660 Temp32 = simd_andc(Scope2_14,strct_Lex__l_);
    661 FalseErrors_2 = simd_or(FalseErrors_1,Temp32);
    662 Temp33 = simd_andc(Scope3_7,strct_Lex__s_);
    663 FalseErrors_3 = simd_or(FalseErrors_2,Temp33);
    664 Temp34 = simd_andc(Scope4,temp50);
    665 FalseErrors = simd_or(FalseErrors_3,Temp34);
    666 advance_with_carry(Scope4, carry28, Follows_9);
    667 sbb128(Follows_9, FalseStarts, carry_brw1, FalseSpans);
    668 advance_with_carry(NullStarts, carry29, Scope1);
    669 advance_with_carry(Scope1, carry30, Scope2);
    670 advance_with_carry(Scope2, carry31, Scope3);
    671 Temp35 = simd_andc(Scope1,strct_Lex__u_);
    672 NullErrors_11 = simd_or(NullErrors,Temp35);
    673 Temp36 = simd_andc(Scope2,strct_Lex__l_);
    674 NullErrors_12 = simd_or(NullErrors_11,Temp36);
    675 Temp37 = simd_andc(Scope3,strct_Lex__l_);
    676 NullErrors = simd_or(NullErrors_12,Temp37);
    677 advance_with_carry(Scope3, carry32, Follows);
    678 sbb128(Follows, NullStarts, carry_brw2, NullSpans);
    679 Temp38 = simd_or(StringSpans,NumberSpans);
    680 Temp39 = simd_or(Temp38,TrueSpans);
    681 Temp40 = simd_or(Temp39,FalseSpans);
    682 AtomsSpans = simd_or(Temp40,NullSpans);
    683 Temp41 = simd_or(StringErrors,NumberErrors);
    684 Temp42 = simd_or(Temp41,TrueErrors);
    685 Temp43 = simd_or(Temp42,FalseErrors);
    686 error_mask = simd_or(Temp43,NullErrors);
    687 
    688705                       
    689706                        #ifdef DEBUG
     
    707724                        print_simd_register("NullStarts", NullStarts);
    708725                        print_simd_register("AtomSpans", AtomSpans);
     726                        print_simd_register("ErrorMask", error_mask);
    709727                                               
    710728                        #endif
     
    905923StringMask = simd_and(ParityMask,Temp8);
    906924StringSpans = simd_or(StringMask,UnescapedDQuotes);
    907 Temp9 = simd_or(strct_Lex__True_,strct_Lex__False_);
    908 Temp10 = simd_or(Temp9,strct_Lex__Null_);
    909 Temp11 = simd_or(Temp10,strct_Lex__Number_);
    910 AtomSpans = simd_or(Temp11,StringSpans);
    911 advance_with_carry(AtomSpans, carry4, Temp12);
    912 AtomStarts = simd_andc(AtomSpans,Temp12);
    913 StringStarts = simd_and(AtomStarts,strct_Lex__DQuote_);
    914 NumberStarts = simd_and(AtomStarts,temp44);
    915 TrueStarts = simd_and(AtomStarts,temp68);
    916 FalseStarts = simd_and(AtomStarts,temp62);
    917 NullStarts = simd_and(AtomStarts,temp64);
     925advance_with_carry(StringSpans, carry4, Temp9);
     926StringStarts = simd_andc(StringSpans,Temp9);
     927Temp10 = simd_or(strct_Lex__True_,strct_Lex__False_);
     928Temp11 = simd_or(Temp10,strct_Lex__Null_);
     929Temp12 = simd_or(Temp11,strct_Lex__Number_);
     930UnmaskedAtomSpans = simd_andc(Temp12,StringSpans);
     931advance_with_carry(UnmaskedAtomSpans, carry5, Temp13);
     932UnmaskedAtomStarts = simd_andc(UnmaskedAtomSpans,Temp13);
     933NumberStarts = simd_and(UnmaskedAtomStarts,temp44);
     934TrueStarts = simd_and(UnmaskedAtomStarts,temp68);
     935FalseStarts = simd_and(UnmaskedAtomStarts,temp62);
     936NullStarts = simd_and(UnmaskedAtomStarts,temp64);
    918937StringEscapeChars = simd_and(Escape,StringMask);
    919 StringErrors_17 = simd_andc(StringEscapeChars,strct_Lex__Escape_);
     938StringErrors_9 = simd_andc(StringEscapeChars,strct_Lex__Escape_);
    920939u = simd_and(StringEscapeChars,strct_Lex__u_);
    921 advance_with_carry(u, carry5, uScope1);
    922 advance_with_carry(uScope1, carry6, uScope2);
    923 advance_with_carry(uScope2, carry7, uScope3);
    924 advance_with_carry(uScope3, carry8, uScope4);
    925 Temp13 = simd_andc(uScope1,strct_Lex__HexDigit_);
    926 StringErrors_18 = simd_or(StringErrors_17,Temp13);
    927 Temp14 = simd_andc(uScope2,strct_Lex__HexDigit_);
    928 StringErrors_19 = simd_or(StringErrors_18,Temp14);
    929 Temp15 = simd_andc(uScope3,strct_Lex__HexDigit_);
    930 StringErrors_20 = simd_or(StringErrors_19,Temp15);
    931 Temp16 = simd_andc(uScope4,strct_Lex__HexDigit_);
    932 StringErrors_21 = simd_or(StringErrors_20,Temp16);
    933 Temp17 = simd_or(Escape,strct_Lex__RSolidus_);
    934 StringNotEscapedChars = simd_andc(StringMask,Temp17);
    935 Temp18 = simd_and(StringNotEscapedChars,strct_Ctrl__x00_x1F_);
    936 StringErrors_22 = simd_or(StringErrors_21,Temp18);
    937 advance_with_carry(StringStarts, carry9, StringCursor);
    938 adc128(StringCursor, StringMask, carry10, Temp19);
    939 StringEnds = simd_andc(Temp19,StringMask);
    940 Temp20 = simd_andc(StringEnds,UnescapedDQuotes);
    941 StringErrors = simd_or(StringErrors_22,Temp20);
     940advance_with_carry(u, carry6, uScope1);
     941advance_with_carry(uScope1, carry7, uScope2);
     942advance_with_carry(uScope2, carry8, uScope3);
     943advance_with_carry(uScope3, carry9, uScope4);
     944Temp14 = simd_andc(uScope1,strct_Lex__HexDigit_);
     945StringErrors_10 = simd_or(StringErrors_9,Temp14);
     946Temp15 = simd_andc(uScope2,strct_Lex__HexDigit_);
     947StringErrors_11 = simd_or(StringErrors_10,Temp15);
     948Temp16 = simd_andc(uScope3,strct_Lex__HexDigit_);
     949StringErrors_12 = simd_or(StringErrors_11,Temp16);
     950Temp17 = simd_andc(uScope4,strct_Lex__HexDigit_);
     951StringErrors_13 = simd_or(StringErrors_12,Temp17);
     952Temp18 = simd_or(Escape,strct_Lex__RSolidus_);
     953StringNotEscapedChars = simd_andc(StringMask,Temp18);
     954Temp19 = simd_and(StringNotEscapedChars,strct_Ctrl__x00_x1F_);
     955StringErrors_14 = simd_or(StringErrors_13,Temp19);
     956advance_with_carry(StringStarts, carry10, StringCursor);
     957adc128(StringCursor, StringMask, carry11, Temp20);
     958StringEnds = simd_andc(Temp20,StringMask);
     959Temp21 = simd_andc(StringEnds,UnescapedDQuotes);
     960StringErrors = simd_or(StringErrors_14,Temp21);
    942961M0 = NumberStarts;
    943 Temp21 = simd_and(strct_Lex__Minus_,NumberStarts);
    944 adc128(NumberStarts, Temp21, carry11, Temp22);
    945 M1_23 = simd_andc(Temp22,Temp21);
    946 Temp23 = simd_or(strct_Lex__Zero_,strct_Lex__Digit1_9_);
    947 E1 = simd_andc(M1_23,Temp23);
    948 M1 = simd_andc(M1_23,E1);
     962Temp22 = simd_and(strct_Lex__Minus_,NumberStarts);
     963adc128(NumberStarts, Temp22, carry12, Temp23);
     964M1_15 = simd_andc(Temp23,Temp22);
     965Temp24 = simd_or(strct_Lex__Zero_,strct_Lex__Digit1_9_);
     966E1 = simd_andc(M1_15,Temp24);
     967M1 = simd_andc(M1_15,E1);
    949968M1a = simd_and(M1,strct_Lex__Zero_);
    950969M1b = simd_and(M1,strct_Lex__Digit1_9_);
    951 advance_with_carry(M1a, carry12, M2a);
    952 advance_with_carry(M1b, carry13, M2b);
    953 adc128(M2b, strct_Lex__Digit0_9_, carry14, Temp24);
    954 M3b = simd_andc(Temp24,strct_Lex__Digit0_9_);
     970advance_with_carry(M1a, carry13, M2a);
     971advance_with_carry(M1b, carry14, M2b);
     972adc128(M2b, strct_Lex__Digit0_9_, carry15, Temp25);
     973M3b = simd_andc(Temp25,strct_Lex__Digit0_9_);
    955974M4 = simd_or(M2a,M3b);
    956975M4a = simd_andc(M4,strct_Lex__DecimalPoint_);
    957976M4b = simd_and(M4,strct_Lex__DecimalPoint_);
    958 advance_with_carry(M4b, carry15, M5b_0);
     977advance_with_carry(M4b, carry16, M5b_0);
    959978E5b = simd_andc(M5b_0,strct_Lex__Digit0_9_);
    960979M5b = simd_andc(M5b_0,E5b);
    961 adc128(M5b, strct_Lex__Digit0_9_, carry16, Temp25);
    962 M6 = simd_andc(Temp25,strct_Lex__Digit0_9_);
     980adc128(M5b, strct_Lex__Digit0_9_, carry17, Temp26);
     981M6 = simd_andc(Temp26,strct_Lex__Digit0_9_);
    963982M7 = simd_or(M4a,M6);
    964983M7a = simd_andc(M7,strct_Lex__Ee_);
    965984M7b = simd_and(M7,strct_Lex__Ee_);
    966 advance_with_carry(M7b, carry17, M8b);
    967 Temp26 = simd_and(strct_Lex__PlusMinus_,M8b);
    968 adc128(M8b, Temp26, carry18, Temp27);
    969 M9b_10 = simd_andc(Temp27,Temp26);
    970 E9b = simd_andc(M9b_10,strct_Lex__Digit0_9_);
    971 M9b = simd_andc(M9b_10,E9b);
    972 adc128(M9b, strct_Lex__Digit0_9_, carry19, Temp28);
    973 M10b = simd_andc(Temp28,strct_Lex__Digit0_9_);
    974 M11 = simd_or(M7a,M10b);
    975 Temp29 = simd_or(E1,E5b);
    976 NumberErrors = simd_or(Temp29,E9b);
    977 advance_with_carry(TrueStarts, carry20, Scope1_15);
    978 advance_with_carry(Scope1_15, carry21, Scope2_13);
    979 advance_with_carry(Scope2_13, carry22, Scope3_6);
    980 TrueErrors_4 = simd_andc(Scope1_15,temp66);
    981 Temp30 = simd_andc(Scope2_13,strct_Lex__u_);
    982 TrueErrors_5 = simd_or(TrueErrors_4,Temp30);
    983 Temp31 = simd_andc(Scope3_6,temp50);
    984 TrueErrors = simd_or(TrueErrors_5,Temp31);
    985 advance_with_carry(Scope3_6, carry23, Follows_8);
    986 sbb128(Follows_8, TrueStarts, carry_brw0, TrueSpans);
    987 advance_with_carry(FalseStarts, carry24, Scope1_16);
    988 advance_with_carry(Scope1_16, carry25, Scope2_14);
    989 advance_with_carry(Scope2_14, carry26, Scope3_7);
    990 advance_with_carry(Scope3_7, carry27, Scope4);
    991 FalseErrors_1 = simd_andc(Scope1_16,strct_Lex__a_);
    992 Temp32 = simd_andc(Scope2_14,strct_Lex__l_);
    993 FalseErrors_2 = simd_or(FalseErrors_1,Temp32);
    994 Temp33 = simd_andc(Scope3_7,strct_Lex__s_);
    995 FalseErrors_3 = simd_or(FalseErrors_2,Temp33);
    996 Temp34 = simd_andc(Scope4,temp50);
    997 FalseErrors = simd_or(FalseErrors_3,Temp34);
    998 advance_with_carry(Scope4, carry28, Follows_9);
    999 sbb128(Follows_9, FalseStarts, carry_brw1, FalseSpans);
    1000 advance_with_carry(NullStarts, carry29, Scope1);
    1001 advance_with_carry(Scope1, carry30, Scope2);
    1002 advance_with_carry(Scope2, carry31, Scope3);
    1003 Temp35 = simd_andc(Scope1,strct_Lex__u_);
    1004 NullErrors_11 = simd_or(NullErrors,Temp35);
    1005 Temp36 = simd_andc(Scope2,strct_Lex__l_);
    1006 NullErrors_12 = simd_or(NullErrors_11,Temp36);
    1007 Temp37 = simd_andc(Scope3,strct_Lex__l_);
    1008 NullErrors = simd_or(NullErrors_12,Temp37);
    1009 advance_with_carry(Scope3, carry32, Follows);
    1010 sbb128(Follows, NullStarts, carry_brw2, NullSpans);
    1011 Temp38 = simd_or(StringSpans,NumberSpans);
    1012 Temp39 = simd_or(Temp38,TrueSpans);
    1013 Temp40 = simd_or(Temp39,FalseSpans);
    1014 AtomsSpans = simd_or(Temp40,NullSpans);
    1015 Temp41 = simd_or(StringErrors,NumberErrors);
    1016 Temp42 = simd_or(Temp41,TrueErrors);
    1017 Temp43 = simd_or(Temp42,FalseErrors);
    1018 error_mask = simd_or(Temp43,NullErrors);
    1019 
     985advance_with_carry(M7b, carry18, M8b);
     986Temp27 = simd_and(strct_Lex__PlusMinus_,M8b);
     987adc128(M8b, Temp27, carry19, Temp28);
     988M9b_6 = simd_andc(Temp28,Temp27);
     989E9b = simd_andc(M9b_6,strct_Lex__Digit0_9_);
     990M9b = simd_andc(M9b_6,E9b);
     991adc128(M9b, strct_Lex__Digit0_9_, carry20, Temp29);
     992M10b = simd_andc(Temp29,strct_Lex__Digit0_9_);
     993Temp30 = simd_or(E1,E5b);
     994Temp31 = simd_or(Temp30,E9b);
     995Temp32 = simd_or(Temp31,M7a);
     996M11 = simd_or(Temp32,M10b);
     997NumberErrors = Temp31;
     998sbb128(M11, NumberStarts, carry_brw0, NumberSpans);
     999advance_with_carry(TrueStarts, carry21, TrueScope1);
     1000advance_with_carry(TrueScope1, carry22, TrueScope2);
     1001advance_with_carry(TrueScope2, carry23, TrueScope3);
     1002TrueErrors_4 = simd_andc(TrueScope1,temp66);
     1003Temp33 = simd_andc(TrueScope2,strct_Lex__u_);
     1004TrueErrors_5 = simd_or(TrueErrors_4,Temp33);
     1005Temp34 = simd_andc(TrueScope3,temp50);
     1006TrueErrors = simd_or(TrueErrors_5,Temp34);
     1007advance_with_carry(TrueScope3, carry24, TrueFollows);
     1008sbb128(TrueFollows, TrueStarts, carry_brw1, TrueSpans);
     1009advance_with_carry(FalseStarts, carry25, FalseScope1);
     1010advance_with_carry(FalseScope1, carry26, FalseScope2);
     1011advance_with_carry(FalseScope2, carry27, FalseScope3);
     1012advance_with_carry(FalseScope3, carry28, FalseScope4);
     1013FalseErrors_1 = simd_andc(FalseScope1,strct_Lex__a_);
     1014Temp35 = simd_andc(FalseScope2,strct_Lex__l_);
     1015FalseErrors_2 = simd_or(FalseErrors_1,Temp35);
     1016Temp36 = simd_andc(FalseScope3,strct_Lex__s_);
     1017FalseErrors_3 = simd_or(FalseErrors_2,Temp36);
     1018Temp37 = simd_andc(FalseScope4,temp50);
     1019FalseErrors = simd_or(FalseErrors_3,Temp37);
     1020advance_with_carry(FalseScope4, carry29, FalseFollows);
     1021sbb128(FalseFollows, FalseStarts, carry_brw2, FalseSpans);
     1022advance_with_carry(NullStarts, carry30, NullScope1);
     1023advance_with_carry(NullScope1, carry31, NullScope2);
     1024advance_with_carry(NullScope2, carry32, NullScope3);
     1025Temp38 = simd_andc(NullScope1,strct_Lex__u_);
     1026NullErrors_7 = simd_or(NullErrors,Temp38);
     1027Temp39 = simd_andc(NullScope2,strct_Lex__l_);
     1028NullErrors_8 = simd_or(NullErrors_7,Temp39);
     1029Temp40 = simd_andc(NullScope3,strct_Lex__l_);
     1030NullErrors = simd_or(NullErrors_8,Temp40);
     1031advance_with_carry(Scope3, carry33, NullFollows);
     1032sbb128(NullFollows, NullStarts, carry_brw3, NullSpans);
     1033Temp41 = simd_or(StringStarts,NumberStarts);
     1034Temp42 = simd_or(Temp41,TrueStarts);
     1035Temp43 = simd_or(Temp42,FalseStarts);
     1036AtomStarts = simd_or(Temp43,NullStarts);
     1037Temp44 = simd_or(StringSpans,NumberSpans);
     1038Temp45 = simd_or(Temp44,TrueSpans);
     1039Temp46 = simd_or(Temp45,FalseSpans);
     1040AtomSpans = simd_or(Temp46,NullSpans);
     1041Temp47 = simd_or(StringErrors,Temp31);
     1042Temp48 = simd_or(Temp47,TrueErrors);
     1043Temp49 = simd_or(Temp48,FalseErrors);
     1044error_mask = simd_or(Temp49,NullErrors);
     1045
     1046                       
     1047                       
    10201048                        #ifdef DEBUG
    10211049                       
     
    10381066                        print_simd_register("NullStarts", NullStarts);
    10391067                        print_simd_register("AtomSpans", AtomSpans);
    1040                                                
     1068                        print_simd_register("ErrorMask", error_mask);                   
     1069                       
    10411070                        #endif
    10421071                       
  • proto/JSON/template.c

    r766 r768  
    114114                        print_simd_register("NullStarts", NullStarts);
    115115                        print_simd_register("AtomSpans", AtomSpans);
     116                        print_simd_register("ErrorMask", error_mask);
    116117                                               
    117118                        #endif
     
    174175                        print_simd_register("NullStarts", NullStarts);
    175176                        print_simd_register("AtomSpans", AtomSpans);
     177                        print_simd_register("ErrorMask", error_mask);                   
    176178                       
    177179                        #endif
Note: See TracChangeset for help on using the changeset viewer.