mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-31 17:30:38 +02:00
* bugs in secondfuncret for result in subprocedures removed
This commit is contained in:
parent
e619803966
commit
fa1478ef99
@ -531,7 +531,7 @@ implementation
|
||||
if @procinfo<>pprocinfo(p^.funcretprocinfo) then
|
||||
begin
|
||||
hr:=getregister32;
|
||||
hr_valid:=false;
|
||||
hr_valid:=true;
|
||||
hp:=new_reference(procinfo.framepointer,
|
||||
procinfo.framepointer_offset);
|
||||
exprasmlist^.concat(new(pai386,op_ref_reg(A_MOV,S_L,hp,hr)));
|
||||
@ -733,7 +733,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.23 1998-10-06 17:16:44 pierre
|
||||
Revision 1.24 1998-10-14 08:47:14 pierre
|
||||
* bugs in secondfuncret for result in subprocedures removed
|
||||
|
||||
Revision 1.23 1998/10/06 17:16:44 pierre
|
||||
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||
|
||||
Revision 1.22 1998/10/01 09:22:53 peter
|
||||
|
@ -447,10 +447,10 @@ implementation
|
||||
hr_valid:=false;
|
||||
{ !!!!!!! }
|
||||
|
||||
(* if @procinfo<>pprocinfo(p^.funcretprocinfo) then
|
||||
if @procinfo<>pprocinfo(p^.funcretprocinfo) then
|
||||
begin
|
||||
hr:=getregister32;
|
||||
hr_valid:=false;
|
||||
hr:=getaddressreg;
|
||||
hr_valid:=true;
|
||||
hp:=new_reference(procinfo.framepointer,
|
||||
procinfo.framepointer_offset);
|
||||
exprasmlist^.concat(new(pai68k,op_ref_reg(A_MOVE,S_L,hp,hr)));
|
||||
@ -466,7 +466,7 @@ implementation
|
||||
end;
|
||||
p^.location.reference.base:=hr;
|
||||
end
|
||||
else *)
|
||||
else
|
||||
p^.location.reference.base:=procinfo.framepointer;
|
||||
p^.location.reference.offset:=procinfo.retoffset;
|
||||
if ret_in_param(p^.retdef) then
|
||||
@ -510,7 +510,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 1998-10-14 08:08:53 pierre
|
||||
Revision 1.6 1998-10-14 08:47:16 pierre
|
||||
* bugs in secondfuncret for result in subprocedures removed
|
||||
|
||||
Revision 1.5 1998/10/14 08:08:53 pierre
|
||||
* following Peters remark, removed all ifdef in
|
||||
the systems unit enums
|
||||
* last bugs of cg68k removed for sysamiga
|
||||
|
@ -308,7 +308,7 @@ unit i386;
|
||||
|
||||
{ resets all values of ref to defaults }
|
||||
procedure reset_reference(var ref : treference);
|
||||
{ mostly set value of a reference }
|
||||
{ set mostly used values of a new reference }
|
||||
function new_reference(base : tregister;offset : longint) : preference;
|
||||
{ same as reset_reference, but symbol is disposed }
|
||||
{ use this only for already used references }
|
||||
@ -1724,7 +1724,10 @@ unit i386;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.12 1998-10-08 17:17:20 pierre
|
||||
Revision 1.13 1998-10-14 08:47:17 pierre
|
||||
* bugs in secondfuncret for result in subprocedures removed
|
||||
|
||||
Revision 1.12 1998/10/08 17:17:20 pierre
|
||||
* current_module old scanner tagged as invalid if unit is recompiled
|
||||
+ added ppheap for better info on tracegetmem of heaptrc
|
||||
(adds line column and file index)
|
||||
|
@ -353,6 +353,9 @@ type
|
||||
{ resets all values of ref to defaults }
|
||||
procedure reset_reference(var ref : treference);
|
||||
|
||||
{ set mostly used values of a new reference }
|
||||
function new_reference(base : tregister;offset : longint) : preference;
|
||||
|
||||
{ same as reset_reference, but symbol is disposed }
|
||||
{ use this only for already used references }
|
||||
procedure clear_reference(var ref : treference);
|
||||
@ -916,6 +919,18 @@ type
|
||||
end;
|
||||
end;
|
||||
|
||||
function new_reference(base : tregister;offset : longint) : preference;
|
||||
|
||||
var
|
||||
r : preference;
|
||||
begin
|
||||
new(r);
|
||||
reset_reference(r^);
|
||||
r^.base:=base;
|
||||
r^.offset:=offset;
|
||||
new_reference:=r;
|
||||
end;
|
||||
|
||||
procedure clear_reference(var ref : treference);
|
||||
|
||||
begin
|
||||
@ -1593,7 +1608,10 @@ type
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.8 1998-10-13 16:50:15 pierre
|
||||
Revision 1.9 1998-10-14 08:47:18 pierre
|
||||
* bugs in secondfuncret for result in subprocedures removed
|
||||
|
||||
Revision 1.8 1998/10/13 16:50:15 pierre
|
||||
* undid some changes of Peter that made the compiler wrong
|
||||
for m68k (I had to reinsert some ifdefs)
|
||||
* removed several memory leaks under m68k
|
||||
|
Loading…
Reference in New Issue
Block a user