* 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 }
{ to the optimizer in p1. If there is none, it returns false and }
{ 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 }
{ relevant to the optimizer in last. If there is none, it retuns }
{ false and sets last to nil }
@ -175,7 +175,7 @@ unit aoptbase;
end;
Function TAOptBase.GetNextInstruction(Current: tai; Var Next: tai): Boolean;
class Function TAOptBase.GetNextInstruction(Current: tai; Var Next: tai): Boolean;
Begin
Repeat
Current := tai(Current.Next);

View File

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

View File

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