Cmm: Promote stack arguments to word size
authorPeter Trommler <ptrommler@acm.org>
Thu, 31 Jan 2019 08:43:08 +0000 (09:43 +0100)
committerBen Gamari <ben@smart-cactus.org>
Wed, 13 Mar 2019 20:31:52 +0000 (16:31 -0400)
commitfee2c58d73dfc8d32c0982c81dfaf5ecf5337b66
tree0d3f092bfab4d53665186a018041e3e5174d46a9
parenteda76b1357cb5a179a2c5c5b34e71878cc09b122
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

(cherry picked from commit af7b0fdb64ad1c57f5829e8bd89e8e0fa96b11d2)
compiler/cmm/MkGraph.hs