mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 19:49:12 +02:00
* don't use rg.getregisterint() anymore in g_stackframe_entry_*, because
the register colouring has already occurred then, use a hard-coded register instead
This commit is contained in:
parent
355f84758e
commit
a3cb0d2002
@ -1151,18 +1151,14 @@ const
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
reference_reset_base(href,r,0);
|
reference_reset_base(href,r,0);
|
||||||
{$ifndef newra}
|
{ can't use getregisterint here, the register colouring }
|
||||||
href.index := get_scratch_reg_int(list,OS_32);
|
{ is already done when we get here }
|
||||||
{$else newra}
|
href.index.enum := R_INTREGISTER;
|
||||||
href.index := rg.getregisterint(list,OS_32);
|
href.index.number := NR_R11;
|
||||||
{$endif newra}
|
a_reg_alloc(list,href.index);
|
||||||
a_load_const_reg(list,OS_S32,-localsize,href.index);
|
a_load_const_reg(list,OS_S32,-localsize,href.index);
|
||||||
a_load_store(list,A_STWUX,r,href);
|
a_load_store(list,A_STWUX,r,href);
|
||||||
{$ifndef newra}
|
a_reg_dealloc(list,href.index);
|
||||||
free_scratch_reg(list,href.index);
|
|
||||||
{$else newra}
|
|
||||||
rg.ungetregisterint(list,href.index);
|
|
||||||
{$endif newra}
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1672,18 +1668,12 @@ const
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
reference_reset_base(href,r,0);
|
reference_reset_base(href,r,0);
|
||||||
{$ifndef newra}
|
href.index.enum := R_INTREGISTER;
|
||||||
href.index := get_scratch_reg_int(list,OS_32);
|
href.index.number := NR_R11;
|
||||||
{$else newra}
|
a_reg_alloc(list,href.index);
|
||||||
href.index := rg.getregisterint(list,OS_ADDR);
|
|
||||||
{$endif newra}
|
|
||||||
a_load_const_reg(list,OS_S32,-localsize,href.index);
|
a_load_const_reg(list,OS_S32,-localsize,href.index);
|
||||||
a_load_store(list,A_STWUX,r,href);
|
a_load_store(list,A_STWUX,r,href);
|
||||||
{$ifndef newra}
|
a_reg_dealloc(list,href.index);
|
||||||
free_scratch_reg(list,href.index);
|
|
||||||
{$else newra}
|
|
||||||
rg.ungetregisterint(list,href.index);
|
|
||||||
{$endif newra}
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2723,7 +2713,12 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.115 2003-07-20 20:39:20 jonas
|
Revision 1.116 2003-07-23 11:02:23 jonas
|
||||||
|
* don't use rg.getregisterint() anymore in g_stackframe_entry_*, because
|
||||||
|
the register colouring has already occurred then, use a hard-coded
|
||||||
|
register instead
|
||||||
|
|
||||||
|
Revision 1.115 2003/07/20 20:39:20 jonas
|
||||||
* fixed newra bug due to the fact that we sometimes need a temp reg
|
* fixed newra bug due to the fact that we sometimes need a temp reg
|
||||||
when loading/storing to memory (base+index+offset is not possible)
|
when loading/storing to memory (base+index+offset is not possible)
|
||||||
and because a reference is often freed before it is last used, this
|
and because a reference is often freed before it is last used, this
|
||||||
|
Loading…
Reference in New Issue
Block a user