mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 16:09:31 +02:00
+ resetregistercount, resetusableregisters
This commit is contained in:
parent
ca8c6dde40
commit
6b807957b1
@ -65,6 +65,9 @@ unit tgen68k;
|
||||
procedure pushusedregisters(var pushed : tpushed;b : word);
|
||||
procedure popusedregisters(const pushed : tpushed);
|
||||
|
||||
procedure clearregistercount;
|
||||
procedure resetusableregisters;
|
||||
|
||||
var
|
||||
unused,usableregs : tregisterset;
|
||||
c_usableregs : longint;
|
||||
@ -298,16 +301,41 @@ unit tgen68k;
|
||||
usableaddress:=getusableaddr;
|
||||
end;
|
||||
|
||||
|
||||
procedure clearregistercount;
|
||||
var
|
||||
regi : tregister;
|
||||
begin
|
||||
for regi:=R_D0 to R_A6 do
|
||||
begin
|
||||
reg_pushes[regi]:=0;
|
||||
is_reg_var[regi]:=false;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure resetusableregisters;
|
||||
begin
|
||||
usableregs:=[R_D0,R_D1,R_D2,R_D3,R_D4,R_D5,R_D6,R_D7,R_A0,R_A1,R_A2,R_A3,R_A4,
|
||||
R_FP0,R_FP1,R_FP2,R_FP3,R_FP4,R_FP5,R_FP6,R_FP7];
|
||||
c_usableregs:=4;
|
||||
usableaddress:=3;
|
||||
usablefloatreg:=6;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
begin
|
||||
{ contains both information on Address registers and data registers }
|
||||
{ even if they are allocated separately. }
|
||||
usableregs:=[R_D0,R_D1,R_D2,R_D3,R_D4,R_D5,R_D6,R_D7,R_A0,R_A1,R_A2,R_A3,R_A4,
|
||||
R_FP0,R_FP1,R_FP2,R_FP3,R_FP4,R_FP5,R_FP6,R_FP7];
|
||||
c_usableregs:=4;
|
||||
resetusableregisters;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.3 1998-08-31 12:26:35 peter
|
||||
Revision 1.4 1998-09-01 09:03:48 peter
|
||||
+ resetregistercount, resetusableregisters
|
||||
|
||||
Revision 1.3 1998/08/31 12:26:35 peter
|
||||
* m68k and palmos updates from surebugfixes
|
||||
|
||||
Revision 1.2 1998/06/08 13:13:46 pierre
|
||||
|
@ -60,6 +60,9 @@ unit tgeni386;
|
||||
procedure pushusedregisters(var pushed : tpushed;b : byte);
|
||||
procedure popusedregisters(const pushed : tpushed);
|
||||
|
||||
procedure clearregistercount;
|
||||
procedure resetusableregisters;
|
||||
|
||||
var
|
||||
unused,usableregs : tregisterset;
|
||||
c_usableregs : longint;
|
||||
@ -76,7 +79,9 @@ unit tgeni386;
|
||||
reg_pushes : array[R_EAX..R_EDI] of longint;
|
||||
is_reg_var : array[R_EAX..R_EDI] of boolean;
|
||||
{$endif SUPPORT_MMX}
|
||||
implementation
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
procedure pushusedregisters(var pushed : tpushed;b : byte);
|
||||
|
||||
@ -304,16 +309,48 @@ unit tgeni386;
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
usableregs:=[R_EAX,R_EBX,R_ECX,R_EDX];
|
||||
procedure clearregistercount;
|
||||
var
|
||||
regi : tregister;
|
||||
begin
|
||||
{$ifdef SUPPORT_MMX}
|
||||
usableregs:=usableregs+[R_MM0..R_MM6];
|
||||
for regi:=R_EAX to R_MM6 do
|
||||
begin
|
||||
reg_pushes[regi]:=0;
|
||||
is_reg_var[regi]:=false;
|
||||
end;
|
||||
{$else SUPPORT_MMX}
|
||||
for regi:=R_EAX to R_EDI do
|
||||
begin
|
||||
reg_pushes[regi]:=0;
|
||||
is_reg_var[regi]:=false;
|
||||
end;
|
||||
{$endif SUPPORT_MMX}
|
||||
c_usableregs:=4;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure resetusableregisters;
|
||||
begin
|
||||
{$ifdef SUPPORT_MMX}
|
||||
usableregs:=[R_EAX,R_EBX,R_ECX,R_EDX,R_MM0..R_MM6];
|
||||
c_usableregs:=4;
|
||||
usableregmmx:=8;
|
||||
{$else}
|
||||
usableregs:=[R_EAX,R_EBX,R_ECX,R_EDX];
|
||||
c_usableregs:=4;
|
||||
{$endif SUPPORT_MMX}
|
||||
end;
|
||||
|
||||
begin
|
||||
resetusableregisters;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.9 1998-08-19 16:07:56 jonas
|
||||
Revision 1.10 1998-09-01 09:03:47 peter
|
||||
+ resetregistercount, resetusableregisters
|
||||
|
||||
Revision 1.9 1998/08/19 16:07:56 jonas
|
||||
* changed optimizer switches + cleanup of DestroyRefs in daopt386.pas
|
||||
|
||||
Revision 1.8 1998/08/10 14:50:34 peter
|
||||
|
Loading…
Reference in New Issue
Block a user