fix: ensure all advanced wacc-examples function correctly #33

Merged
gk1623 merged 1 commits from advanced-fixes into master 2025-02-28 00:31:26 +00:00
Showing only changes of commit 41f76e50e0 - Show all commits

View File

@@ -392,10 +392,16 @@ object asmGenerator {
var chain = Chain.empty[AsmLine] var chain = Chain.empty[AsmLine]
val microWacc.Call(target, args) = call val microWacc.Call(target, args) = call
argRegs.zip(args).foldMap { (reg, expr) => argRegs
chain ++= evalExprOntoStack(expr) .zip(args)
chain += stack.pop(Register(Q64, reg)) .map { (reg, expr) =>
} chain ++= evalExprOntoStack(expr)
reg
}
.reverse
.foreach { reg =>
chain += stack.pop(Register(Q64, reg))
}
args.drop(argRegs.size).foldMap { args.drop(argRegs.size).foldMap {
chain ++= evalExprOntoStack(_) chain ++= evalExprOntoStack(_)