mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-22 19:51:37 +02:00
* add calls to release temps
This commit is contained in:
parent
5c57932695
commit
4aa03c0656
@ -220,6 +220,7 @@ interface
|
|||||||
location.reference.base:=rg.getaddressregister(exprasmlist);
|
location.reference.base:=rg.getaddressregister(exprasmlist);
|
||||||
cg.a_load_ref_reg(exprasmlist,OS_ADDR,left.location.reference,
|
cg.a_load_ref_reg(exprasmlist,OS_ADDR,left.location.reference,
|
||||||
location.reference.base);
|
location.reference.base);
|
||||||
|
location_freetemp(exprasmlist,left.location);
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2002032216);
|
internalerror(2002032216);
|
||||||
@ -237,6 +238,7 @@ interface
|
|||||||
cg.a_load_loc_ref(exprasmlist,left.location,
|
cg.a_load_loc_ref(exprasmlist,left.location,
|
||||||
location.reference);
|
location.reference);
|
||||||
location_release(exprasmlist,left.location);
|
location_release(exprasmlist,left.location);
|
||||||
|
location_freetemp(exprasmlist,left.location);
|
||||||
end;
|
end;
|
||||||
{ the rest is removed in the resulttype pass and converted to compilerprocs }
|
{ the rest is removed in the resulttype pass and converted to compilerprocs }
|
||||||
else
|
else
|
||||||
@ -262,6 +264,7 @@ interface
|
|||||||
location_release(exprasmlist,left.location);
|
location_release(exprasmlist,left.location);
|
||||||
location.register:=rg.getregisterfpu(exprasmlist);
|
location.register:=rg.getregisterfpu(exprasmlist);
|
||||||
cg.a_loadfpu_loc_reg(exprasmlist,left.location,location.register);
|
cg.a_loadfpu_loc_reg(exprasmlist,left.location,location.register);
|
||||||
|
location_freetemp(exprasmlist,left.location);
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2002032215);
|
internalerror(2002032215);
|
||||||
@ -336,7 +339,6 @@ interface
|
|||||||
var
|
var
|
||||||
l1 : tasmlabel;
|
l1 : tasmlabel;
|
||||||
hr : treference;
|
hr : treference;
|
||||||
hd : tobjectdef;
|
|
||||||
begin
|
begin
|
||||||
location_reset(location,LOC_REGISTER,OS_ADDR);
|
location_reset(location,LOC_REGISTER,OS_ADDR);
|
||||||
objectlibrary.getlabel(l1);
|
objectlibrary.getlabel(l1);
|
||||||
@ -358,6 +360,7 @@ interface
|
|||||||
location_release(exprasmlist,left.location);
|
location_release(exprasmlist,left.location);
|
||||||
location.register:=rg.getaddressregister(exprasmlist);
|
location.register:=rg.getaddressregister(exprasmlist);
|
||||||
cg.a_load_ref_reg(exprasmlist,OS_32,left.location.reference,location.register);
|
cg.a_load_ref_reg(exprasmlist,OS_32,left.location.reference,location.register);
|
||||||
|
location_freetemp(exprasmlist,left.location);
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2002032214);
|
internalerror(2002032214);
|
||||||
@ -383,6 +386,7 @@ interface
|
|||||||
location_release(exprasmlist,left.location);
|
location_release(exprasmlist,left.location);
|
||||||
location.register:=rg.getregisterint(exprasmlist);
|
location.register:=rg.getregisterint(exprasmlist);
|
||||||
cg.a_load_ref_reg(exprasmlist,OS_ADDR,left.location.reference,location.register);
|
cg.a_load_ref_reg(exprasmlist,OS_ADDR,left.location.reference,location.register);
|
||||||
|
location_freetemp(exprasmlist,left.location);
|
||||||
end;
|
end;
|
||||||
LOC_CREGISTER:
|
LOC_CREGISTER:
|
||||||
begin
|
begin
|
||||||
@ -487,7 +491,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.27 2002-08-23 16:14:48 peter
|
Revision 1.28 2002-08-25 09:06:58 peter
|
||||||
|
* add calls to release temps
|
||||||
|
|
||||||
|
Revision 1.27 2002/08/23 16:14:48 peter
|
||||||
* tempgen cleanup
|
* tempgen cleanup
|
||||||
* tt_noreuse temp type added that will be used in genentrycode
|
* tt_noreuse temp type added that will be used in genentrycode
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user