2
0
Эх сурвалжийг харах

nx86ld.pas, tx86loadnode:
* generate_threadvar_access: pass result of use_indirect_symbol() to RefAsmSymbol() to use an indirect access if necessary

git-svn-id: trunk@33283 -

svenbarth 9 жил өмнө
parent
commit
c4449fc5e6

+ 3 - 3
compiler/x86/nx86ld.pas

@@ -39,7 +39,7 @@ implementation
 
 
     uses
     uses
       cutils,verbose,systems,
       cutils,verbose,systems,
-      aasmtai,aasmdata,
+      aasmbase,aasmtai,aasmdata,
       cgutils,cgobj,
       cgutils,cgobj,
       symconst,symdef,symtable,
       symconst,symdef,symtable,
       cgbase,cpubase,parabase,paramgr;
       cgbase,cpubase,parabase,paramgr;
@@ -65,9 +65,9 @@ implementation
                 pd:=search_system_proc('fpc_tls_add');
                 pd:=search_system_proc('fpc_tls_add');
                 paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
                 paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
                 if not(vo_is_weak_external in gvs.varoptions) then
                 if not(vo_is_weak_external in gvs.varoptions) then
-                  reference_reset_symbol(href,current_asmdata.RefAsmSymbol(gvs.mangledname),0,sizeof(pint))
+                  reference_reset_symbol(href,current_asmdata.RefAsmSymbol(gvs.mangledname,AT_DATA,use_indirect_symbol(gvs)),0,sizeof(pint))
                 else
                 else
-                  reference_reset_symbol(href,current_asmdata.WeakRefAsmSymbol(gvs.mangledname),0,sizeof(pint));
+                  reference_reset_symbol(href,current_asmdata.WeakRefAsmSymbol(gvs.mangledname,AT_DATA),0,sizeof(pint));
                 cg.a_loadaddr_ref_cgpara(current_asmdata.CurrAsmList,href,paraloc1);
                 cg.a_loadaddr_ref_cgpara(current_asmdata.CurrAsmList,href,paraloc1);
                 paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
                 paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
                 paraloc1.done;
                 paraloc1.done;