[project @ 2002-09-13 15:02:25 by simonpj]
[ghc-hetmet.git] / ghc / compiler / nativeGen / MachMisc.lhs
index ad71188..70d7d06 100644 (file)
@@ -53,11 +53,13 @@ import PrimRep              ( PrimRep(..) )
 import Stix            ( StixStmt(..), StixExpr(..), StixReg(..), 
                           CodeSegment, DestInfo(..) )
 import Panic           ( panic )
-import GlaExts
 import Outputable      ( pprPanic, ppr, showSDoc )
-import IOExts          ( trace )
 import Config           ( cLeadingUnderscore )
 import FastTypes
+import FastString
+
+import GLAEXTS
+import TRACE           ( trace )
 
 import Maybe           ( catMaybes )
 \end{code}
@@ -295,15 +297,7 @@ primRepToSize WordRep          = IF_ARCH_alpha(Q,  IF_ARCH_i386(L,  IF_ARCH_sparc(W,
 primRepToSize AddrRep      = IF_ARCH_alpha(Q,  IF_ARCH_i386(L,  IF_ARCH_sparc(W,  )))
 primRepToSize FloatRep     = IF_ARCH_alpha(TF, IF_ARCH_i386(F,  IF_ARCH_sparc(F,  )))
 primRepToSize DoubleRep            = IF_ARCH_alpha(TF, IF_ARCH_i386(DF, IF_ARCH_sparc(DF, )))
-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 PrimPtrRep    = 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 BCORep        = 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 StableNameRep = 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,  )))
 
 primRepToSize Word64Rep     = primRepToSize_fail "Word64Rep"
 primRepToSize Int64Rep      = primRepToSize_fail "Int64Rep"
@@ -314,7 +308,6 @@ primRepToSize_fail str
             ++ "Workaround: use -fvia-C.\n\t" 
             ++ "Perhaps you should report it as a GHC bug,\n\t" 
             ++ "to glasgow-haskell-bugs@haskell.org.")
-
 \end{code}
 
 %************************************************************************
@@ -328,7 +321,7 @@ mostly all of @Instr@ is machine-specific.
 
 \begin{code}
 data Instr
-  = COMMENT FAST_STRING                -- comment pseudo-op
+  = COMMENT FastString         -- comment pseudo-op
   | SEGMENT CodeSegment                -- {data,text} segment pseudo-op
   | LABEL   CLabel             -- global label pseudo-op
   | ASCII   Bool               -- True <=> needs backslash conversion
@@ -572,7 +565,7 @@ but we don't care, since it doesn't get used much.  We hope.
 
              | JMP           DestInfo Operand -- possible dests, target
              | JXX           Cond CLabel -- target
-             | CALL          Imm
+             | CALL          (Either Imm Reg)
 
 -- Other things.
 
@@ -677,7 +670,7 @@ is_G_instr instr
              | BF            Cond Bool Imm -- cond, annul?, target
 
              | JMP           DestInfo MachRegsAddr      -- target
-             | CALL          Imm Int Bool -- target, args, terminal
+             | CALL          (Either Imm Reg) Int Bool -- target, args, terminal
 
 data RI = RIReg Reg
        | RIImm Imm