* fixed web bug #1716

This commit is contained in:
Jonas Maebe 2001-12-07 13:03:49 +00:00
parent b60666ae1f
commit 760e88791c

View File

@ -246,6 +246,8 @@ implementation
ungetregister32(R_EDI);
if nodetype=divn then
begin
if not popedx and (hreg1 <> R_EDX) then
ungetregister(R_EDX);
{ if result register is busy then copy }
if popeax then
begin
@ -261,14 +263,14 @@ implementation
{ the div (JM) }
hreg1 := R_EAX;
end;
if not popedx and (hreg1 <> R_EDX) then
ungetregister(R_EDX);
end
else
{if we did the mod by an "and", the result is in hreg1 and
EDX certainly hasn't been pushed (JM)}
if not(andmod) Then
begin
if not popeax and (hreg1 <> R_EAX)then
ungetregister(R_EAX);
if popedx then
{the mod was done by an (i)div (so the result is now in
edx), but edx was occupied prior to the division, so
@ -280,8 +282,6 @@ implementation
ungetregister32(hreg1);
hreg1 := R_EDX
End;
if not popeax and (hreg1 <> R_EAX)then
ungetregister(R_EAX);
end;
if popeax then
emit_reg(A_POP,S_L,R_EAX);
@ -1018,7 +1018,10 @@ begin
end.
{
$Log$
Revision 1.18 2001-12-04 15:57:28 jonas
Revision 1.19 2001-12-07 13:03:49 jonas
* fixed web bug 1716
Revision 1.18 2001/12/04 15:57:28 jonas
* never generate any "shll/shrl $0,%reg" anymore
Revision 1.17 2001/12/02 16:19:17 jonas