nativeGen.PPC: Fix shift arith. right > 31 bits
authorPeter Trommler <ptrommler@acm.org>
Wed, 11 Nov 2015 11:32:19 +0000 (12:32 +0100)
committerBen Gamari <ben@smart-cactus.org>
Wed, 11 Nov 2015 11:32:33 +0000 (12:32 +0100)
commitfb0d5120d383324c6934144b938525378e3ade75
treeb01c3b34f7b342efcd471c0d5a5db75fe9d3eae2
parentbadf5d54907a5a5e9224c44310f991a52379b4c1
nativeGen.PPC: Fix shift arith. right > 31 bits

Arithmetic right shifts of more than 31 bits set all bits to
the sign bit on PowerPC. iThe assembler does not allow shift
amounts larger than 32 so do an arithemetic right shift of 31
bit instead.

Fixes #10870

Test Plan: validate (especially on powerpc)

Reviewers: austin, erikd, bgamari

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1459

GHC Trac Issues: #10870
compiler/nativeGen/PPC/Ppr.hs
testsuite/tests/codeGen/should_run/T10870.hs
testsuite/tests/codeGen/should_run/T10870.stdout