X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmNode.hs;fp=compiler%2Fcmm%2FCmmNode.hs;h=e67321c0b0fd462349ddddf282012ea28b248009;hb=8a0ab97b1daefb57b53d6cf08a01bd597d09e32d;hp=93564ac946a0a5df560e28dac63d596d8714258c;hpb=1fb38442d3a55ac92795aa6c5ed4df82011df724;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmNode.hs b/compiler/cmm/CmmNode.hs index 93564ac..e67321c 100644 --- a/compiler/cmm/CmmNode.hs +++ b/compiler/cmm/CmmNode.hs @@ -92,6 +92,8 @@ data CmmNode e x where A MidForeign call is used for *unsafe* foreign calls; a LastForeign call is used for *safe* foreign calls. Unsafe ones are easy: think of them as a "fat machine instruction". +In particular, they do *not* kill all live registers (there was a bit +of code in GHC that conservatively assumed otherwise.) Safe ones are trickier. A safe foreign call r = f(x)