mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-24 15:49:21 +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 pushusedregisters(var pushed : tpushed;b : word);
|
||||||
procedure popusedregisters(const pushed : tpushed);
|
procedure popusedregisters(const pushed : tpushed);
|
||||||
|
|
||||||
|
procedure clearregistercount;
|
||||||
|
procedure resetusableregisters;
|
||||||
|
|
||||||
var
|
var
|
||||||
unused,usableregs : tregisterset;
|
unused,usableregs : tregisterset;
|
||||||
c_usableregs : longint;
|
c_usableregs : longint;
|
||||||
@ -298,16 +301,41 @@ unit tgen68k;
|
|||||||
usableaddress:=getusableaddr;
|
usableaddress:=getusableaddr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
|
||||||
{ contains both information on Address registers and data registers }
|
procedure clearregistercount;
|
||||||
{ even if they are allocated separately. }
|
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,
|
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];
|
R_FP0,R_FP1,R_FP2,R_FP3,R_FP4,R_FP5,R_FP6,R_FP7];
|
||||||
c_usableregs:=4;
|
c_usableregs:=4;
|
||||||
|
usableaddress:=3;
|
||||||
|
usablefloatreg:=6;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
begin
|
||||||
|
resetusableregisters;
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* m68k and palmos updates from surebugfixes
|
||||||
|
|
||||||
Revision 1.2 1998/06/08 13:13:46 pierre
|
Revision 1.2 1998/06/08 13:13:46 pierre
|
||||||
|
@ -60,6 +60,9 @@ unit tgeni386;
|
|||||||
procedure pushusedregisters(var pushed : tpushed;b : byte);
|
procedure pushusedregisters(var pushed : tpushed;b : byte);
|
||||||
procedure popusedregisters(const pushed : tpushed);
|
procedure popusedregisters(const pushed : tpushed);
|
||||||
|
|
||||||
|
procedure clearregistercount;
|
||||||
|
procedure resetusableregisters;
|
||||||
|
|
||||||
var
|
var
|
||||||
unused,usableregs : tregisterset;
|
unused,usableregs : tregisterset;
|
||||||
c_usableregs : longint;
|
c_usableregs : longint;
|
||||||
@ -76,7 +79,9 @@ unit tgeni386;
|
|||||||
reg_pushes : array[R_EAX..R_EDI] of longint;
|
reg_pushes : array[R_EAX..R_EDI] of longint;
|
||||||
is_reg_var : array[R_EAX..R_EDI] of boolean;
|
is_reg_var : array[R_EAX..R_EDI] of boolean;
|
||||||
{$endif SUPPORT_MMX}
|
{$endif SUPPORT_MMX}
|
||||||
implementation
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
procedure pushusedregisters(var pushed : tpushed;b : byte);
|
procedure pushusedregisters(var pushed : tpushed;b : byte);
|
||||||
|
|
||||||
@ -304,16 +309,48 @@ unit tgeni386;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
begin
|
procedure clearregistercount;
|
||||||
usableregs:=[R_EAX,R_EBX,R_ECX,R_EDX];
|
var
|
||||||
|
regi : tregister;
|
||||||
|
begin
|
||||||
{$ifdef SUPPORT_MMX}
|
{$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}
|
{$endif SUPPORT_MMX}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure resetusableregisters;
|
||||||
|
begin
|
||||||
|
{$ifdef SUPPORT_MMX}
|
||||||
|
usableregs:=[R_EAX,R_EBX,R_ECX,R_EDX,R_MM0..R_MM6];
|
||||||
c_usableregs:=4;
|
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.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* changed optimizer switches + cleanup of DestroyRefs in daopt386.pas
|
||||||
|
|
||||||
Revision 1.8 1998/08/10 14:50:34 peter
|
Revision 1.8 1998/08/10 14:50:34 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user