projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2001-03-23 16:36:20 by simonmar]
[ghc-hetmet.git]
/
ghc
/
compiler
/
main
/
CodeOutput.lhs
diff --git
a/ghc/compiler/main/CodeOutput.lhs
b/ghc/compiler/main/CodeOutput.lhs
index
fc4cd8d
..
3ff665e
100644
(file)
--- a/
ghc/compiler/main/CodeOutput.lhs
+++ b/
ghc/compiler/main/CodeOutput.lhs
@@
-9,6
+9,7
@@
module CodeOutput( codeOutput ) where
#include "HsVersions.h"
#ifndef OMIT_NATIVE_CODEGEN
#include "HsVersions.h"
#ifndef OMIT_NATIVE_CODEGEN
+import UniqSupply ( mkSplitUniqSupply )
import AsmCodeGen ( nativeCodeGen )
#endif
import AsmCodeGen ( nativeCodeGen )
#endif
@@
-19,6
+20,7
@@
import IlxGen ( ilxGen )
import JavaGen ( javaGen )
import qualified PrintJava
import JavaGen ( javaGen )
import qualified PrintJava
+import DriverState ( v_HCHeader )
import TyCon ( TyCon )
import Id ( Id )
import CoreSyn ( CoreBind )
import TyCon ( TyCon )
import Id ( Id )
import CoreSyn ( CoreBind )
@@
-32,9
+34,9
@@
import ErrUtils ( dumpIfSet_dyn, showPass )
import Outputable
import CmdLineOpts ( DynFlags, HscLang(..), dopt_OutName )
import TmpFiles ( newTempName )
import Outputable
import CmdLineOpts ( DynFlags, HscLang(..), dopt_OutName )
import TmpFiles ( newTempName )
-import UniqSupply ( mkSplitUniqSupply )
-import IO ( IOMode(..), hClose, openFile, Handle )
+import IOExts
+import IO
\end{code}
\end{code}
@@
-74,7
+76,8
@@
codeOutput dflags mod_name tycons core_binds stg_binds
HscJava -> outputJava dflags filenm mod_name tycons core_binds
>> return stub_names
#ifdef ILX
HscJava -> outputJava dflags filenm mod_name tycons core_binds
>> return stub_names
#ifdef ILX
- HscILX -> outputIlx mod_name tycons stg_binds
+ HscILX -> outputIlx dflags filenm mod_name tycons stg_binds
+ >> return stub_names
#endif
}
#endif
}
@@
-97,7
+100,10
@@
doOutput filenm io_action
\begin{code}
outputC dflags filenm flat_absC
= do dumpIfSet_dyn dflags Opt_D_dump_realC "Real C" (dumpRealC flat_absC)
\begin{code}
outputC dflags filenm flat_absC
= do dumpIfSet_dyn dflags Opt_D_dump_realC "Real C" (dumpRealC flat_absC)
- doOutput filenm (\ h -> writeRealC h flat_absC)
+ header <- readIORef v_HCHeader
+ doOutput filenm $ \ h -> do
+ hPutStr h header
+ writeRealC h flat_absC
\end{code}
\end{code}
@@
-155,8
+161,8
@@
outputJava dflags filenm mod tycons core_binds
\begin{code}
#ifdef ILX
\begin{code}
#ifdef ILX
-outputIlx mod tycons stg_binds
- = doOutput (\ f -> printForC f pp_ilx)
+outputIlx dflags filename mod tycons stg_binds
+ = doOutput filename (\ f -> printForC f pp_ilx)
where
pp_ilx = ilxGen mod tycons stg_binds
#endif
where
pp_ilx = ilxGen mod tycons stg_binds
#endif