X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmNode.hs;h=e67321c0b0fd462349ddddf282012ea28b248009;hb=dcc7b25a12eb07285a0b717b43ce62feb1f7dae1;hp=93564ac946a0a5df560e28dac63d596d8714258c;hpb=463bbe95172eba825434b7a706040708797c08af;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)