summaryrefslogtreecommitdiff
path: root/compiler/GHC/Cmm
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-08-05 19:24:10 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-08-07 08:35:21 -0400
commit15b36de030ecdd60897bc7a6a02bdeabd0825be4 (patch)
tree6d1eb105b0b14840dfa133882d63f105408bf10b /compiler/GHC/Cmm
parent6402c1240d5bd768b8fe8b4368413932bedbe107 (diff)
downloadhaskell-15b36de030ecdd60897bc7a6a02bdeabd0825be4.tar.gz
nativeGen: One approach to fix #18527
Previously the code generator could produce corrupt C call sequences due to register overlap between MachOp lowerings and the platform's calling convention. We fix this using a hack described in Note [Evaluate C-call arguments before placing in destination registers].
Diffstat (limited to 'compiler/GHC/Cmm')
-rw-r--r--compiler/GHC/Cmm/MachOp.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/GHC/Cmm/MachOp.hs b/compiler/GHC/Cmm/MachOp.hs
index 077f663161..558cb13a7e 100644
--- a/compiler/GHC/Cmm/MachOp.hs
+++ b/compiler/GHC/Cmm/MachOp.hs
@@ -45,6 +45,9 @@ native code generators to handle.
Most operations are parameterised by the 'Width' that they operate on.
Some operations have separate signed and unsigned versions, and float
and integer versions.
+
+Note that there are variety of places in the native code generator where we
+assume that the code produced for a MachOp does not introduce new blocks.
-}
data MachOp