+ extra allocations of function result regs for the optimiser

This commit is contained in:
Jonas Maebe 2003-11-22 00:31:25 +00:00
parent 256299c274
commit b3086d3122

View File

@ -983,6 +983,8 @@ implementation
internalerror(2003091810);
end;
cg.ungetregister(list,NR_FUNCTION_RETURN_REG);
// for the optimizer
cg.a_reg_alloc(list,NR_FUNCTION_RETURN_REG);
cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_FUNCTION_RETURN_REG);
uses_acc:=true;
exit;
@ -1029,6 +1031,9 @@ implementation
cg.getexplicitregister(list,NR_FUNCTION_RETURN64_HIGH_REG);
cg.ungetregister(list,NR_FUNCTION_RETURN64_LOW_REG);
cg.ungetregister(list,NR_FUNCTION_RETURN64_HIGH_REG);
// for the optimizer
cg.a_reg_alloc(list,NR_FUNCTION_RETURN64_LOW_REG);
cg.a_reg_alloc(list,NR_FUNCTION_RETURN64_HIGH_REG);
cg64.a_load64_loc_reg(list,resloc,joinreg64(NR_FUNCTION_RETURN64_LOW_REG,
NR_FUNCTION_RETURN64_HIGH_REG),false);
end
@ -1038,6 +1043,8 @@ implementation
cg.getexplicitregister(list,NR_FUNCTION_RETURN_REG);
hreg:=cg.makeregsize(NR_FUNCTION_RETURN_REG,resloc.size);
cg.ungetregister(list,hreg);
// for the optimizer
cg.a_reg_alloc(list,NR_FUNCTION_RETURN_REG);
cg.a_load_loc_reg(list,resloc.size,resloc,hreg);
end;
end;
@ -1065,6 +1072,9 @@ implementation
cg.getexplicitregister(list,NR_FUNCTION_RETURN64_HIGH_REG);
cg.ungetregister(list,NR_FUNCTION_RETURN64_LOW_REG);
cg.ungetregister(list,NR_FUNCTION_RETURN64_HIGH_REG);
// for the optimizer
cg.a_reg_alloc(list,NR_FUNCTION_RETURN64_LOW_REG);
cg.a_reg_alloc(list,NR_FUNCTION_RETURN64_HIGH_REG);
cg64.a_load64_loc_reg(list,resloc,joinreg64(NR_FUNCTION_RETURN64_LOW_REG,
NR_FUNCTION_RETURN64_HIGH_REG),false);
end
@ -1074,6 +1084,8 @@ implementation
cg.getexplicitregister(list,NR_FUNCTION_RETURN_REG);
hreg:=cg.makeregsize(NR_FUNCTION_RETURN_REG,resloc.size);
cg.ungetregister(list,hreg);
// for the optimizer
cg.a_reg_alloc(list,NR_FUNCTION_RETURN_REG);
cg.a_load_loc_reg(list,resloc.size,resloc,hreg);
end;
end
@ -1964,7 +1976,10 @@ implementation
end.
{
$Log$
Revision 1.167 2003-11-11 21:10:12 peter
Revision 1.168 2003-11-22 00:31:25 jonas
+ extra allocations of function result regs for the optimiser
Revision 1.167 2003/11/11 21:10:12 peter
* remove temporary stdcall hack
Revision 1.166 2003/11/10 22:02:52 peter