Ignore:
Timestamp:
Jun 14, 2013, 5:15:04 PM (6 years ago)
Author:
ksherdy
Message:

Preparation for pablo_blk calls.

File:
1 edited

Legend:

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

    r3280 r3309  
    145145                }
    146146
    147 
     147        ///////////////////////////////////////////////////////////////////
     148        // AssignNode
     149                public void visitLeave(AssignNode node) { // TODO: KS: Factor out duplicate AssignNode/LocalVarDeclNode
     150
     151                    ASTNode rhs = Accessors.rhs(node);
     152                    if(BuiltinCallUtil.isCarry(rhs)) {
     153                        FuncCallNode funcCall = (FuncCallNode)rhs;
     154                        PabloSBuiltin builtin = BuiltinCallUtil.builtin(funcCall);
     155                        Counter counter = selectCounter(builtin, carryCounter, advanceNCounter);
     156                        BuiltinTranslator translator = builtin.getTranslator();
     157                        translator.translate(builtin, funcCall, counter, context);
     158                    }
     159                }
     160
     161        ///////////////////////////////////////////////////////////////////
     162        // LocalVarDeclNode
     163        public void visitLeave(LocalVarDeclNode node) {
     164            if(Accessors.hasInitExpr(node)) {
     165
     166                ASTNode rhs = Accessors.rhs(node);
     167                if(BuiltinCallUtil.isCarry(rhs)) {
     168                    FuncCallNode funcCall = (FuncCallNode)rhs;
     169                    PabloSBuiltin builtin = BuiltinCallUtil.builtin(funcCall);
     170                    Counter counter = selectCounter(builtin, carryCounter, advanceNCounter);
     171                    BuiltinTranslator translator = builtin.getTranslator();
     172                    translator.translate(builtin, funcCall, counter, context);
     173                }
     174            }
     175        }
    148176               
    149177                ///////////////////////////////////////////////////////////////////
     
    151179               
    152180                public void visitLeave(FuncCallNode node) {
    153                         if(BuiltinCallUtil.isBuiltInCall(node)) {
     181                        if(BuiltinCallUtil.isCarryNone(node)) {
    154182                                PabloSBuiltin builtin = BuiltinCallUtil.builtin(node);
    155183                                Counter counter = selectCounter(builtin, carryCounter, advanceNCounter);
Note: See TracChangeset for help on using the changeset viewer.