mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-23 17:51:37 +02:00
* fixed funcretloc for sparc
This commit is contained in:
parent
89b1b583c9
commit
a29eab36c7
@ -493,7 +493,6 @@ implementation
|
||||
retloc : tlocation;
|
||||
hregister : tregister;
|
||||
tempnode : tnode;
|
||||
resultparaloc : pcgparalocation;
|
||||
begin
|
||||
cgsize:=procdefinition.funcretloc[callerside].size;
|
||||
|
||||
@ -557,8 +556,8 @@ implementation
|
||||
{$ifdef x86}
|
||||
tcgx86(cg).inc_fpu_stack;
|
||||
{$else x86}
|
||||
if getsupreg(resultparaloc^.register)<first_fpu_imreg then
|
||||
cg.ungetcpuregister(exprasmlist,resultparaloc^.register);
|
||||
if getsupreg(procdefinition.funcretloc[callerside].register)<first_fpu_imreg then
|
||||
cg.ungetcpuregister(exprasmlist,procdefinition.funcretloc[callerside].register);
|
||||
hregister:=cg.getfpuregister(exprasmlist,location.size);
|
||||
cg.a_loadfpu_reg_reg(exprasmlist,location.size,location.register,hregister);
|
||||
location.register:=hregister;
|
||||
@ -1248,7 +1247,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.187 2004-11-21 17:54:59 peter
|
||||
Revision 1.188 2004-11-21 18:13:31 peter
|
||||
* fixed funcretloc for sparc
|
||||
|
||||
Revision 1.187 2004/11/21 17:54:59 peter
|
||||
* ttempcreatenode.create_reg merged into .create with parameter
|
||||
whether a register is allowed
|
||||
* funcret_paraloc renamed to funcretloc
|
||||
|
@ -1769,7 +1769,8 @@ implementation
|
||||
cg.g_proc_exit(list,parasize,(po_nostackframe in current_procinfo.procdef.procoptions));
|
||||
|
||||
{ release return registers, needed for optimizer }
|
||||
location_free(list,current_procinfo.procdef.funcretloc[calleeside]);
|
||||
if not is_void(current_procinfo.procdef.rettype.def) then
|
||||
location_free(list,current_procinfo.procdef.funcretloc[calleeside]);
|
||||
|
||||
{ end of frame marker for call frame info }
|
||||
dwarfcfi.end_frame(list);
|
||||
@ -2259,7 +2260,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.244 2004-11-21 17:54:59 peter
|
||||
Revision 1.245 2004-11-21 18:13:31 peter
|
||||
* fixed funcretloc for sparc
|
||||
|
||||
Revision 1.244 2004/11/21 17:54:59 peter
|
||||
* ttempcreatenode.create_reg merged into .create with parameter
|
||||
whether a register is allowed
|
||||
* funcret_paraloc renamed to funcretloc
|
||||
|
@ -176,6 +176,7 @@ implementation
|
||||
{$ifndef cpu64bit}
|
||||
if retcgsize in [OS_64,OS_S64] then
|
||||
begin
|
||||
p.funcretloc[side].loc:=LOC_REGISTER;
|
||||
{ high }
|
||||
if (side=callerside) or (p.proccalloption=pocall_inline)then
|
||||
p.funcretloc[side].register64.reghi:=NR_FUNCTION_RESULT64_HIGH_REG
|
||||
@ -316,7 +317,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.49 2004-11-21 17:54:59 peter
|
||||
Revision 1.50 2004-11-21 18:13:31 peter
|
||||
* fixed funcretloc for sparc
|
||||
|
||||
Revision 1.49 2004/11/21 17:54:59 peter
|
||||
* ttempcreatenode.create_reg merged into .create with parameter
|
||||
whether a register is allowed
|
||||
* funcret_paraloc renamed to funcretloc
|
||||
|
Loading…
Reference in New Issue
Block a user