[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