summaryrefslogtreecommitdiff
path: root/compiler/cmm/Cmm.hs
diff options
context:
space:
mode:
authordias@cs.tufts.edu <unknown>2009-09-18 19:07:53 +0000
committerdias@cs.tufts.edu <unknown>2009-09-18 19:07:53 +0000
commit787b08bdea84cca4bf9490d87c059453bffc5ad2 (patch)
tree2716161b7fc6c951e6d572c6356defae08073f72 /compiler/cmm/Cmm.hs
parente4caa74b6c809cd17c5d1f7d472b9a47b2ea6f1c (diff)
downloadhaskell-787b08bdea84cca4bf9490d87c059453bffc5ad2.tar.gz
Keep Touch'd variables live through the back end
When we used derived pointers into the middle of an object, we need to keep the pointer to the start of the object live. We use a "fat machine instruction" with the primitive MO_Touch to propagate this information through the back end.
Diffstat (limited to 'compiler/cmm/Cmm.hs')
-rw-r--r--compiler/cmm/Cmm.hs1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/cmm/Cmm.hs b/compiler/cmm/Cmm.hs
index 4b18e46cdf..c48269ecf5 100644
--- a/compiler/cmm/Cmm.hs
+++ b/compiler/cmm/Cmm.hs
@@ -384,6 +384,7 @@ data CallishMachOp
| MO_F32_Exp
| MO_F32_Sqrt
| MO_WriteBarrier
+ | MO_Touch -- Keep variables live (when using interior pointers)
deriving (Eq, Show)
pprCallishMachOp :: CallishMachOp -> SDoc