* ungetregisterfpu gets size parameter

This commit is contained in:
peter 2003-06-12 21:11:10 +00:00
parent 02b3ec4f28
commit d179aea20d
3 changed files with 19 additions and 8 deletions

View File

@ -1011,7 +1011,7 @@ unit cgobj;
hr:=rg.getregisterfpu(list,size);
a_loadfpu_ref_reg(list,size,ref,hr);
a_paramfpu_reg(list,size,hr,locpara);
rg.ungetregisterfpu(list,hr);
rg.ungetregisterfpu(list,hr,size);
end;
@ -1718,7 +1718,10 @@ finalization
end.
{
$Log$
Revision 1.110 2003-06-12 16:43:07 peter
Revision 1.111 2003-06-12 21:11:10 peter
* ungetregisterfpu gets size parameter
Revision 1.110 2003/06/12 16:43:07 peter
* newra compiles for sparc
Revision 1.109 2003/06/07 18:57:04 jonas

View File

@ -298,7 +298,7 @@ unit paramgr;
LOC_REGISTER, LOC_CREGISTER:
rg.ungetregisterint(list,loc.register);
LOC_FPUREGISTER, LOC_CFPUREGISTER:
rg.ungetregisterfpu(list,loc.register);
rg.ungetregisterfpu(list,loc.register,loc.size);
LOC_REFERENCE,LOC_CREFERENCE:
{ do nothing by default, most of the time it's the framepointer }
else
@ -459,7 +459,10 @@ end.
{
$Log$
Revision 1.43 2003-06-09 14:54:26 jonas
Revision 1.44 2003-06-12 21:11:10 peter
* ungetregisterfpu gets size parameter
Revision 1.43 2003/06/09 14:54:26 jonas
* (de)allocation of registers for parameters is now performed properly
(and checked on the ppc)
- removed obsolete allocation of all parameter registers at the start

View File

@ -241,7 +241,7 @@ unit rgobj;
@param(r register to free)
}
procedure ungetregisterfpu(list: taasmoutput; r : tregister); virtual;
procedure ungetregisterfpu(list: taasmoutput; r : tregister;size:TCGsize); virtual;
function getregistermm(list: taasmoutput) : tregister; virtual;
procedure ungetregistermm(list: taasmoutput; r : tregister); virtual;
@ -816,7 +816,7 @@ unit rgobj;
end;
procedure trgobj.ungetregisterfpu(list : taasmoutput; r : tregister);
procedure trgobj.ungetregisterfpu(list : taasmoutput; r : tregister;size:TCGsize);
begin
ungetregistergen(list,r,usableregsfpu,unusedregsfpu,
@ -870,7 +870,7 @@ unit rgobj;
if r.enum in intregs then
ungetregisterint(list,r)
else if r.enum in fpuregs then
ungetregisterfpu(list,r)
ungetregisterfpu(list,r,OS_NO)
else if r.enum in mmregs then
ungetregistermm(list,r)
else if r.enum in addrregs then
@ -2429,6 +2429,8 @@ unit rgobj;
if l.size in [OS_64,OS_S64] then
rg.ungetregisterint(list,l.registerhigh);
end;
LOC_FPUREGISTER,LOC_CFPUREGISTER :
rg.ungetregisterfpu(list,l.register,l.size);
LOC_CREFERENCE,LOC_REFERENCE :
rg.ungetreference(list, l.reference);
end;
@ -2466,7 +2468,10 @@ end.
{
$Log$
Revision 1.52 2003-06-12 16:43:07 peter
Revision 1.53 2003-06-12 21:11:10 peter
* ungetregisterfpu gets size parameter
Revision 1.52 2003/06/12 16:43:07 peter
* newra compiles for sparc
Revision 1.51 2003/06/09 14:54:26 jonas