瀏覽代碼

Linux/PPC64: fix missing TOC loads

Routines loading a global symbol need the TOC register

(cherry picked from commit 2de72c854115908271912cd9b260a607c826eadb)
Jonas Maebe 3 年之前
父節點
當前提交
73e8d5b39e
共有 1 個文件被更改,包括 1 次插入0 次删除
  1. 1 0
      compiler/ppcgen/cgppc.pas

+ 1 - 0
compiler/ppcgen/cgppc.pas

@@ -1055,6 +1055,7 @@ unit cgppc;
            (assigned(ref.symbol) and
            (assigned(ref.symbol) and
             not assigned(ref.relsymbol)) then
             not assigned(ref.relsymbol)) then
           begin
           begin
+            include(current_procinfo.flags,pi_needs_got);
             tmpreg := load_got_symbol(list, ref.symbol.name, asmsym2indsymflags(ref.symbol));
             tmpreg := load_got_symbol(list, ref.symbol.name, asmsym2indsymflags(ref.symbol));
             if (ref.base = NR_NO) then
             if (ref.base = NR_NO) then
               ref.base := tmpreg
               ref.base := tmpreg