mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-28 20:40:37 +02:00
* refined previous fix (sometimes the number of necessary registers was
overestimated) (merged from fixes branch)
This commit is contained in:
parent
6b97311fd7
commit
ba86afd3b0
@ -573,22 +573,22 @@ implementation
|
||||
begin
|
||||
extraoffset:=p^.right^.right^.value;
|
||||
t:=p^.right^.left;
|
||||
{ First pass processed this with the assumption }
|
||||
{ that there was an add node which may require an }
|
||||
{ extra register. Fake it or die with IE10 (JM) }
|
||||
t^.registers32 := p^.right^.registers32;
|
||||
putnode(p^.right^.right);
|
||||
putnode(p^.right);
|
||||
p^.right:=t;
|
||||
{ First pass processed this with the assumption }
|
||||
{ that there was an add node which requires an }
|
||||
{ extra register. Fake it or die with IE10 (JM) }
|
||||
inc(p^.right^.registers32);
|
||||
end
|
||||
else if p^.right^.left^.treetype=ordconstn then
|
||||
begin
|
||||
extraoffset:=p^.right^.left^.value;
|
||||
t:=p^.right^.right;
|
||||
t^.registers32 := p^.right^.registers32;
|
||||
putnode(p^.right^.left);
|
||||
putnode(p^.right);
|
||||
p^.right:=t;
|
||||
inc(p^.right^.registers32);
|
||||
end;
|
||||
end
|
||||
else if (p^.right^.treetype=subn) then
|
||||
@ -599,10 +599,10 @@ implementation
|
||||
copy-paste bug :) (JM) }
|
||||
extraoffset:=-p^.right^.right^.value;
|
||||
t:=p^.right^.left;
|
||||
t^.registers32 := p^.right^.registers32;
|
||||
putnode(p^.right^.right);
|
||||
putnode(p^.right);
|
||||
p^.right:=t;
|
||||
inc(p^.right^.registers32);
|
||||
end
|
||||
{ You also have to negate p^.right^.right in this case! I can't add an
|
||||
unaryminusn without causing a crash, so I've disabled it (JM)
|
||||
@ -610,6 +610,7 @@ implementation
|
||||
begin
|
||||
extraoffset:=p^.right^.left^.value;
|
||||
t:=p^.right^.right;
|
||||
t^.registers32 := p^.right^.registers32;
|
||||
putnode(p^.right);
|
||||
putnode(p^.right^.left);
|
||||
p^.right:=t;
|
||||
@ -957,7 +958,11 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 2000-07-27 12:41:54 jonas
|
||||
Revision 1.5 2000-07-28 07:38:13 jonas
|
||||
* refined previous fix (sometimes the number of necessary registers was
|
||||
overestimated) (merged from fixes branch)
|
||||
|
||||
Revision 1.4 2000/07/27 12:41:54 jonas
|
||||
* fixed internalerror(10) when using -Or and complex arrays (merged
|
||||
from fixes branch)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user