From c1ae636d1fec2346a722c61e84c607687af50ea3 Mon Sep 17 00:00:00 2001 From: l-kent Date: Tue, 9 Jun 2026 10:18:32 +1000 Subject: [PATCH] fix bug in CalleePreservedParam that Mark found --- .../scala/ir/transforms/CalleePreservedParam.scala | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/scala/ir/transforms/CalleePreservedParam.scala b/src/main/scala/ir/transforms/CalleePreservedParam.scala index 3fcf5ca6d..606400fbd 100644 --- a/src/main/scala/ir/transforms/CalleePreservedParam.scala +++ b/src/main/scala/ir/transforms/CalleePreservedParam.scala @@ -9,19 +9,17 @@ object CalleePreservedParam { var counter = util.Counter() /** - * Asusming single-return and parameter form + * Assuming single-return and parameter form */ - val preserved = (19 to 29).map(i => s"R$i").toSet // required by ABI - val callReturnStackPreserved = Set("R30", "R31") // not strictly required + private val preserved = (19 to 29).map(i => s"R$i").toSet // required by ABI + private val callReturnStackPreserved = Set("R30", "R31") // not strictly required - def isPreservedParam(v: LocalVar) = { + private def isPreservedParam(v: LocalVar) = { // abi assumption v.varName match { - case s"${reg}_in" => callReturnStackPreserved.contains(reg) - case s"${reg}_out" => callReturnStackPreserved.contains(reg) - case s"${reg}_in" => preserved.contains(reg) - case s"${reg}_out" => preserved.contains(reg) + case s"${reg}_in" => callReturnStackPreserved.contains(reg) || preserved.contains(reg) + case s"${reg}_out" => callReturnStackPreserved.contains(reg) || preserved.contains(reg) case _ => false } }