[project @ 2000-06-29 13:08:59 by simonmar]
[ghc-hetmet.git] / ghc / compiler / nativeGen / MachMisc.lhs
index ddbc1fd..b9c69e7 100644 (file)
@@ -20,8 +20,6 @@ module MachMisc (
        fmtAsmLbl,
        exactLog2,
 
-        stixFor_stdout, stixFor_stderr, stixFor_stdin,
-
        Instr(..),  IF_ARCH_i386(Operand(..) COMMA,)
        Cond(..),
        Size(..),
@@ -33,7 +31,7 @@ module MachMisc (
 #if i386_TARGET_ARCH
 #endif
 #if sparc_TARGET_ARCH
-       , RI(..), riZero
+       RI(..), riZero
 #endif
     ) where
 
@@ -43,7 +41,7 @@ module MachMisc (
 import AbsCSyn         ( MagicId(..) ) 
 import AbsCUtils       ( magicIdPrimRep )
 import CLabel           ( CLabel, isAsmTemp )
-import Const           ( mkMachInt, Literal(..) )
+import Literal         ( mkMachInt, Literal(..) )
 import MachRegs                ( stgReg, callerSaves, RegLoc(..),
                          Imm(..), Reg(..), 
                          MachRegsAddr(..)
@@ -55,6 +53,7 @@ import Panic          ( panic )
 import Char            ( isDigit )
 import GlaExts         ( word2Int#, int2Word#, shiftRL#, and#, (/=#) )
 import Outputable      ( text )
+import IOExts          ( trace )
 \end{code}
 
 \begin{code}
@@ -79,53 +78,6 @@ fmtAsmLbl s
      ,{-otherwise-}
      '.':'L':s
      )
-
----------------------------
-stixFor_stdout, stixFor_stderr, stixFor_stdin :: StixTree
-#if i386_TARGET_ARCH
--- Linux glibc 2 / libc6
-stixFor_stdout  = StInd PtrRep (StLitLbl (text "stdout"))
-stixFor_stderr  = StInd PtrRep (StLitLbl (text "stderr"))
-stixFor_stdin   = StInd PtrRep (StLitLbl (text "stdin"))
-#endif
-
-#if alpha_TARGET_ARCH
-stixFor_stdout = error "stixFor_stdout: not implemented for Alpha"
-stixFor_stderr = error "stixFor_stderr: not implemented for Alpha"
-stixFor_stdin  = error "stixFor_stdin: not implemented for Alpha"
-#endif
-
-#if sparc_TARGET_ARCH
-stixFor_stdout = error "stixFor_stdout: not implemented for Sparc"
-stixFor_stderr = error "stixFor_stderr: not implemented for Sparc"
-stixFor_stdin  = error "stixFor_stdin: not implemented for Sparc"
-#endif
-
-#if 0
-Here's some old stuff from which it shouldn't be too hard to
-implement the above for Alpha/Sparc.
-
-cvtLitLit :: String -> String
-
---
--- Rather than relying on guessing, use FILE_SIZE to compute the
--- _iob offsets.
---
-cvtLitLit "stdin"  = IF_ARCH_alpha("_iob+0" {-probably OK...-}
-                   ,IF_ARCH_i386("stdin"
-                   ,IF_ARCH_sparc("__iob+0x0"{-probably OK...-}
-                   ,)))
-
-cvtLitLit "stdout" = IF_ARCH_alpha("_iob+"++show (``FILE_SIZE''::Int)
-                   ,IF_ARCH_i386("stdout"
-                   ,IF_ARCH_sparc("__iob+"++show (``FILE_SIZE''::Int)
-                   ,)))
-cvtLitLit "stderr" = IF_ARCH_alpha("_iob+"++show (2*(``FILE_SIZE''::Int))
-                   ,IF_ARCH_i386("stderr"
-                   ,IF_ARCH_sparc("__iob+"++show (2*(``FILE_SIZE''::Int))
-                   ,)))
-#endif
-
 \end{code}
 
 % ----------------------------------------------------------------
@@ -330,8 +282,12 @@ primRepToSize DoubleRep        = IF_ARCH_alpha( TF, IF_ARCH_i386( DF,IF_ARCH_sparc(
 primRepToSize ArrayRep     = IF_ARCH_alpha( Q,  IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
 primRepToSize ByteArrayRep  = IF_ARCH_alpha( Q,         IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
 primRepToSize WeakPtrRep    = IF_ARCH_alpha( Q,         IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
-primRepToSize ForeignObjRep  = IF_ARCH_alpha( Q, IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
+primRepToSize ForeignObjRep = IF_ARCH_alpha( Q,  IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
 primRepToSize StablePtrRep  = IF_ARCH_alpha( Q,         IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
+primRepToSize ThreadIdRep   = IF_ARCH_alpha( Q,         IF_ARCH_i386( L, IF_ARCH_sparc( W ,)))
+-- SUP: Wrong!!! Only for testing the rest of the NCG
+primRepToSize Word64Rep     = trace "primRepToSize: Word64Rep not handled" B
+primRepToSize Int64Rep      = trace "primRepToSize: Int64Rep not handled"  B
 \end{code}
 
 %************************************************************************
@@ -680,7 +636,7 @@ riZero :: RI -> Bool
 
 riZero (RIImm (ImmInt 0))          = True
 riZero (RIImm (ImmInteger 0))      = True
-riZero (RIReg (FixedReg ILIT(0)))   = True
+riZero (RIReg (RealReg 0))          = True
 riZero _                           = False
 
 #endif {- sparc_TARGET_ARCH -}