From 6db7ed874693d5aaa4e988cf29aa1b1a6d789dbc Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Wed, 2 Sep 2026 10:12:08 +0200 Subject: [PATCH] Fixed phi moves between spilled registers --- src/codegen/insertPhiMoves.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/codegen/insertPhiMoves.go b/src/codegen/insertPhiMoves.go index a87753d..1d6ade2 100644 --- a/src/codegen/insertPhiMoves.go +++ b/src/codegen/insertPhiMoves.go @@ -65,6 +65,10 @@ func (f *Function) insertPhiMoves(step *Step) { destination := move.Destination switch { + case f.isSpilled(source) && f.isSpilled(destination): + tmp := f.findTempRegister(step.Live) + f.loadSpill(sourceSteps[source], tmp) + f.storeSpill(destinationSteps[destination], tmp) case f.isSpilled(source): f.loadSpill(sourceSteps[source], destination) case f.isSpilled(destination): -- 2.51.2