mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 10:19:17 +02:00
* released useparatemp
This commit is contained in:
parent
059908d399
commit
dfd60cb507
@ -26,8 +26,6 @@ unit ncgcal;
|
|||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
{ $define AnsiStrRef}
|
|
||||||
|
|
||||||
uses
|
uses
|
||||||
cpubase,
|
cpubase,
|
||||||
globtype,
|
globtype,
|
||||||
@ -130,17 +128,11 @@ implementation
|
|||||||
secondpass(left);
|
secondpass(left);
|
||||||
|
|
||||||
{ Allocate (temporary) paralocation }
|
{ Allocate (temporary) paralocation }
|
||||||
{$ifdef usetempparaloc}
|
|
||||||
tempparaloc:=paraitem.paraloc[callerside];
|
tempparaloc:=paraitem.paraloc[callerside];
|
||||||
if tempparaloc.loc=LOC_REGISTER then
|
if tempparaloc.loc=LOC_REGISTER then
|
||||||
paramanager.alloctempregs(exprasmlist,tempparaloc)
|
paramanager.alloctempregs(exprasmlist,tempparaloc)
|
||||||
else
|
else
|
||||||
paramanager.allocparaloc(exprasmlist,tempparaloc);
|
paramanager.allocparaloc(exprasmlist,tempparaloc);
|
||||||
{$else}
|
|
||||||
tempparaloc:=paraitem.paraloc[callerside];
|
|
||||||
paramanager.allocparaloc(exprasmlist,tempparaloc);
|
|
||||||
{$endif usetempparaloc}
|
|
||||||
|
|
||||||
|
|
||||||
{ handle varargs first, because defcoll is not valid }
|
{ handle varargs first, because defcoll is not valid }
|
||||||
if (nf_varargs_para in flags) then
|
if (nf_varargs_para in flags) then
|
||||||
@ -605,10 +597,8 @@ implementation
|
|||||||
ppn:=tcgcallparanode(left);
|
ppn:=tcgcallparanode(left);
|
||||||
while assigned(ppn) do
|
while assigned(ppn) do
|
||||||
begin
|
begin
|
||||||
{$ifdef usetempparaloc}
|
|
||||||
if ppn.tempparaloc.loc=LOC_REGISTER then
|
if ppn.tempparaloc.loc=LOC_REGISTER then
|
||||||
paramanager.freeparaloc(exprasmlist,ppn.tempparaloc);
|
paramanager.freeparaloc(exprasmlist,ppn.tempparaloc);
|
||||||
{$endif usetempparaloc}
|
|
||||||
paramanager.freeparaloc(exprasmlist,ppn.paraitem.paraloc[callerside]);
|
paramanager.freeparaloc(exprasmlist,ppn.paraitem.paraloc[callerside]);
|
||||||
ppn:=tcgcallparanode(ppn.right);
|
ppn:=tcgcallparanode(ppn.right);
|
||||||
end;
|
end;
|
||||||
@ -771,9 +761,7 @@ implementation
|
|||||||
(po_leftright in procdefinition.procoptions),procdefinition.proccalloption,
|
(po_leftright in procdefinition.procoptions),procdefinition.proccalloption,
|
||||||
para_alignment,0);
|
para_alignment,0);
|
||||||
|
|
||||||
{$ifdef usetempparaloc}
|
|
||||||
pushparas;
|
pushparas;
|
||||||
{$endif}
|
|
||||||
end;
|
end;
|
||||||
aktcallnode:=oldaktcallnode;
|
aktcallnode:=oldaktcallnode;
|
||||||
|
|
||||||
@ -1343,7 +1331,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.109 2003-09-03 15:55:00 peter
|
Revision 1.110 2003-09-04 15:39:58 peter
|
||||||
|
* released useparatemp
|
||||||
|
|
||||||
|
Revision 1.109 2003/09/03 15:55:00 peter
|
||||||
* NEWRA branch merged
|
* NEWRA branch merged
|
||||||
|
|
||||||
Revision 1.108.2.4 2003/09/01 21:02:55 peter
|
Revision 1.108.2.4 2003/09/01 21:02:55 peter
|
||||||
|
@ -108,9 +108,7 @@ unit paramgr;
|
|||||||
{ Return the location of the low and high part of a 64bit parameter }
|
{ Return the location of the low and high part of a 64bit parameter }
|
||||||
procedure splitparaloc64(const locpara:tparalocation;var loclopara,lochipara:tparalocation);virtual;
|
procedure splitparaloc64(const locpara:tparalocation;var loclopara,lochipara:tparalocation);virtual;
|
||||||
|
|
||||||
{$ifdef usetempparaloc}
|
|
||||||
procedure alloctempregs(list: taasmoutput;var locpara:tparalocation);virtual;
|
procedure alloctempregs(list: taasmoutput;var locpara:tparalocation);virtual;
|
||||||
{$endif usetempparaloc}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -326,7 +324,6 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{$ifdef usetempparaloc}
|
|
||||||
procedure tparamanager.alloctempregs(list: taasmoutput;var locpara:tparalocation);
|
procedure tparamanager.alloctempregs(list: taasmoutput;var locpara:tparalocation);
|
||||||
begin
|
begin
|
||||||
if locpara.loc<>LOC_REGISTER then
|
if locpara.loc<>LOC_REGISTER then
|
||||||
@ -341,7 +338,6 @@ implementation
|
|||||||
{$endif cpu64bit}
|
{$endif cpu64bit}
|
||||||
locpara.register:=rg.getregisterint(list,locpara.size);
|
locpara.register:=rg.getregisterint(list,locpara.size);
|
||||||
end;
|
end;
|
||||||
{$endif usetempparaloc}
|
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
@ -352,7 +348,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.51 2003-09-03 15:55:01 peter
|
Revision 1.52 2003-09-04 15:39:58 peter
|
||||||
|
* released useparatemp
|
||||||
|
|
||||||
|
Revision 1.51 2003/09/03 15:55:01 peter
|
||||||
* NEWRA branch merged
|
* NEWRA branch merged
|
||||||
|
|
||||||
Revision 1.50.2.1 2003/08/29 17:28:59 peter
|
Revision 1.50.2.1 2003/08/29 17:28:59 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user