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

git at git.haskell.org git at git.haskell.org
Tue Oct 6 10:56:08 UTC 2015


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

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

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

commit e22d7dc434b64709a4b19b11f2e0a41676c04035
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.


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

e22d7dc434b64709a4b19b11f2e0a41676c04035
 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 e22d7dc434b64709a4b19b11f2e0a41676c04035


More information about the ghc-commits mailing list