mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-13 14:09:29 +02:00
* Failed attempt to restore broken fastspill functionality
This commit is contained in:
parent
305226dd23
commit
079751b894
@ -584,6 +584,7 @@ implementation
|
|||||||
usesfpu,
|
usesfpu,
|
||||||
usesacchi : boolean;
|
usesacchi : boolean;
|
||||||
spillingcounter : integer;
|
spillingcounter : integer;
|
||||||
|
fastspill:boolean;
|
||||||
begin
|
begin
|
||||||
{ the initialization procedure can be empty, then we
|
{ the initialization procedure can be empty, then we
|
||||||
don't need to generate anything. When it was an empty
|
don't need to generate anything. When it was an empty
|
||||||
@ -692,14 +693,15 @@ implementation
|
|||||||
rg.prepare_colouring;
|
rg.prepare_colouring;
|
||||||
rg.colour_registers;
|
rg.colour_registers;
|
||||||
rg.epilogue_colouring;
|
rg.epilogue_colouring;
|
||||||
|
fastspill:=true;
|
||||||
if rg.spillednodes<>'' then
|
if rg.spillednodes<>'' then
|
||||||
begin
|
begin
|
||||||
inc(spillingcounter);
|
inc(spillingcounter);
|
||||||
if spillingcounter>maxspillingcounter then
|
if spillingcounter>maxspillingcounter then
|
||||||
internalerror(200309041);
|
internalerror(200309041);
|
||||||
rg.spill_registers(aktproccode,rg.spillednodes);
|
fastspill:=rg.spill_registers(aktproccode,rg.spillednodes);
|
||||||
end;
|
end;
|
||||||
until rg.spillednodes='';
|
until (rg.spillednodes=''){ or not fastspill};
|
||||||
aktproccode.translate_registers(rg.colour);
|
aktproccode.translate_registers(rg.colour);
|
||||||
(*
|
(*
|
||||||
{$ifndef NoOpt}
|
{$ifndef NoOpt}
|
||||||
@ -1315,7 +1317,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.144 2003-09-09 20:59:27 daniel
|
Revision 1.145 2003-09-10 19:14:31 daniel
|
||||||
|
* Failed attempt to restore broken fastspill functionality
|
||||||
|
|
||||||
|
Revision 1.144 2003/09/09 20:59:27 daniel
|
||||||
* Adding register allocation order
|
* Adding register allocation order
|
||||||
|
|
||||||
Revision 1.143 2003/09/09 15:55:44 peter
|
Revision 1.143 2003/09/09 15:55:44 peter
|
||||||
|
@ -2160,6 +2160,7 @@ implementation
|
|||||||
imul r22d,r21d ; Replace reference by helpregister
|
imul r22d,r21d ; Replace reference by helpregister
|
||||||
mov [ebp-12],r22d ; Use another help instruction}
|
mov [ebp-12],r22d ; Use another help instruction}
|
||||||
rgget(list,Tai(previous),subreg,helpreg);
|
rgget(list,Tai(previous),subreg,helpreg);
|
||||||
|
spill_registers:=true;
|
||||||
{First help instruction.}
|
{First help instruction.}
|
||||||
helpins:=Taicpu.op_ref_reg(A_MOV,opsize,oper[1].ref^,helpreg);
|
helpins:=Taicpu.op_ref_reg(A_MOV,opsize,oper[1].ref^,helpreg);
|
||||||
if previous=nil then
|
if previous=nil then
|
||||||
@ -2233,7 +2234,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.20 2003-09-10 11:23:09 marco
|
Revision 1.21 2003-09-10 19:14:31 daniel
|
||||||
|
* Failed attempt to restore broken fastspill functionality
|
||||||
|
|
||||||
|
Revision 1.20 2003/09/10 11:23:09 marco
|
||||||
* fix from peter for bts reg32,mem32 problem
|
* fix from peter for bts reg32,mem32 problem
|
||||||
|
|
||||||
Revision 1.19 2003/09/09 12:54:45 florian
|
Revision 1.19 2003/09/09 12:54:45 florian
|
||||||
|
Loading…
Reference in New Issue
Block a user