[GHC] #16258: PowerPC Big-Endian: ArithInt16, ArithInt8, ArithWord16, and ArithWord8 fail
GHC
ghc-devs at haskell.org
Mon Mar 4 18:51:02 UTC 2019
#16258: PowerPC Big-Endian: ArithInt16, ArithInt8, ArithWord16, and ArithWord8 fail
-------------------------------------+-------------------------------------
Reporter: trommler | Owner: (none)
Type: bug | Status: patch
Priority: normal | Milestone: 8.10.1
Component: Compiler | Version: 8.7
Resolution: | Keywords: Big-endian
Operating System: Unknown/Multiple | Architecture: powerpc64
Type of failure: Incorrect result | Test Case:
at runtime | primops/should_run/ArithInt16,
| primops/should_run/ArithWord16,
| primops/should_run/ArithWord8,
| primops/should_run/ArithInt8
Blocked By: | Blocking:
Related Tickets: #16222 | Differential Rev(s):
Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/286
-------------------------------------+-------------------------------------
Comment (by Marge Bot <ben+marge-bot@…>):
In [changeset:"af7b0fdb64ad1c57f5829e8bd89e8e0fa96b11d2/ghc"
af7b0fdb/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="af7b0fdb64ad1c57f5829e8bd89e8e0fa96b11d2"
Cmm: Promote stack arguments to word size
Smaller than word size integers must be promoted to word size
when passed on the stack. While on little endian systems we can
get away with writing a small integer to a word size stack slot
and read it as a word ignoring the upper bits, on big endian
systems a small integer write ends up in the most significant
bits and a word size read that ignores the upper bits delivers
a random value.
On little endian systems a smaller than word size write to
the stack might be more efficient but that decision is
system specific and should be done as an optimization in the
respective backends.
Fixes #16258
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16258#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list