mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-23 18:29:43 +02:00
* Modified FindRegAlloc() to skip branch delay slots in the same way it is done in GetNextInstruction(). This fixes processing sequences "dealloc reg; branch reg,label; NOP; alloc reg" in BuildLabelTableAndFixRegAlloc(), deallocation is now correctly moved after branch. Before this change, the last allocation was ignored, and deallocation was moved forward until another instruction using reg was encountered.
git-svn-id: trunk@28891 -
This commit is contained in:
parent
c0a1a7d26d
commit
0041024e5f
@ -1041,6 +1041,9 @@ Unit AoptObj;
|
||||
Repeat
|
||||
While Assigned(StartPai) And
|
||||
((StartPai.typ in (SkipInstr - [ait_regAlloc])) Or
|
||||
{$if defined(MIPS) or defined(SPARC)}
|
||||
((startpai.typ=ait_instruction) and (taicpu(startpai).opcode=A_NOP)) or
|
||||
{$endif MIPS or SPARC}
|
||||
((StartPai.typ = ait_label) and
|
||||
Not(Tai_Label(StartPai).labsym.Is_Used))) Do
|
||||
StartPai := Tai(StartPai.Next);
|
||||
|
Loading…
Reference in New Issue
Block a user