* Failed attempt to restore broken fastspill functionality

This commit is contained in:
daniel 2003-09-10 19:14:31 +00:00
parent 305226dd23
commit 079751b894
2 changed files with 13 additions and 4 deletions

View File

@ -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

View File

@ -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