[commit: ghc] master: nativeGen PPC: fix > 16 bit offsets in stack handling (b29f20e)

git at git.haskell.org git at git.haskell.org
Fri Oct 2 14:32:32 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/b29f20edb1ca7f1763ceb001e2bb2d5f2f11bec3/ghc

>---------------------------------------------------------------

commit b29f20edb1ca7f1763ceb001e2bb2d5f2f11bec3
Author: Peter Trommler <ptrommler at acm.org>
Date:   Fri Oct 2 15:48:30 2015 +0200

    nativeGen PPC: fix > 16 bit offsets in stack handling
    
    Implement access to spill slots at offsets larger than 16 bits.
    Also allocation and deallocation of spill slots was restricted to
    16 bit offsets. Now 32 bit offsets are supported on all PowerPC
    platforms.
    
    The implementation of 32 bit offsets requires more than one instruction
    but the native code generator wants one instruction. So we implement
    pseudo-instructions that are pretty printed into multiple assembly
    instructions.
    
    With pseudo-instructions for spill slot allocation and deallocation
    we can also implement handling of the back chain pointer according
    to the ELF ABIs.
    
    Test Plan: validate (especially on powerpc (32 bit))
    
    Reviewers: bgamari, austin, erikd
    
    Reviewed By: erikd
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1296
    
    GHC Trac Issues: #7830


>---------------------------------------------------------------

b29f20edb1ca7f1763ceb001e2bb2d5f2f11bec3
 compiler/nativeGen/PPC/Instr.hs | 39 ++++++++++++++++++++++++++++-----------
 compiler/nativeGen/PPC/Ppr.hs   | 33 +++++++++++++++++++++++++++++++++
 compiler/nativeGen/PPC/Regs.hs  | 14 ++++++++++++--
 includes/CodeGen.Platform.hs    | 18 +++++++++++++-----
 4 files changed, 86 insertions(+), 18 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc b29f20edb1ca7f1763ceb001e2bb2d5f2f11bec3


More information about the ghc-commits mailing list