projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Keep Touch'd variables live through the back end
[ghc-hetmet.git]
/
compiler
/
codeGen
/
StgCmmPrim.hs
diff --git
a/compiler/codeGen/StgCmmPrim.hs
b/compiler/codeGen/StgCmmPrim.hs
index
e5ff8f7
..
3318ec9
100644
(file)
--- a/
compiler/codeGen/StgCmmPrim.hs
+++ b/
compiler/codeGen/StgCmmPrim.hs
@@
-232,8
+232,8
@@
emitPrimOp [res] SizeofMutableByteArrayOp [arg]
-- #define touchzh(o) /* nothing */
-- #define touchzh(o) /* nothing */
-emitPrimOp [] TouchOp [_arg]
- = nopC
+emitPrimOp res@[] TouchOp args@[_arg]
+ = do emitPrimCall res MO_Touch args
-- #define byteArrayContentszh(r,a) r = BYTE_ARR_CTS(a)
emitPrimOp [res] ByteArrayContents_Char [arg]
-- #define byteArrayContentszh(r,a) r = BYTE_ARR_CTS(a)
emitPrimOp [res] ByteArrayContents_Char [arg]
@@
-413,9
+413,9
@@
emitPrimOp [res] op [arg]
= emit (mkAssign (CmmLocal res) $
CmmMachOp (mop rep wordWidth) [CmmMachOp (mop wordWidth rep) [arg]])
= emit (mkAssign (CmmLocal res) $
CmmMachOp (mop rep wordWidth) [CmmMachOp (mop wordWidth rep) [arg]])
-emitPrimOp [res] op args
+emitPrimOp r@[res] op args
| Just prim <- callishOp op
| Just prim <- callishOp op
- = do emitPrimCall res prim args
+ = do emitPrimCall r prim args
| Just mop <- translateOp op
= let stmt = mkAssign (CmmLocal res) (CmmMachOp mop args) in
| Just mop <- translateOp op
= let stmt = mkAssign (CmmLocal res) (CmmMachOp mop args) in