source: proto/s2k/trunk/framework/src/toolchain/b2k/lang/paramBuiltin/idisa/IDISABuiltins2C.java @ 4023

Last change on this file since 4023 was 4023, checked in by ksherdy, 5 years ago

Restructured b2k package.

File size: 2.3 KB
Line 
1package toolchain.b2k.lang.paramBuiltin.idisa;
2
3public class IDISABuiltins2C extends AbstractIDISABuiltinTranslator {
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        }
12
13        @Override
14        public String makeIDISAFunctionCall0(String operationBaseName,
15                        String operationClassName, String fieldWidth, String... arguments) {
16               
17                String csv = getArgCsv(arguments);
18                return String.format("%s_%s_%s(%s)", operationClassName, operationBaseName, fieldWidth, csv);
19        }
20
21        @Override
22        public String makeIDISAFunctionCall1(String operationBaseName,
23                        String operationClassName, String fieldWidth, String... arguments) {
24               
25                String csv = getArgCsv(arguments, 1);           
26               
27                return String.format("%s_%s_%s(%s)", operationClassName, operationBaseName, fieldWidth, appendParameter(csv, _firstArg));
28        }
29
30        @Override
31        public String makeIDISAFunctionCall2(String operationBaseName,
32                        String operationClassName, String fieldWidth, String... arguments) {
33               
34                String csv = getArgCsv(arguments);
35                return String.format("%s_%s(%s)", operationClassName, operationBaseName, csv);
36        }
37
38        @Override
39        public String makeIDISAFunctionCall3(String operationBaseName,
40                        String operationClassName, String fieldWidth, String... arguments) {
41               
42                String csv = getArgCsv(arguments);
43                return String.format("%s_%s(%s)", operationClassName, operationBaseName, csv); 
44        }
45
46        @Override
47        public String makeIDISAFunctionCall4(String operationBaseName,
48                        String operationClassName, String fieldWidth, String... arguments) {
49               
50                String csv = getArgCsv(arguments, 1);
51                return String.format("%s_%s(%s)", operationClassName, operationBaseName, appendParameter(csv, _firstArg));
52        }
53
54        @Override
55        public String makeIDISAFunctionCallStore(String operationBaseName,
56                        String operationClassName, String fieldWidth, String[] arguments) {
57               
58                String csv = getArgCsv(arguments, 1);
59                return String.format("%s_%s(%s)", operationClassName, operationBaseName, _firstArg + ", &" + csv);
60        }
61
62        @Override
63        public String makeIDISAFunctionCallLoad(String operationBaseName,
64                        String operationClassName, String fieldWidth, String[] arguments) {
65                String csv = getArgCsv(arguments, 1);
66                return String.format("%s_%s(%s)", operationClassName, operationBaseName, "&" + _firstArg);
67        }
68}
Note: See TracBrowser for help on using the repository browser.