Changeset 2577


Ignore:
Timestamp:
Oct 28, 2012, 1:55:32 PM (6 years ago)
Author:
ksherdy
Message:

Updated carry intro. If/While? pending.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/pablo/src/compiler/visitors/CarryIntro.java

    r2460 r2577  
    3636     */ 
    3737    public void transform(boolean ci, boolean co) { // ci - carry in xformation mode, co - carry out mode xformation mode
    38                        
    39         if ((new CarryCounter(this.ASTTree)).count() > 0) {
    4038                CarryIntroVisitor visitor = new CarryIntroVisitor(ci, co);
    4139                ASTTree.accept(visitor);
    42         }
    4340    }                   
    4441       
     
    260257                        else  if (Builtins.isCall(node, Builtins.BUILTIN_PACKAGE_NAME, NoCarry.ATEOF.pabloName(), NoCarry.ATEOF.argCount())) {
    261258                                         
    262                                 if(!this.coMode) { // non final block
    263                                         replacementNode = Generators.makeFunctionInvocationNode(SIMD.CONSTANT.idisaConstantName(1, 0), node.getToken());                                       
    264                                 } else {
     259                                if(!this.coMode) { // if not final block
    265260                                        replacementNode = Generators.makeFunctionInvocationNode(SIMD.ANDC.idisaName(), node.getToken());
    266261                                        for(ASTNode arg : Accessors.functionInvocationArgs(node)) {
     
    268263                                        }                                                                       
    269264                                        replacementNode.appendChild(Generators.makeIdentifierNode(Constants.EOFMASK.cName(), node.getToken()));
     265                                } else {
     266                                        replacementNode = Generators.makeFunctionInvocationNode(SIMD.CONSTANT.idisaConstantName(1, 0), node.getToken());                                       
    270267                                }
    271268                                node.updateSelf(replacementNode);
     
    278275        //            else: return mkCall('simd_and', [callnode.args[0], ast.Name('EOF_mask', ast.Load())])
    279276
    280                         // if X & EOF_mask ==> inFile(X)
    281277                        else if (Builtins.isCall(node, Builtins.BUILTIN_PACKAGE_NAME, NoCarry.INFILE.pabloName(), NoCarry.INFILE.argCount())) {
    282                                 if(!this.coMode) {  // non final block
    283                                         replacementNode = Accessors.functionInvocationArg(node,0);
    284                                 } else {
     278                               
     279                                if(!this.coMode) {  // if not final block
    285280                                        replacementNode = Generators.makeFunctionInvocationNode(SIMD.AND.idisaName(), node.getToken());
    286281                                        for(ASTNode arg : Accessors.functionInvocationArgs(node)) {
     
    288283                                        }                                                                       
    289284                                        replacementNode.appendChild(Generators.makeIdentifierNode(Constants.EOFMASK.cName(), node.getToken()));
     285                                } else {
     286                                        replacementNode = Accessors.functionInvocationArg(node,0);
    290287                                }
    291288                                node.updateSelf(replacementNode);
Note: See TracChangeset for help on using the changeset viewer.