mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-04 23:49:37 +01:00
* new volatile registers proc
This commit is contained in:
parent
3ccd30efde
commit
46e1925e11
@ -103,11 +103,6 @@ uses
|
|||||||
{$i rspstab.inc}
|
{$i rspstab.inc}
|
||||||
);
|
);
|
||||||
|
|
||||||
{ registers which may be destroyed by calls }
|
|
||||||
VOLATILE_INTREGISTERS = [RS_G1];
|
|
||||||
{$warning FIXME!!}
|
|
||||||
VOLATILE_FPUREGISTERS = [];
|
|
||||||
|
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
Conditions
|
Conditions
|
||||||
@ -626,7 +621,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.50 2003-09-14 19:19:05 peter
|
Revision 1.51 2003-09-14 21:35:15 peter
|
||||||
|
* new volatile registers proc
|
||||||
|
|
||||||
|
Revision 1.50 2003/09/14 19:19:05 peter
|
||||||
* updates for new ra
|
* updates for new ra
|
||||||
|
|
||||||
Revision 1.49 2003/09/03 16:29:37 peter
|
Revision 1.49 2003/09/03 16:29:37 peter
|
||||||
|
|||||||
@ -25,7 +25,7 @@ unit cpupara;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
cpubase,
|
cpubase,cginfo,
|
||||||
aasmtai,globtype,
|
aasmtai,globtype,
|
||||||
symconst,symbase,symtype,symdef,paramgr;
|
symconst,symbase,symtype,symdef,paramgr;
|
||||||
|
|
||||||
@ -33,6 +33,8 @@ interface
|
|||||||
TSparcParaManager=class(TParaManager)
|
TSparcParaManager=class(TParaManager)
|
||||||
function copy_value_on_stack(def : tdef;calloption : tproccalloption) : boolean;override;
|
function copy_value_on_stack(def : tdef;calloption : tproccalloption) : boolean;override;
|
||||||
function push_addr_param(def : tdef;calloption : tproccalloption) : boolean;override;
|
function push_addr_param(def : tdef;calloption : tproccalloption) : boolean;override;
|
||||||
|
function get_volatile_registers_int(calloption : tproccalloption):tsuperregisterset;override;
|
||||||
|
function get_volatile_registers_fpu(calloption : tproccalloption):tsuperregisterset;override;
|
||||||
{Returns a structure giving the information on the storage of the parameter
|
{Returns a structure giving the information on the storage of the parameter
|
||||||
(which must be an integer parameter)
|
(which must be an integer parameter)
|
||||||
@param(nr Parameter number of routine, starting from 1)}
|
@param(nr Parameter number of routine, starting from 1)}
|
||||||
@ -48,7 +50,7 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
verbose,
|
verbose,
|
||||||
cpuinfo,cginfo,cgbase,
|
cpuinfo,cgbase,
|
||||||
defutil,rgobj;
|
defutil,rgobj;
|
||||||
|
|
||||||
function tsparcparamanager.copy_value_on_stack(def : tdef;calloption : tproccalloption) : boolean;
|
function tsparcparamanager.copy_value_on_stack(def : tdef;calloption : tproccalloption) : boolean;
|
||||||
@ -79,6 +81,18 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function tsparcparamanager.get_volatile_registers_int(calloption : tproccalloption):tsuperregisterset;
|
||||||
|
begin
|
||||||
|
result:=[RS_G1];
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function tsparcparamanager.get_volatile_registers_fpu(calloption : tproccalloption):tsuperregisterset;
|
||||||
|
begin
|
||||||
|
result:=[first_fpu_supreg..last_fpu_supreg];;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function TSparcParaManager.GetIntParaLoc(calloption : tproccalloption; nr : longint) : tparalocation;
|
function TSparcParaManager.GetIntParaLoc(calloption : tproccalloption; nr : longint) : tparalocation;
|
||||||
begin
|
begin
|
||||||
if nr<1 then
|
if nr<1 then
|
||||||
@ -271,7 +285,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.29 2003-09-14 19:19:05 peter
|
Revision 1.30 2003-09-14 21:35:15 peter
|
||||||
|
* new volatile registers proc
|
||||||
|
|
||||||
|
Revision 1.29 2003/09/14 19:19:05 peter
|
||||||
* updates for new ra
|
* updates for new ra
|
||||||
|
|
||||||
Revision 1.28 2003/09/03 15:55:01 peter
|
Revision 1.28 2003/09/03 15:55:01 peter
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user