mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-02 16:39:36 +01:00
+ extra allocations of function result regs for the optimiser
This commit is contained in:
parent
256299c274
commit
b3086d3122
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user