Cmm: Promote stack arguments to word size
authorPeter Trommler <ptrommler@acm.org>
Thu, 31 Jan 2019 08:43:08 +0000 (09:43 +0100)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Sun, 17 Feb 2019 03:49:09 +0000 (22:49 -0500)
commitaf7b0fdb64ad1c57f5829e8bd89e8e0fa96b11d2
treec21954e288370a6ae81602480121ae6fdc8f72ef
parent69ebf5cb4592b4c89e268937ef7eb96f7c9d4532
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
compiler/cmm/MkGraph.hs