From c7b19e2fc96f01219e4664895b13a5d86ae7e120 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 23 Feb 2020 18:24:31 +0000 Subject: [PATCH] * track used register better: if a deallocation is moved/removed, the used register may not be removed from the current register used register set git-svn-id: trunk@44239 - --- compiler/aopt.pas | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/aopt.pas b/compiler/aopt.pas index 6c1a9382bc..82f1dd4759 100644 --- a/compiler/aopt.pas +++ b/compiler/aopt.pas @@ -192,7 +192,6 @@ Unit aopt; End else if tai_regalloc(p).ratype=ra_dealloc then Begin - ExcludeRegFromUsedRegs(tai_regalloc(p).Reg,Regs); hp1 := p; hp2 := nil; While Not(assigned(FindRegAlloc(tai_regalloc(p).Reg, tai(hp1.Next)))) And @@ -233,7 +232,9 @@ Unit aopt; AsmL.remove(p); p.free; p := hp1; - end; + end + else + ExcludeRegFromUsedRegs(tai_regalloc(p).Reg,Regs); End End else