* made some assembler optimizer methods class methods

git-svn-id: trunk@33929 -
This commit is contained in:
florian 2016-06-06 21:18:20 +00:00
parent e56147ac6e
commit b274599a47
3 changed files with 16 additions and 16 deletions

View File

@ -61,7 +61,7 @@ unit aoptbase;
{ gets the next tai object after current that contains info relevant } { gets the next tai object after current that contains info relevant }
{ to the optimizer in p1. If there is none, it returns false and } { to the optimizer in p1. If there is none, it returns false and }
{ sets p1 to nil } { sets p1 to nil }
Function GetNextInstruction(Current: tai; Var Next: tai): Boolean; class Function GetNextInstruction(Current: tai; Var Next: tai): Boolean;
{ gets the previous tai object after current that contains info } { gets the previous tai object after current that contains info }
{ relevant to the optimizer in last. If there is none, it retuns } { relevant to the optimizer in last. If there is none, it retuns }
{ false and sets last to nil } { false and sets last to nil }
@ -175,7 +175,7 @@ unit aoptbase;
end; end;
Function TAOptBase.GetNextInstruction(Current: tai; Var Next: tai): Boolean; class Function TAOptBase.GetNextInstruction(Current: tai; Var Next: tai): Boolean;
Begin Begin
Repeat Repeat
Current := tai(Current.Next); Current := tai(Current.Next);

View File

@ -265,12 +265,12 @@ Unit AoptObj;
Procedure CreateUsedRegs(var regs: TAllUsedRegs); Procedure CreateUsedRegs(var regs: TAllUsedRegs);
Procedure ClearUsedRegs; Procedure ClearUsedRegs;
Procedure UpdateUsedRegs(p : Tai); Procedure UpdateUsedRegs(p : Tai);
procedure UpdateUsedRegs(var Regs: TAllUsedRegs; p: Tai); class procedure UpdateUsedRegs(var Regs: TAllUsedRegs; p: Tai);
Function CopyUsedRegs(var dest : TAllUsedRegs) : boolean; Function CopyUsedRegs(var dest : TAllUsedRegs) : boolean;
Procedure ReleaseUsedRegs(const regs : TAllUsedRegs); class Procedure ReleaseUsedRegs(const regs : TAllUsedRegs);
Function RegInUsedRegs(reg : TRegister;regs : TAllUsedRegs) : boolean; class Function RegInUsedRegs(reg : TRegister;regs : TAllUsedRegs) : boolean;
Procedure IncludeRegInUsedRegs(reg : TRegister;var regs : TAllUsedRegs); class Procedure IncludeRegInUsedRegs(reg : TRegister;var regs : TAllUsedRegs);
Procedure ExcludeRegFromUsedRegs(reg: TRegister;var regs : TAllUsedRegs); class Procedure ExcludeRegFromUsedRegs(reg: TRegister;var regs : TAllUsedRegs);
Function GetAllocationString(const regs : TAllUsedRegs) : string; Function GetAllocationString(const regs : TAllUsedRegs) : string;
@ -893,7 +893,7 @@ Unit AoptObj;
end; end;
procedure TAOptObj.UpdateUsedRegs(var Regs : TAllUsedRegs;p : Tai); class procedure TAOptObj.UpdateUsedRegs(var Regs : TAllUsedRegs;p : Tai);
var var
i : TRegisterType; i : TRegisterType;
begin begin
@ -912,7 +912,7 @@ Unit AoptObj;
end; end;
procedure TAOptObj.ReleaseUsedRegs(const regs: TAllUsedRegs); class procedure TAOptObj.ReleaseUsedRegs(const regs: TAllUsedRegs);
var var
i : TRegisterType; i : TRegisterType;
begin begin
@ -921,20 +921,20 @@ Unit AoptObj;
end; end;
Function TAOptObj.RegInUsedRegs(reg : TRegister;regs : TAllUsedRegs) : boolean; class Function TAOptObj.RegInUsedRegs(reg : TRegister;regs : TAllUsedRegs) : boolean;
begin begin
result:=regs[getregtype(reg)].IsUsed(reg); result:=regs[getregtype(reg)].IsUsed(reg);
end; end;
procedure TAOptObj.IncludeRegInUsedRegs(reg: TRegister; class procedure TAOptObj.IncludeRegInUsedRegs(reg: TRegister;
var regs: TAllUsedRegs); var regs: TAllUsedRegs);
begin begin
include(regs[getregtype(reg)].UsedRegs,getsupreg(Reg)); include(regs[getregtype(reg)].UsedRegs,getsupreg(Reg));
end; end;
procedure TAOptObj.ExcludeRegFromUsedRegs(reg: TRegister; class procedure TAOptObj.ExcludeRegFromUsedRegs(reg: TRegister;
var regs: TAllUsedRegs); var regs: TAllUsedRegs);
begin begin
exclude(regs[getregtype(reg)].UsedRegs,getsupreg(Reg)); exclude(regs[getregtype(reg)].UsedRegs,getsupreg(Reg));

View File

@ -47,8 +47,8 @@ unit aoptx86;
procedure DebugMsg(const s : string; p : tai);inline; procedure DebugMsg(const s : string; p : tai);inline;
procedure AllocRegBetween(reg : tregister; p1,p2 : tai;var initialusedregs : TAllUsedRegs); procedure AllocRegBetween(reg : tregister; p1,p2 : tai;var initialusedregs : TAllUsedRegs);
function IsExitCode(p : tai) : boolean; class function IsExitCode(p : tai) : boolean;
function isFoldableArithOp(hp1 : taicpu; reg : tregister) : boolean; class function isFoldableArithOp(hp1 : taicpu; reg : tregister) : boolean;
procedure RemoveLastDeallocForFuncRes(p : tai); procedure RemoveLastDeallocForFuncRes(p : tai);
end; end;
@ -329,7 +329,7 @@ unit aoptx86;
end; end;
function TX86AsmOptimizer.IsExitCode(p : tai) : boolean; class function TX86AsmOptimizer.IsExitCode(p : tai) : boolean;
var var
hp2,hp3 : tai; hp2,hp3 : tai;
begin begin
@ -358,7 +358,7 @@ unit aoptx86;
end; end;
function TX86AsmOptimizer.isFoldableArithOp(hp1: taicpu; reg: tregister): boolean; class function TX86AsmOptimizer.isFoldableArithOp(hp1: taicpu; reg: tregister): boolean;
begin begin
isFoldableArithOp := False; isFoldableArithOp := False;
case hp1.opcode of case hp1.opcode of