powerpc: fix and enable shared libraries by default on linux
authorSergei Trofimovich <siarheit@google.com>
Sun, 14 Dec 2014 14:30:12 +0000 (14:30 +0000)
committerSergei Trofimovich <siarheit@google.com>
Sun, 14 Dec 2014 14:30:12 +0000 (14:30 +0000)
commitfa31e8f4a0f853848d96549a429083941877bf8d
treec45f86f090dd27aae6dbe522336ab6e74e13fbb4
parentef7eb8f30532c8f85f05b318c85c7d819f61d715
powerpc: fix and enable shared libraries by default on linux

Summary:
And fix things all the way down to it. Namely:
    - remove 'r30' from free registers, it's an .LCTOC1 register
      for gcc. generated .plt stubs expect it to be initialised.
    - fix PicBase computation, which originally forgot to use 'tmp'
      reg in 'initializePicBase_ppc.fetchPC'
    - mark 'ForeighTarget's as implicitly using 'PicBase' register
      (see comment for details)
    - add 64-bit MO_Sub and test on alloclimit3/4 regtests
    - fix dynamic label offsets to match with .LCTOC1 offset

Signed-off-by: Sergei Trofimovich <siarheit@google.com>
Test Plan: validate passes equal amount of vanilla/dyn tests

Reviewers: simonmar, erikd, austin

Reviewed By: erikd, austin

Subscribers: carter, thomie

Differential Revision: https://phabricator.haskell.org/D560

GHC Trac Issues: #8024, #9831
compiler/cmm/CLabel.hs
compiler/nativeGen/PIC.hs
compiler/nativeGen/PPC/CodeGen.hs
compiler/nativeGen/PPC/Instr.hs
compiler/nativeGen/PPC/Ppr.hs
compiler/nativeGen/PPC/Regs.hs
includes/CodeGen.Platform.hs
mk/config.mk.in