mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 08:08:36 +02:00
* made some assembler optimizer methods class methods
git-svn-id: trunk@33929 -
This commit is contained in:
parent
e56147ac6e
commit
b274599a47
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user