瀏覽代碼

+ store pic references in registers if possible

florian 1 年之前
父節點
當前提交
70d2f81e5e
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      compiler/optcse.pas

+ 2 - 1
compiler/optcse.pas

@@ -606,7 +606,8 @@ unit optcse;
     function CSEOnReference(n : tnode) : Boolean;
     function CSEOnReference(n : tnode) : Boolean;
       begin
       begin
         Result:=(n.nodetype=loadn) and (tloadnode(n).symtableentry.typ=staticvarsym)
         Result:=(n.nodetype=loadn) and (tloadnode(n).symtableentry.typ=staticvarsym)
-          and ((vo_is_thread_var in tstaticvarsym(tloadnode(n).symtableentry).varoptions)
+          and ((vo_is_thread_var in tstaticvarsym(tloadnode(n).symtableentry).varoptions) or
+            (cs_create_pic in current_settings.moduleswitches)
 {$if defined(aarch64)}
 {$if defined(aarch64)}
             or (not(tabstractvarsym(tloadnode(n).symtableentry).is_regvar(false)))
             or (not(tabstractvarsym(tloadnode(n).symtableentry).is_regvar(false)))
 {$endif defined(aarch64)}
 {$endif defined(aarch64)}