Changeset 3101


Ignore:
Timestamp:
Apr 30, 2013, 2:50:50 AM (6 years ago)
Author:
ksherdy
Message:

Migrated visitor to pablo.Mask(fw,int) call.

Location:
proto/pabloj/trunk/src/toolchain/pabloS/semanticAnalyzer/visitors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/src/toolchain/pabloS/semanticAnalyzer/visitors/CarryIntroXFormer.java

    r3098 r3101  
    99import toolchain.pabloB.lang.carrySet.AbstractCarrySetBuiltins2Lang;
    1010import toolchain.pabloB.lang.carrySet.CarrySetBuiltins;
    11 import toolchain.pabloB.lang.idisa.IDISASIMDBitwiseBuiltins;
    12 import toolchain.pabloB.lang.idisa.IDISASIMDBuiltins;
    1311import toolchain.pabloS.ast.Accessors;
    1412import toolchain.pabloS.ast.Generators;
  • proto/pabloj/trunk/src/toolchain/pabloS/semanticAnalyzer/visitors/InitStreamDefaultsXFormer.java

    r3010 r3101  
    11/*
    22 * Sets unintialized stream primitives variables and members to defaults.
     3 *
     4 * This visitor is not complete. Struct member initialization via def/use chaining is required.
    35 *
    46 * stream<2^k> (stream) ->      simd<2^k>::constant(0)
     
    1214
    1315import pabloS.ast.*;
    14 import toolchain.pabloB.lang.idisa.IDISASIMDBuiltins;
    1516import toolchain.pabloS.ast.Accessors;
    1617import toolchain.pabloS.ast.Generators;
     18import toolchain.pabloS.lang.PabloSBuiltins;
    1719
    1820
     
    4345                                if(type instanceof StreamTypeNode) {
    4446                                       
    45                                         String fieldWidth = "1";
     47                                        int fieldWidth = 1;
    4648                                       
    4749                                        if(Accessors.hasFieldWidth((StreamTypeNode)type)) {
    48                                                 fieldWidth = Accessors.fieldWidthLexeme(Accessors.fieldWidthNode((StreamTypeNode)type));
     50                                                fieldWidth = Integer.parseInt(Accessors.fieldWidthLexeme(Accessors.fieldWidthNode((StreamTypeNode)type)));
    4951                                        }
    5052                                       
    51                                         FuncCallNode funcCallNode = Generators.makeFuncCallNode(IDISASIMDBuiltins.CONSTANT.ConstantName(fieldWidth,"0"), node.getToken());
     53                                        IntegerConstantNode zeroConstantNode =  Generators.makeIntegerConstantNode(0, node.getToken());
     54                                        IntegerConstantNode fieldWidthNode =  Generators.makeIntegerConstantNode(fieldWidth, node.getToken());
    5255                                       
    53                                         LocalVarDeclNode localVarDeclNode = Generators.makeLocalVarDeclNode(type, identifier, funcCallNode, node.getToken());
     56                                        FuncCallNode mask = Generators.makeFuncCallNode(PabloSBuiltins.MASK.pabloSName(),
     57                                                        node.getToken(),
     58                                                        fieldWidthNode, zeroConstantNode);
     59                                       
     60                                        LocalVarDeclNode localVarDeclNode = Generators.makeLocalVarDeclNode(type, identifier, mask, node.getToken());
    5461                                       
    5562                                        node.updateSelf(localVarDeclNode);
     
    6067               
    6168                public void visitLeave(StructMemberNode node) {
    62                        
     69                        // TODO - implement
    6370                }
    6471               
Note: See TracChangeset for help on using the changeset viewer.