浏览代码

* i386 PIC: Do not force EBX as a GOT register if tf_section_threadvars is not set. Actually forcing EBX here is a bad idea anyway.

git-svn-id: trunk@41463 -
yury 6 年之前
父节点
当前提交
039aee9568
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      compiler/i386/cpupi.pas

+ 4 - 1
compiler/i386/cpupi.pas

@@ -100,8 +100,11 @@ unit cpupi;
       begin
         if (cs_create_pic in current_settings.moduleswitches) then
           begin
-            if pi_uses_threadvar in flags then
+            if (pi_uses_threadvar in flags) and (tf_section_threadvars in target_info.flags) then
               begin
+                { FIXME: It is better to use an imaginary register for GOT and
+                  if EBX is needed for some reason just allocate EBX and
+                  copy GOT into it before its usage. }
                 cg.getcpuregister(list,NR_EBX);
                 got := NR_EBX;
               end