diff --git a/task1/CodegenImpl.java b/task1/CodegenImpl.java index 2098b2b..45539fa 100644 --- a/task1/CodegenImpl.java +++ b/task1/CodegenImpl.java @@ -54,7 +54,9 @@ public class CodegenImpl implements Codegen { + "mv s1,a0\n" + compileExp(b.r) + "mv t1,a0\n" - + compileExpBinop(b.binop); + + compileExpBinop(b.binop) + + "lw s1,(sp)\n" + + "addi sp,sp,4\n"; } else if (e instanceof Variable) { int offset = ((Variable) e).x - 1; diff --git a/task2/CodegenImpl.java b/task2/CodegenImpl.java index 2098b2b..45539fa 100644 --- a/task2/CodegenImpl.java +++ b/task2/CodegenImpl.java @@ -54,7 +54,9 @@ public class CodegenImpl implements Codegen { + "mv s1,a0\n" + compileExp(b.r) + "mv t1,a0\n" - + compileExpBinop(b.binop); + + compileExpBinop(b.binop) + + "lw s1,(sp)\n" + + "addi sp,sp,4\n"; } else if (e instanceof Variable) { int offset = ((Variable) e).x - 1; diff --git a/task3/CodegenImpl.java b/task3/CodegenImpl.java index 2098b2b..45539fa 100644 --- a/task3/CodegenImpl.java +++ b/task3/CodegenImpl.java @@ -54,7 +54,9 @@ public class CodegenImpl implements Codegen { + "mv s1,a0\n" + compileExp(b.r) + "mv t1,a0\n" - + compileExpBinop(b.binop); + + compileExpBinop(b.binop) + + "lw s1,(sp)\n" + + "addi sp,sp,4\n"; } else if (e instanceof Variable) { int offset = ((Variable) e).x - 1;