* bugs in secondfuncret for result in subprocedures removed

This commit is contained in:
pierre 1998-10-14 08:47:14 +00:00
parent e619803966
commit fa1478ef99
4 changed files with 37 additions and 10 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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