mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-25 18:01:53 +02:00
fix register deallocation for 64bit results
This commit is contained in:
parent
2e196d55e4
commit
6e0cf1751a
@ -126,7 +126,6 @@ implementation
|
|||||||
procedure tcgcallparanode.push_value_para;
|
procedure tcgcallparanode.push_value_para;
|
||||||
{$ifdef i386}
|
{$ifdef i386}
|
||||||
var
|
var
|
||||||
cgsize : tcgsize;
|
|
||||||
href : treference;
|
href : treference;
|
||||||
size : longint;
|
size : longint;
|
||||||
{$endif i386}
|
{$endif i386}
|
||||||
@ -961,7 +960,17 @@ implementation
|
|||||||
case procdefinition.funcretloc[callerside].loc of
|
case procdefinition.funcretloc[callerside].loc of
|
||||||
LOC_REGISTER,
|
LOC_REGISTER,
|
||||||
LOC_CREGISTER:
|
LOC_CREGISTER:
|
||||||
exclude(regs_to_save_int,getsupreg(procdefinition.funcretloc[callerside].register));
|
begin
|
||||||
|
{$ifndef cpu64bit}
|
||||||
|
if procdefinition.funcretloc[callerside].size in [OS_64,OS_S64] then
|
||||||
|
begin
|
||||||
|
exclude(regs_to_save_int,getsupreg(procdefinition.funcretloc[callerside].register64.reghi));
|
||||||
|
exclude(regs_to_save_int,getsupreg(procdefinition.funcretloc[callerside].register64.reglo));
|
||||||
|
end
|
||||||
|
else
|
||||||
|
{$endif cpu64bit}
|
||||||
|
exclude(regs_to_save_int,getsupreg(procdefinition.funcretloc[callerside].register));
|
||||||
|
end;
|
||||||
LOC_FPUREGISTER,
|
LOC_FPUREGISTER,
|
||||||
LOC_CFPUREGISTER:
|
LOC_CFPUREGISTER:
|
||||||
exclude(regs_to_save_fpu,getsupreg(procdefinition.funcretloc[callerside].register));
|
exclude(regs_to_save_fpu,getsupreg(procdefinition.funcretloc[callerside].register));
|
||||||
@ -1226,7 +1235,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.201 2005-02-15 21:39:48 peter
|
Revision 1.202 2005-02-27 16:40:13 peter
|
||||||
|
fix register deallocation for 64bit results
|
||||||
|
|
||||||
|
Revision 1.201 2005/02/15 21:39:48 peter
|
||||||
* remove is_single_reference
|
* remove is_single_reference
|
||||||
* revert loading of ref-to-ref para valu
|
* revert loading of ref-to-ref para valu
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user