[commit: ghc] ghc-7.10: nativeGen PPC: fix > 16 bit offsets in stack handling (4093e6d)

git at git.haskell.org git at git.haskell.org
Thu Oct 22 15:07:38 UTC 2015


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

On branch  : ghc-7.10
Link       : http://ghc.haskell.org/trac/ghc/changeset/4093e6da17449ca9c7f8d65ec240aba01f8d3230/ghc

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

commit 4093e6da17449ca9c7f8d65ec240aba01f8d3230
Author: Erik de Castro Lopo <erikd at mega-nerd.com>
Date:   Sat Oct 3 11:25:46 2015 +1000

    nativeGen PPC: fix > 16 bit offsets in stack handling
    
    Back port of Peter Trommler's patch from master (19dae027cb) to the
    7.10 branch. Peter's commit does not apply to the 7.10 branch because
    PowerPC64 was added to master after the 7.10 branch was started.
    
    Comments from the original commit:
    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.


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

4093e6da17449ca9c7f8d65ec240aba01f8d3230
 compiler/nativeGen/PPC/Instr.hs | 27 ++++++++++++++++++++-------
 compiler/nativeGen/PPC/Ppr.hs   | 33 +++++++++++++++++++++++++++++++++
 compiler/nativeGen/PPC/Regs.hs  | 12 +++++++++++-
 includes/CodeGen.Platform.hs    |  7 +++++--
 4 files changed, 69 insertions(+), 10 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 4093e6da17449ca9c7f8d65ec240aba01f8d3230


More information about the ghc-commits mailing list