mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-09 17:06:04 +02:00
* fix allocation of threadvar parameter
This commit is contained in:
parent
75cb52213f
commit
c6f0a5fb0e
@ -141,7 +141,6 @@ implementation
|
|||||||
objectlibrary.getlabel(endrelocatelab);
|
objectlibrary.getlabel(endrelocatelab);
|
||||||
{ make sure hregister can't allocate the register necessary for the parameter }
|
{ make sure hregister can't allocate the register necessary for the parameter }
|
||||||
paraloc1:=paramanager.getintparaloc(pocall_default,1);
|
paraloc1:=paramanager.getintparaloc(pocall_default,1);
|
||||||
paramanager.allocparaloc(exprasmlist,paraloc1);
|
|
||||||
hregister:=rg.getaddressregister(exprasmlist);
|
hregister:=rg.getaddressregister(exprasmlist);
|
||||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata('FPC_THREADVAR_RELOCATE'),0);
|
reference_reset_symbol(href,objectlibrary.newasmsymboldata('FPC_THREADVAR_RELOCATE'),0);
|
||||||
cg.a_load_ref_reg(exprasmlist,OS_ADDR,OS_ADDR,href,hregister);
|
cg.a_load_ref_reg(exprasmlist,OS_ADDR,OS_ADDR,href,hregister);
|
||||||
@ -149,6 +148,7 @@ implementation
|
|||||||
cg.a_cmp_const_reg_label(exprasmlist,OS_ADDR,OC_EQ,0,hregister,norelocatelab);
|
cg.a_cmp_const_reg_label(exprasmlist,OS_ADDR,OC_EQ,0,hregister,norelocatelab);
|
||||||
{ don't save the allocated register else the result will be destroyed later }
|
{ don't save the allocated register else the result will be destroyed later }
|
||||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname),0);
|
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname),0);
|
||||||
|
paramanager.allocparaloc(exprasmlist,paraloc1);
|
||||||
cg.a_param_ref(exprasmlist,OS_ADDR,href,paraloc1);
|
cg.a_param_ref(exprasmlist,OS_ADDR,href,paraloc1);
|
||||||
paramanager.freeparaloc(exprasmlist,paraloc1);
|
paramanager.freeparaloc(exprasmlist,paraloc1);
|
||||||
r:=rg.getabtregisterint(exprasmlist,OS_ADDR);
|
r:=rg.getabtregisterint(exprasmlist,OS_ADDR);
|
||||||
@ -921,7 +921,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.86 2003-09-28 17:55:03 peter
|
Revision 1.87 2003-09-28 21:46:18 peter
|
||||||
|
* fix allocation of threadvar parameter
|
||||||
|
|
||||||
|
Revision 1.86 2003/09/28 17:55:03 peter
|
||||||
* parent framepointer changed to hidden parameter
|
* parent framepointer changed to hidden parameter
|
||||||
* tloadparentfpnode added
|
* tloadparentfpnode added
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user