Ignore:
Timestamp:
May 13, 2013, 2:14:46 PM (6 years ago)
Author:
shermer
Message:

Changes to hopefully bring into compatibility with trunk, rev. 3127.

Location:
proto/pabloj/branches/refactor-experimental/src/toolchain
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/idisa/AbstractIDISABuiltin2Lang.java

    r3032 r3134  
    2626package toolchain.pabloB.codeGenerator.idisa;
    2727
     28import java.util.ArrayList;
     29
     30import toolchain.pabloB.codeGenerator.helpers.UnparserUtil;
     31
    2832public abstract class AbstractIDISABuiltin2Lang {
     33       
     34        protected String _firstArg;     
     35       
     36        protected String getArgCsv(String[] arguments, int start) {
     37                ArrayList<String> argList = new ArrayList<String>();
     38                for (String arg: arguments)
     39                {
     40                        for (String parts: arg.split(","))
     41                        {
     42                                argList.add(parts.trim());
     43                        }
     44                }
     45                _firstArg = argList.get(0);
     46               
     47                String csv = UnparserUtil.makeDelimitedList(argList.subList(start, argList.size()), ", ");
     48                return csv;
     49        }
     50       
     51        protected String getArgCsv(String[] arguments)
     52        {
     53                return getArgCsv(arguments, 0);
     54        }       
     55       
    2956        public abstract String makeIDISAFunctionCall0(String operationBaseName, String operationClassName, String fieldWidth, String ...arguments);
    3057        public abstract String makeIDISAFunctionCall1(String operationBaseName, String operationClassName, String fieldWidth, String ...arguments);
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/idisa/IDISABuiltin2C.java

    r3032 r3134  
    22
    33public class IDISABuiltin2C extends AbstractIDISABuiltin2Lang {
     4       
     5        private String appendParameter(String origin, String newp)
     6        {
     7                if (origin.length() > 0)
     8                        return origin + ", " + _firstArg;
     9                else
     10                        return _firstArg;               
     11        }
    412
    513        @Override
    614        public String makeIDISAFunctionCall0(String operationBaseName,
    715                        String operationClassName, String fieldWidth, String... arguments) {
    8                 // TODO Auto-generated method stub
    9                 return null;
     16               
     17                String csv = getArgCsv(arguments);
     18                return String.format("%s_%s_%s(%s)", operationClassName, operationBaseName, fieldWidth, csv);
    1019        }
    1120
     
    1322        public String makeIDISAFunctionCall1(String operationBaseName,
    1423                        String operationClassName, String fieldWidth, String... arguments) {
    15                 // TODO Auto-generated method stub
    16                 return null;
     24               
     25                String csv = getArgCsv(arguments, 1);           
     26               
     27                return String.format("%s_%s_%s(%s)", operationClassName, operationBaseName, fieldWidth, appendParameter(csv, _firstArg));
    1728        }
    1829
     
    2031        public String makeIDISAFunctionCall2(String operationBaseName,
    2132                        String operationClassName, String fieldWidth, String... arguments) {
    22                 // TODO Auto-generated method stub
    23                 return null;
     33               
     34                String csv = getArgCsv(arguments);
     35                return String.format("%s_%s(%s)", operationClassName, operationBaseName, csv);
    2436        }
    2537
     
    2739        public String makeIDISAFunctionCall3(String operationBaseName,
    2840                        String operationClassName, String fieldWidth, String... arguments) {
    29                 // TODO Auto-generated method stub
    30                 return null;
     41               
     42                String csv = getArgCsv(arguments);
     43                return String.format("%s_%s(%s)", operationClassName, operationBaseName, csv);
    3144        }
    3245
     
    3447        public String makeIDISAFunctionCall4(String operationBaseName,
    3548                        String operationClassName, String fieldWidth, String... arguments) {
    36                 // TODO Auto-generated method stub
    37                 return null;
     49               
     50                String csv = getArgCsv(arguments, 1);
     51                return String.format("%s_%s(%s)", operationClassName, operationBaseName, appendParameter(csv, _firstArg));
    3852        }
    3953
     
    4155        public String makeIDISAFunctionCallStore(String operationBaseName,
    4256                        String operationClassName, String fieldWidth, String[] arguments) {
    43                 // TODO Auto-generated method stub
    44                 return null;
     57               
     58                String csv = getArgCsv(arguments, 1);
     59                return String.format("%s_%s(%s)", operationClassName, operationBaseName, _firstArg + ", &" + csv);
    4560        }
    4661
     
    4863        public String makeIDISAFunctionCallLoad(String operationBaseName,
    4964                        String operationClassName, String fieldWidth, String[] arguments) {
    50                 // TODO Auto-generated method stub
    51                 return null;
     65                String csv = getArgCsv(arguments, 1);
     66                return String.format("%s_%s(%s)", operationClassName, operationBaseName, "&" + _firstArg);
    5267        }
    5368}
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/idisa/IDISABuiltin2CPP.java

    r3032 r3134  
    1313
    1414
    15 public class IDISABuiltin2CPP extends AbstractIDISABuiltin2Lang{
    16        
    17         private String _firstArg;
    18        
    19         private String getArgCsv(String[] arguments, int start) {
    20                 ArrayList<String> argList = new ArrayList<String>();
    21                 for (String arg: arguments)
    22                 {
    23                         for (String parts: arg.split(","))
    24                         {
    25                                 argList.add(parts.trim());
    26                         }
    27                 }
    28                 _firstArg = argList.get(0);
    29                
    30                 String csv = UnparserUtil.makeDelimitedList(argList.subList(start, argList.size()), ", ");
    31                 return csv;
    32         }
    33        
    34         private String getArgCsv(String[] arguments)
    35         {
    36                 return getArgCsv(arguments, 0);
    37         }
     15public class IDISABuiltin2CPP extends AbstractIDISABuiltin2Lang{       
    3816
    3917        @Override
     
    4119               
    4220                String csv = getArgCsv(arguments);
    43                
    4421                return String.format("%s<%s>::%s(%s)", operationClassName, fieldWidth, operationBaseName, csv);
    4522        }
     
    5027               
    5128                String csv = getArgCsv(arguments, 1);
    52                                                
    5329                return String.format("%s<%s>::%s<%s>(%s)", operationClassName, fieldWidth, operationBaseName, _firstArg, csv);
    5430        }
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/visitors/Unparser.java

    r3115 r3134  
    151151        public CodeStore visitLeave(StateIdentifierNode node, List<CodeStore> childResults) {           
    152152               
    153 //              stateIdentifier = Accessors.stateName(node); // synthetic attribute
    154                
    155                 CodeStore code = new CodeStore();
    156                 code.setResultVarName(stateIdentifier);         
     153            // stateIdentifier = Accessors.stateName(node); // synthetic attribute
     154                CodeStore code = new CodeStore();
     155                // code.setResultVarName(stateIdentifier);             
    157156                return code;
    158157        }
     
    190189        public CodeStore visitLeave(StateSizeNode node, List<CodeStore> childResults) {
    191190                CodeStore code = new CodeStore();
    192 //              code.setResultVarName(Accessors.integerConstantLexeme(node));
     191        //      code.setResultVarName(Accessors.integerConstantLexeme(node));
    193192                return code;
    194193        }       
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/lang/idisa/IDISABuiltin.java

    r3035 r3134  
    3636public enum IDISABuiltin {
    3737               
    38         // SIMD operations (opPattern == 0) class_name<fw>::op(data_type arg, ...)
     38        // SIMD operations (opPattern == 0)
     39        // C++: class_name<fw>::op(data_type arg, ...)
     40        // C:   class_name_op_fw(args...)
    3941        ESIMD_MERGEH (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinGenerator(),  BITBLOCK, BITBLOCK,  BITBLOCK)),
    4042        ESIMD_MERGEL (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinGenerator(),  BITBLOCK, BITBLOCK,  BITBLOCK)),
     
    8688        SIMD_XOR_HL (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinGenerator(),  BITBLOCK,  BITBLOCK)),
    8789       
    88         // SIMD (opPatterns == 1) class_name<fw>::op<x>(data_type arg, ...)
     90        // SIMD (opPatterns == 1)
     91        // C++: class_name<fw>::op<x>(data_type arg, ...)
     92        // C:   class_name_op_fw(data_type arg, ..., x)
    8993        MVMD_DSLLI (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinGenerator(),  INTEGERCONSTANT,  BITBLOCK,  BITBLOCK)),
    9094        MVMD_DSRLI (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinGenerator(),  INTEGERCONSTANT,  BITBLOCK,  BITBLOCK)),
     
    99103        SIMD_SRLI (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinGenerator(),  INTEGERCONSTANT,   BITBLOCK)),
    100104       
    101         // SIMD logic operations (opPattern == 2) simd_op(data_type arg, ...)
     105        // SIMD logic operations (opPattern == 2)
     106        // C++: simd_op(data_type arg, ...)
     107        // C:   simd_op(data_type arg, ...)
    102108        SIMD_NOR (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDLogicBuiltinGenerator(),  BITBLOCK, BITBLOCK,  BITBLOCK)),
    103109        SIMD_NOT (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDLogicBuiltinGenerator(),  BITBLOCK,  BITBLOCK)),
     
    107113        SIMD_AND (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDLogicBuiltinGenerator(),  BITBLOCK, BITBLOCK,  BITBLOCK)),
    108114       
    109         // SIMD (opPattern == 3) class_name::op(data_type arg, ...)
     115        // SIMD (opPattern == 3)
     116        // C++: class_name::op(data_type arg, ...)
     117        // C:   class_name_op(data_type arg, ...)
    110118        BITBLOCK_ALL (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockBuiltinGenerator(),  BITBLOCK,  BOOL)),
    111119        BITBLOCK_ANY (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockBuiltinGenerator(),  BITBLOCK,  BOOL)),
     
    114122        BITBLOCK_SRL (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockBuiltinGenerator(),  BITBLOCK, BITBLOCK,  BITBLOCK)),
    115123       
    116         // SIMD (opPattern == 4) class_name::op<x>(data_type arg, ...)
     124        // SIMD (opPattern == 4)
     125        // C++: class_name::op<x>(data_type arg, ...)
     126        // C:   class_name_op(data_type arg, ..., x)
    117127        BITBLOCK_SLLI (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockImmediateBuiltinGenerator(),  INTEGERCONSTANT,  BITBLOCK)),
    118128        BITBLOCK_SRLI (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockImmediateBuiltinGenerator(),  INTEGERCONSTANT,  BITBLOCK)),
    119129       
    120         // SIMD Stores (with args = (Bitblock, Bitblock*)
     130        // SIMD Stores (with args = (Bitblock, Bitblock*))
    121131        BITBLOCK_STORE_ALIGNED (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockStoreBuiltinGenerator(),  BITBLOCK, BITBLOCK_POINTER,  VOID)),
    122132        BITBLOCK_STORE_UNALIGNED (makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockStoreBuiltinGenerator(),  BITBLOCK, BITBLOCK_POINTER,  VOID)),
Note: See TracChangeset for help on using the changeset viewer.