Changeset 2959


Ignore:
Timestamp:
Mar 23, 2013, 6:34:35 PM (5 years ago)
Author:
ksherdy
Message:

Updated PabloJ compiler to output carryQ macros.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/output/cpplang/pablo_definitions.hpp

    r2952 r2959  
    1616#ifndef PABLO_DEFINITIONS_HPP
    1717#define PABLO_DEFINITIONS_HPP
    18 
    19 #define LocalCarryDeclare(name, count)\
    20 CarryArray<count, 0> name;\
    2118
    2219// runtime libraries
     
    295292                }
    296293                u8.unibyte = simd_not(basis_bits.bit_0);
    297                 u8.suffix = 0;
    298                 BitBlock u8_error = 0;
    299                 BitBlock u8_FFFE_FFFF = 0;
    300                 BitBlock u8anyscope = 0;
     294                u8.suffix = simd<1>::constant<0>();
     295                BitBlock u8_error = simd<1>::constant<0>();
     296                BitBlock u8_FFFE_FFFF = simd<1>::constant<0>();
     297                BitBlock u8anyscope = simd<1>::constant<0>();
    301298                if (bitblock::any(simd_or(basis_bits.bit_0, carryQ.PabloJCarryTest(0, 10))))
    302299                {
     
    470467                }
    471468                u8.unibyte = simd_not(basis_bits.bit_0);
    472                 u8.suffix = 0;
    473                 BitBlock u8_error = 0;
    474                 BitBlock u8_FFFE_FFFF = 0;
    475                 BitBlock u8anyscope = 0;
     469                u8.suffix = simd<1>::constant<0>();
     470                BitBlock u8_error = simd<1>::constant<0>();
     471                BitBlock u8_FFFE_FFFF = simd<1>::constant<0>();
     472                BitBlock u8anyscope = simd<1>::constant<0>();
    476473                if (bitblock::any(simd_or(basis_bits.bit_0, carryQ.PabloJCarryTest(0, 10))))
    477474                {
     
    544541        }
    545542       
    546         CarryArray<10,0> carryQ;
     543        CarryDeclare(carryQ, 10, 0);
    547544};
    548545 
     
    556553        IDISA_INLINE void do_block(struct Lex & lex, struct Marker & marker, struct CtCDPI_Callouts & ctCDPI_Callouts, struct Check_streams & check_streams)
    557554        {
    558                 ctCDPI_Callouts.Ct_starts = 0;
    559                 ctCDPI_Callouts.Ct_ends = 0;
    560                 ctCDPI_Callouts.CD_starts = 0;
    561                 ctCDPI_Callouts.CD_ends = 0;
    562                 ctCDPI_Callouts.PI_starts = 0;
    563                 ctCDPI_Callouts.PI_name_starts = 0;
    564                 ctCDPI_Callouts.PI_name_ends = 0;
    565                 ctCDPI_Callouts.PI_ends = 0;
    566                 BitBlock CtCDPI_starts = 0;
    567                 BitBlock CtCDPI_ends = 0;
    568                 BitBlock ctCDPI_mask = 0;
     555                ctCDPI_Callouts.Ct_starts = simd<1>::constant<0>();
     556                ctCDPI_Callouts.Ct_ends = simd<1>::constant<0>();
     557                ctCDPI_Callouts.CD_starts = simd<1>::constant<0>();
     558                ctCDPI_Callouts.CD_ends = simd<1>::constant<0>();
     559                ctCDPI_Callouts.PI_starts = simd<1>::constant<0>();
     560                ctCDPI_Callouts.PI_name_starts = simd<1>::constant<0>();
     561                ctCDPI_Callouts.PI_name_ends = simd<1>::constant<0>();
     562                ctCDPI_Callouts.PI_ends = simd<1>::constant<0>();
     563                BitBlock CtCDPI_starts = simd<1>::constant<0>();
     564                BitBlock CtCDPI_ends = simd<1>::constant<0>();
     565                BitBlock ctCDPI_mask = simd<1>::constant<0>();
    569566                BitBlock v = simd_or(lex.LAngle, lex.Hyphen);
    570567                BitBlock w = simd_or(lex.Hyphen, lex.QMark);
     
    575572                BitBlock CtCD_opener = simd_and(LAngle_scope, lex.Exclam);
    576573                BitBlock CtCDPI_opener = simd_or(PI_opener, CtCD_opener);
    577                 BitBlock CD_closer = 0;
     574                BitBlock CD_closer = simd<1>::constant<0>();
    578575                BitBlock DoubleHyphen = simd_and(simd_and(v1, w1), lex.Hyphen);
    579576                if (bitblock::any(simd_or(lex.RBracket, carryQ.PabloJCarryTest(0, 2))))
     
    655652                        while (bitblock::any(CtCDPI_Cursor))
    656653                        {
    657                                 LocalCarryDeclare(subcarryQ, 13);
     654                                CarryDeclare(subcarryQ, 13, 0);
    658655                                CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    659656                                BitBlock PI_Cursor = simd_and(CtCDPI_Cursor, PI_opener);
     
    723720        void do_final_block(struct Lex & lex, struct Marker & marker, struct CtCDPI_Callouts & ctCDPI_Callouts, struct Check_streams & check_streams, BitBlock & EOF_mask)
    724721        {
    725                 ctCDPI_Callouts.Ct_starts = 0;
    726                 ctCDPI_Callouts.Ct_ends = 0;
    727                 ctCDPI_Callouts.CD_starts = 0;
    728                 ctCDPI_Callouts.CD_ends = 0;
    729                 ctCDPI_Callouts.PI_starts = 0;
    730                 ctCDPI_Callouts.PI_name_starts = 0;
    731                 ctCDPI_Callouts.PI_name_ends = 0;
    732                 ctCDPI_Callouts.PI_ends = 0;
    733                 BitBlock CtCDPI_starts = 0;
    734                 BitBlock CtCDPI_ends = 0;
    735                 BitBlock ctCDPI_mask = 0;
     722                ctCDPI_Callouts.Ct_starts = simd<1>::constant<0>();
     723                ctCDPI_Callouts.Ct_ends = simd<1>::constant<0>();
     724                ctCDPI_Callouts.CD_starts = simd<1>::constant<0>();
     725                ctCDPI_Callouts.CD_ends = simd<1>::constant<0>();
     726                ctCDPI_Callouts.PI_starts = simd<1>::constant<0>();
     727                ctCDPI_Callouts.PI_name_starts = simd<1>::constant<0>();
     728                ctCDPI_Callouts.PI_name_ends = simd<1>::constant<0>();
     729                ctCDPI_Callouts.PI_ends = simd<1>::constant<0>();
     730                BitBlock CtCDPI_starts = simd<1>::constant<0>();
     731                BitBlock CtCDPI_ends = simd<1>::constant<0>();
     732                BitBlock ctCDPI_mask = simd<1>::constant<0>();
    736733                BitBlock v = simd_or(lex.LAngle, lex.Hyphen);
    737734                BitBlock w = simd_or(lex.Hyphen, lex.QMark);
     
    742739                BitBlock CtCD_opener = simd_and(LAngle_scope, lex.Exclam);
    743740                BitBlock CtCDPI_opener = simd_or(PI_opener, CtCD_opener);
    744                 BitBlock CD_closer = 0;
     741                BitBlock CD_closer = simd<1>::constant<0>();
    745742                BitBlock DoubleHyphen = simd_and(simd_and(v1, w1), lex.Hyphen);
    746743                if (bitblock::any(simd_or(lex.RBracket, carryQ.PabloJCarryTest(0, 2))))
     
    822819                        while (bitblock::any(simd_and(CtCDPI_Cursor, EOF_mask)))
    823820                        {
    824                                 LocalCarryDeclare(subcarryQ, 13);
     821                                CarryDeclare(subcarryQ, 13, 0);
    825822                                CtCDPI_starts = simd_or(CtCDPI_starts, CtCDPI_Cursor);
    826823                                BitBlock PI_Cursor = simd_and(CtCDPI_Cursor, PI_opener);
     
    887884        }
    888885       
    889         CarryArray<17,2> carryQ;
     886        CarryDeclare(carryQ, 17, 2);
    890887};
    891888 
     
    899896        IDISA_INLINE void do_block(struct Lex & lex, struct Marker & marker, struct Tag_Callouts & tag_Callouts)
    900897        {
    901                 BitBlock EqExpected = 0;
    902                 BitBlock AttListEnd = 0;
     898                BitBlock EqExpected = simd<1>::constant<0>();
     899                BitBlock AttListEnd = simd<1>::constant<0>();
    903900                BitBlock DQuoteDelim = simd_or(lex.DQuote, lex.LAngle);
    904901                BitBlock SQuoteDelim = simd_or(lex.SQuote, lex.LAngle);
     
    908905                tag_Callouts.ElemName_ends = carryQ.BitBlock_scanthru_ci_co(tag_Callouts.ElemName_starts, lex.NameScan, carryQ.get_carry_in(0), 0);
    909906                BitBlock ParseError = simd_and(tag_Callouts.ElemName_starts, tag_Callouts.ElemName_ends);
    910                 tag_Callouts.AttName_starts = 0;
    911                 tag_Callouts.AttName_ends = 0;
    912                 tag_Callouts.AttVal_starts = 0;
    913                 tag_Callouts.AttVal_ends = 0;
     907                tag_Callouts.AttName_starts = simd<1>::constant<0>();
     908                tag_Callouts.AttName_ends = simd<1>::constant<0>();
     909                tag_Callouts.AttVal_starts = simd<1>::constant<0>();
     910                tag_Callouts.AttVal_ends = simd<1>::constant<0>();
    914911                if (bitblock::any(simd_or(simd_and(tag_Callouts.ElemName_ends, lex.WS), carryQ.PabloJCarryTest(1, 8))))
    915912                {
     
    958955                                while (bitblock::any(AttNameStart))
    959956                                {
    960                                         LocalCarryDeclare(subcarryQ, 7);
     957                                        CarryDeclare(subcarryQ, 7, 0);
    961958                                        ParseError = simd_or(ParseError, simd_andc(AttNameStart, lex.NameScan));
    962959                                        tag_Callouts.AttName_starts = simd_or(tag_Callouts.AttName_starts, AttNameStart);
     
    10311028        void do_final_block(struct Lex & lex, struct Marker & marker, struct Tag_Callouts & tag_Callouts, BitBlock & EOF_mask)
    10321029        {
    1033                 BitBlock EqExpected = 0;
    1034                 BitBlock AttListEnd = 0;
     1030                BitBlock EqExpected = simd<1>::constant<0>();
     1031                BitBlock AttListEnd = simd<1>::constant<0>();
    10351032                BitBlock DQuoteDelim = simd_or(lex.DQuote, lex.LAngle);
    10361033                BitBlock SQuoteDelim = simd_or(lex.SQuote, lex.LAngle);
     
    10401037                tag_Callouts.ElemName_ends = carryQ.BitBlock_scanthru_ci_co(tag_Callouts.ElemName_starts, lex.NameScan, carryQ.get_carry_in(0), 0);
    10411038                BitBlock ParseError = simd_and(tag_Callouts.ElemName_starts, tag_Callouts.ElemName_ends);
    1042                 tag_Callouts.AttName_starts = 0;
    1043                 tag_Callouts.AttName_ends = 0;
    1044                 tag_Callouts.AttVal_starts = 0;
    1045                 tag_Callouts.AttVal_ends = 0;
     1039                tag_Callouts.AttName_starts = simd<1>::constant<0>();
     1040                tag_Callouts.AttName_ends = simd<1>::constant<0>();
     1041                tag_Callouts.AttVal_starts = simd<1>::constant<0>();
     1042                tag_Callouts.AttVal_ends = simd<1>::constant<0>();
    10461043                if (bitblock::any(simd_or(simd_and(tag_Callouts.ElemName_ends, lex.WS), carryQ.PabloJCarryTest(1, 8))))
    10471044                {
     
    10901087                                while (bitblock::any(simd_and(AttNameStart, EOF_mask)))
    10911088                                {
    1092                                         LocalCarryDeclare(subcarryQ, 7);
     1089                                        CarryDeclare(subcarryQ, 7, 0);
    10931090                                        ParseError = simd_or(ParseError, simd_andc(AttNameStart, lex.NameScan));
    10941091                                        tag_Callouts.AttName_starts = simd_or(tag_Callouts.AttName_starts, AttNameStart);
     
    11601157        }
    11611158       
    1162         CarryArray<13,0> carryQ;
     1159        CarryDeclare(carryQ, 13, 0);
    11631160};
    11641161 
     
    11721169        IDISA_INLINE void do_block(struct Lex & lex, struct Marker & marker, struct Ref_Callouts & ref_Callouts)
    11731170        {
    1174                 ref_Callouts.GenRef_starts = 0;
    1175                 ref_Callouts.GenRef_ends = 0;
    1176                 ref_Callouts.DecRef_starts = 0;
    1177                 ref_Callouts.DecRef_ends = 0;
    1178                 ref_Callouts.HexRef_starts = 0;
    1179                 ref_Callouts.HexRef_ends = 0;
    1180                 BitBlock ref_error = 0;
     1171                ref_Callouts.GenRef_starts = simd<1>::constant<0>();
     1172                ref_Callouts.GenRef_ends = simd<1>::constant<0>();
     1173                ref_Callouts.DecRef_starts = simd<1>::constant<0>();
     1174                ref_Callouts.DecRef_ends = simd<1>::constant<0>();
     1175                ref_Callouts.HexRef_starts = simd<1>::constant<0>();
     1176                ref_Callouts.HexRef_ends = simd<1>::constant<0>();
     1177                BitBlock ref_error = simd<1>::constant<0>();
    11811178                if (bitblock::any(simd_or(marker.Ref_opener, carryQ.PabloJCarryTest(0, 6))))
    11821179                {
     
    12091206        void do_final_block(struct Lex & lex, struct Marker & marker, struct Ref_Callouts & ref_Callouts, BitBlock & EOF_mask)
    12101207        {
    1211                 ref_Callouts.GenRef_starts = 0;
    1212                 ref_Callouts.GenRef_ends = 0;
    1213                 ref_Callouts.DecRef_starts = 0;
    1214                 ref_Callouts.DecRef_ends = 0;
    1215                 ref_Callouts.HexRef_starts = 0;
    1216                 ref_Callouts.HexRef_ends = 0;
    1217                 BitBlock ref_error = 0;
     1208                ref_Callouts.GenRef_starts = simd<1>::constant<0>();
     1209                ref_Callouts.GenRef_ends = simd<1>::constant<0>();
     1210                ref_Callouts.DecRef_starts = simd<1>::constant<0>();
     1211                ref_Callouts.DecRef_ends = simd<1>::constant<0>();
     1212                ref_Callouts.HexRef_starts = simd<1>::constant<0>();
     1213                ref_Callouts.HexRef_ends = simd<1>::constant<0>();
     1214                BitBlock ref_error = simd<1>::constant<0>();
    12181215                if (bitblock::any(simd_or(marker.Ref_opener, carryQ.PabloJCarryTest(0, 6))))
    12191216                {
     
    12431240        }
    12441241       
    1245         CarryArray<6,0> carryQ;
     1242        CarryDeclare(carryQ, 6, 0);
    12461243};
    12471244 
     
    13041301        }
    13051302       
    1306         CarryArray<9,0> carryQ;
     1303        CarryDeclare(carryQ, 9, 0);
    13071304};
    13081305 
     
    13361333        }
    13371334       
     1335        CarryDeclare(carryQ, 0, 0);
    13381336};
    13391337 
Note: See TracChangeset for help on using the changeset viewer.