mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 18:09:30 +02:00
* use index register when available for generating a reference with
only a signle register. Using the base register could possibly destroy the framepointer
This commit is contained in:
parent
a73ecec989
commit
f77536fece
@ -120,9 +120,9 @@ implementation
|
||||
end
|
||||
else
|
||||
begin
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,location.reference,location.reference.base);
|
||||
rg.ungetregisterint(exprasmlist,location.reference.index);
|
||||
reference_reset_base(location.reference,location.reference.base,0);
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,location.reference,location.reference.index);
|
||||
rg.ungetregisterint(exprasmlist,location.reference.base);
|
||||
reference_reset_base(location.reference,location.reference.index,0);
|
||||
end;
|
||||
{ insert the new index register and scalefactor or
|
||||
do the multiplication manual }
|
||||
@ -156,7 +156,12 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.42 2002-09-01 18:46:01 peter
|
||||
Revision 1.43 2002-09-01 19:27:35 peter
|
||||
* use index register when available for generating a reference with
|
||||
only a signle register. Using the base register could possibly
|
||||
destroy the framepointer
|
||||
|
||||
Revision 1.42 2002/09/01 18:46:01 peter
|
||||
* fixed generic tcgvecnode
|
||||
* move code that updates a reference with index register and multiplier
|
||||
to separate method so it can be overriden for scaled indexing
|
||||
|
@ -595,7 +595,7 @@ implementation
|
||||
(l.reference.index<>R_NO)) then
|
||||
begin
|
||||
{ load address into a single base register }
|
||||
if l.reference.base=R_NO then
|
||||
if l.reference.index<>R_NO then
|
||||
begin
|
||||
cg.a_loadaddr_ref_reg(list,l.reference,l.reference.index);
|
||||
rg.ungetregister(list,l.reference.base);
|
||||
@ -1786,7 +1786,12 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.45 2002-09-01 18:50:20 peter
|
||||
Revision 1.46 2002-09-01 19:27:34 peter
|
||||
* use index register when available for generating a reference with
|
||||
only a signle register. Using the base register could possibly
|
||||
destroy the framepointer
|
||||
|
||||
Revision 1.45 2002/09/01 18:50:20 peter
|
||||
* fixed maybe_save that did not support a reference with only
|
||||
a index register. It now also updates the location with the new
|
||||
base register only
|
||||
|
Loading…
Reference in New Issue
Block a user