MCPcopy Index your code
hub / github.com/acsoto/BUAA-Compiler / run

Method run

src/CodeGeneration/PCodeExecutor.java:61–337  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

59 }
60
61 public void run() {
62 int callArgsNum = 0;
63 int nowArgsNum = 0;
64 boolean mainFlag = false;
65 ArrayList<Integer> rparas = new ArrayList<>();
66 for (; eip < codes.size(); eip++) {
67 PCode code = codes.get(eip);
68// System.out.println(stack);
69// System.out.println(code);
70 switch (code.getType()) {
71 case LABEL: {
72
73 }
74 break;
75 case VAR: {
76 Var var = new Var(stack.size());
77 varTable.put((String) code.getValue1(), var);
78 }
79 break;
80 case PUSH: {
81 if (code.getValue1() instanceof Integer) {
82 push((Integer) code.getValue1());
83 }
84 }
85 break;
86 case POP: {
87 int value = pop();
88 int address = pop();
89 stack.set(address, value);
90 }
91 break;
92 case ADD: {
93 int b = pop();
94 int a = pop();
95 push(a + b);
96 }
97 break;
98 case SUB: {
99 int b = pop();
100 int a = pop();
101 push(a - b);
102 }
103 break;
104 case MUL: {
105 int b = pop();
106 int a = pop();
107 push(a * b);
108 }
109 break;
110 case DIV: {
111 int b = pop();
112 int a = pop();
113 push(a / b);
114 }
115 break;
116 case MOD: {
117 int b = pop();
118 int a = pop();

Callers 1

AnalyserMethod · 0.80

Calls 15

getTypeMethod · 0.95
getValue1Method · 0.95
pushMethod · 0.95
popMethod · 0.95
getValue2Method · 0.95
setDimensionMethod · 0.95
setDim2Method · 0.95
getEipMethod · 0.95
getVarTableMethod · 0.95
getCallArgsNumMethod · 0.95
getNowArgsNumMethod · 0.95
getStackPtrMethod · 0.95

Tested by

no test coverage detected