mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-08 09:23:48 +02:00
* fixed an IE10 and another bug with [var1..var2] construct
This commit is contained in:
parent
ac372ae559
commit
676fe2fee3
@ -560,6 +560,9 @@ interface
|
|||||||
|
|
||||||
regstopush := $ff;
|
regstopush := $ff;
|
||||||
remove_non_regvars_from_loc(right.location,regstopush);
|
remove_non_regvars_from_loc(right.location,regstopush);
|
||||||
|
if (right.nodetype = setelementn) and
|
||||||
|
assigned(tsetelementnode(right).right) then
|
||||||
|
remove_non_regvars_from_loc(tsetelementnode(right).right.location,regstopush);
|
||||||
remove_non_regvars_from_loc(left.location,regstopush);
|
remove_non_regvars_from_loc(left.location,regstopush);
|
||||||
pushusedregisters(pushedregs,regstopush);
|
pushusedregisters(pushedregs,regstopush);
|
||||||
{ this is still right before the instruction that uses }
|
{ this is still right before the instruction that uses }
|
||||||
@ -2273,7 +2276,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.11 2001-04-13 01:22:18 peter
|
Revision 1.12 2001-05-06 17:12:14 jonas
|
||||||
|
* fixed an IE10 and another bug with [var1..var2] construct
|
||||||
|
|
||||||
|
Revision 1.11 2001/04/13 01:22:18 peter
|
||||||
* symtable change to classes
|
* symtable change to classes
|
||||||
* range check generation and errors fixed, make cycle DEBUG=1 works
|
* range check generation and errors fixed, make cycle DEBUG=1 works
|
||||||
* memory leaks fixed
|
* memory leaks fixed
|
||||||
|
@ -60,6 +60,8 @@ implementation
|
|||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
|
||||||
procedure ti386setelementnode.pass_2;
|
procedure ti386setelementnode.pass_2;
|
||||||
|
var
|
||||||
|
pushed: boolean;
|
||||||
begin
|
begin
|
||||||
{ load first value in 32bit register }
|
{ load first value in 32bit register }
|
||||||
secondpass(left);
|
secondpass(left);
|
||||||
@ -69,7 +71,12 @@ implementation
|
|||||||
{ also a second value ? }
|
{ also a second value ? }
|
||||||
if assigned(right) then
|
if assigned(right) then
|
||||||
begin
|
begin
|
||||||
|
pushed:=maybe_push(right.registers32,left,false);
|
||||||
secondpass(right);
|
secondpass(right);
|
||||||
|
if codegenerror then
|
||||||
|
exit;
|
||||||
|
if pushed then
|
||||||
|
restore(left,false);
|
||||||
if right.location.loc in [LOC_REGISTER,LOC_CREGISTER] then
|
if right.location.loc in [LOC_REGISTER,LOC_CREGISTER] then
|
||||||
emit_to_reg32(right.location.register);
|
emit_to_reg32(right.location.register);
|
||||||
end;
|
end;
|
||||||
@ -1065,7 +1072,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.14 2001-04-13 01:22:19 peter
|
Revision 1.15 2001-05-06 17:12:14 jonas
|
||||||
|
* fixed an IE10 and another bug with [var1..var2] construct
|
||||||
|
|
||||||
|
Revision 1.14 2001/04/13 01:22:19 peter
|
||||||
* symtable change to classes
|
* symtable change to classes
|
||||||
* range check generation and errors fixed, make cycle DEBUG=1 works
|
* range check generation and errors fixed, make cycle DEBUG=1 works
|
||||||
* memory leaks fixed
|
* memory leaks fixed
|
||||||
|
Loading…
Reference in New Issue
Block a user