[project @ 2003-07-21 15:14:18 by ross]
[ghc-hetmet.git] / ghc / compiler / ghci / ByteCodeAsm.lhs
index 890b424..f067840 100644 (file)
@@ -29,6 +29,7 @@ import PrimOp         ( PrimOp )
 import PrimRep         ( PrimRep(..), isFollowableRep, is64BitRep )
 import Constants       ( wORD_SIZE )
 import FastString      ( FastString(..), unpackFS )
+import SMRep           ( StgWord )
 import FiniteMap
 import Outputable
 
@@ -171,11 +172,11 @@ assembleBCO (ProtoBCO nm instrs bitmap bsize arity origin malloced)
 
 mkBitmapArray :: Int -> [StgWord] -> UArray Int StgWord
 mkBitmapArray bsize bitmap
-  = listArray (0, 1 + length bitmap) (fromIntegral bsize : bitmap)
+  = listArray (0, length bitmap) (fromIntegral bsize : bitmap)
 
 mkInstrArray :: Int -> [Word16]        -> UArray Int Word16
 mkInstrArray n_insns asm_insns
-  = listArray (0, 1 + n_insns) (fromIntegral n_insns : asm_insns)
+  = listArray (0, n_insns) (fromIntegral n_insns : asm_insns)
 
 -- instrs nonptrs ptrs itbls
 type AsmState = (SizedSeq Word16, 
@@ -343,15 +344,15 @@ mkBits findLabel st proto_insns
           = do st_I1 <- addToSS st_I0 (getName dcon)
                return (sizeSS st_I0, (st_i0,st_l0,st_p0,st_I1))
 
-       literal st (MachLabel fs)  = litlabel st fs
-       literal st (MachWord w)    = int st (fromIntegral w)
-       literal st (MachInt j)     = int st (fromIntegral j)
-       literal st (MachFloat r)   = float st (fromRational r)
-       literal st (MachDouble r)  = double st (fromRational r)
-       literal st (MachChar c)    = int st c
-       literal st (MachInt64 ii)  = int64 st (fromIntegral ii)
-       literal st (MachWord64 ii) = int64 st (fromIntegral ii)
-       literal st other           = pprPanic "ByteCodeLink.literal" (ppr other)
+       literal st (MachLabel fs _) = litlabel st fs
+       literal st (MachWord w)     = int st (fromIntegral w)
+       literal st (MachInt j)      = int st (fromIntegral j)
+       literal st (MachFloat r)    = float st (fromRational r)
+       literal st (MachDouble r)   = double st (fromRational r)
+       literal st (MachChar c)     = int st c
+       literal st (MachInt64 ii)   = int64 st (fromIntegral ii)
+       literal st (MachWord64 ii)  = int64 st (fromIntegral ii)
+       literal st other            = pprPanic "ByteCodeLink.literal" (ppr other)
 
 
 push_alts WordRep   = bci_PUSH_ALTS_N