[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