mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-26 12:29:10 +02:00
* fixed misplaced getexplicitreg(r_edi) which broke make cycle
This commit is contained in:
parent
23d69a5126
commit
7b87725809
@ -827,19 +827,20 @@ implementation
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
{ call can have happend with a property }
|
{ call can have happend with a property }
|
||||||
|
if (p^.left^.resulttype^.deftype=objectdef) and
|
||||||
|
pobjectdef(p^.left^.resulttype)^.is_class then
|
||||||
|
begin
|
||||||
{$ifndef noAllocEdi}
|
{$ifndef noAllocEdi}
|
||||||
getexplicitregister32(R_EDI);
|
getexplicitregister32(R_EDI);
|
||||||
{$endif noAllocEdi}
|
{$endif noAllocEdi}
|
||||||
if { (p^.left^.treetype=calln) and Don't think that
|
|
||||||
this is necessary (FK) }
|
|
||||||
(p^.left^.resulttype^.deftype=objectdef) and
|
|
||||||
pobjectdef(p^.left^.resulttype)^.is_class then
|
|
||||||
begin
|
|
||||||
emit_mov_loc_reg(p^.left^.location,R_EDI);
|
emit_mov_loc_reg(p^.left^.location,R_EDI);
|
||||||
usetemp:=true;
|
usetemp:=true;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
|
{$ifndef noAllocEdi}
|
||||||
|
getexplicitregister32(R_EDI);
|
||||||
|
{$endif noAllocEdi}
|
||||||
emit_lea_loc_reg(p^.left^.location,R_EDI,false);
|
emit_lea_loc_reg(p^.left^.location,R_EDI,false);
|
||||||
usetemp:=true;
|
usetemp:=true;
|
||||||
end;
|
end;
|
||||||
@ -864,8 +865,7 @@ implementation
|
|||||||
gettempofsizereference(4,p^.withreference^);
|
gettempofsizereference(4,p^.withreference^);
|
||||||
normaltemptopersistant(p^.withreference^.offset);
|
normaltemptopersistant(p^.withreference^.offset);
|
||||||
{ move to temp reference }
|
{ move to temp reference }
|
||||||
emit_reg_ref(A_MOV,S_L,
|
emit_reg_ref(A_MOV,S_L,R_EDI,newreference(p^.withreference^));
|
||||||
R_EDI,newreference(p^.withreference^));
|
|
||||||
{$ifndef noAllocEdi}
|
{$ifndef noAllocEdi}
|
||||||
ungetregister32(R_EDI);
|
ungetregister32(R_EDI);
|
||||||
{$endif noAllocEdi}
|
{$endif noAllocEdi}
|
||||||
@ -891,7 +891,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.68 2000-01-09 12:35:02 jonas
|
Revision 1.69 2000-01-09 15:19:23 peter
|
||||||
|
* fixed misplaced getexplicitreg(r_edi) which broke make cycle
|
||||||
|
|
||||||
|
Revision 1.68 2000/01/09 12:35:02 jonas
|
||||||
* changed edi allocation to use getexplicitregister32/ungetregister
|
* changed edi allocation to use getexplicitregister32/ungetregister
|
||||||
(adapted tgeni386 a bit for this) and enabled it by default
|
(adapted tgeni386 a bit for this) and enabled it by default
|
||||||
* fixed very big and stupid bug of mine in cg386mat that broke the
|
* fixed very big and stupid bug of mine in cg386mat that broke the
|
||||||
|
Loading…
Reference in New Issue
Block a user