projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added an SRT to each CmmCall and added the current SRT to the CgMonad
[ghc-hetmet.git]
/
compiler
/
nativeGen
/
MachCodeGen.hs
diff --git
a/compiler/nativeGen/MachCodeGen.hs
b/compiler/nativeGen/MachCodeGen.hs
index
792bbce
..
dc79d95
100644
(file)
--- a/
compiler/nativeGen/MachCodeGen.hs
+++ b/
compiler/nativeGen/MachCodeGen.hs
@@
-29,6
+29,7
@@
import PprCmm ( pprExpr )
import Cmm
import MachOp
import CLabel
import Cmm
import MachOp
import CLabel
+import ClosureInfo ( C_SRT(..) )
-- The rest:
import StaticFlags ( opt_PIC )
-- The rest:
import StaticFlags ( opt_PIC )
@@
-119,7
+120,7
@@
stmtToInstrs stmt = case stmt of
| otherwise -> assignMem_IntCode kind addr src
where kind = cmmExprRep src
| otherwise -> assignMem_IntCode kind addr src
where kind = cmmExprRep src
- CmmCall target result_regs args
+ CmmCall target result_regs args _
-> genCCall target result_regs args
CmmBranch id -> genBranch id
-> genCCall target result_regs args
CmmBranch id -> genBranch id
@@
-3181,13
+3182,13
@@
outOfLineFloatOp mop res args
if localRegRep res == F64
then
if localRegRep res == F64
then
- stmtToInstrs (CmmCall target [(res,FloatHint)] args)
+ stmtToInstrs (CmmCall target [(res,FloatHint)] args NoC_SRT)
else do
uq <- getUniqueNat
let
tmp = LocalReg uq F64 KindNonPtr
-- in
else do
uq <- getUniqueNat
let
tmp = LocalReg uq F64 KindNonPtr
-- in
- code1 <- stmtToInstrs (CmmCall target [(tmp,FloatHint)] args)
+ code1 <- stmtToInstrs (CmmCall target [(tmp,FloatHint)] args NoC_SRT)
code2 <- stmtToInstrs (CmmAssign (CmmLocal res) (CmmReg (CmmLocal tmp)))
return (code1 `appOL` code2)
where
code2 <- stmtToInstrs (CmmAssign (CmmLocal res) (CmmReg (CmmLocal tmp)))
return (code1 `appOL` code2)
where