+ some more usage of register temps

This commit is contained in:
Jonas Maebe 2004-02-04 18:45:29 +00:00
parent 035c98cad2
commit 0b1069b6ab
3 changed files with 20 additions and 13 deletions

View File

@ -444,17 +444,15 @@ interface
LOC_CREGISTER,
LOC_REGISTER:
begin
{ make sure the register allocator doesn't reuse the }
{ register e.g. in the middle of a loop }
cg.a_load_reg_reg(exprasmlist,OS_INT,OS_INT,tempinfo^.loc.reg,
tempinfo^.loc.reg);
if release_to_normal then
tempinfo^.loc.loc := LOC_REGISTER
else
begin
{ make sure the register allocator doesn't reuse the }
{ register e.g. in the middle of a loop }
cg.a_load_reg_reg(exprasmlist,OS_INT,OS_INT,tempinfo^.loc.reg,
tempinfo^.loc.reg);
{ !!tell rgobj this register is no longer a regvar!! }
cg.ungetregister(exprasmlist,tempinfo^.loc.reg);
end;
{ !!tell rgobj this register is no longer a regvar!! }
cg.ungetregister(exprasmlist,tempinfo^.loc.reg);
end;
end;
end;
@ -471,7 +469,10 @@ begin
end.
{
$Log$
Revision 1.54 2004-02-03 19:48:06 jonas
Revision 1.55 2004-02-04 18:45:29 jonas
+ some more usage of register temps
Revision 1.54 2004/02/03 19:48:06 jonas
* fixed and re-enabled temps in registers
Revision 1.53 2004/02/03 17:55:50 jonas

View File

@ -403,7 +403,7 @@ implementation
if (filepara.left.nodetype <> loadn) then
begin
{ create a temp which will hold a pointer to the file }
filetemp := ctempcreatenode.create(voidpointertype,voidpointertype.def.size,tt_persistent);
filetemp := ctempcreatenode.create_reg(voidpointertype,voidpointertype.def.size,tt_persistent);
{ add it to the statements }
addstatement(newstatement,filetemp);
@ -2374,7 +2374,10 @@ begin
end.
{
$Log$
Revision 1.130 2004-02-03 22:32:54 peter
Revision 1.131 2004-02-04 18:45:29 jonas
+ some more usage of register temps
Revision 1.130 2004/02/03 22:32:54 peter
* renamed xNNbittype to xNNinttype
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ

View File

@ -321,7 +321,7 @@ implementation
newblock:=internalstatements(newstatement);
{ create temp for result }
temp := ctempcreatenode.create(p1.resulttype,p1.resulttype.def.size,tt_persistent);
temp := ctempcreatenode.create_reg(p1.resulttype,p1.resulttype.def.size,tt_persistent);
addstatement(newstatement,temp);
{ create call to fpc_getmem }
@ -734,7 +734,10 @@ implementation
end.
{
$Log$
Revision 1.28 2004-02-03 22:32:54 peter
Revision 1.29 2004-02-04 18:45:29 jonas
+ some more usage of register temps
Revision 1.28 2004/02/03 22:32:54 peter
* renamed xNNbittype to xNNinttype
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ