diff --git a/compiler/ghci/ByteCodeAsm.lhs b/compiler/ghci/ByteCodeAsm.lhs index 1a99096a9bd1f56dae5ef6210c0dc604701ce21e..5980810f88fcbe8c1b2191b336ac7aeac8e4fd89 100644 --- a/compiler/ghci/ByteCodeAsm.lhs +++ b/compiler/ghci/ByteCodeAsm.lhs @@ -174,7 +174,7 @@ mkBitmapArray bsize bitmap mkInstrArray :: Word16 -> [Word16] -> UArray Word16 Word16 mkInstrArray n_insns asm_insns - = listArray (0, n_insns) (fromIntegral n_insns : asm_insns) + = listArray (0, n_insns) (n_insns : asm_insns) -- instrs nonptrs ptrs type AsmState = (SizedSeq Word16, diff --git a/compiler/ghci/ByteCodeGen.lhs b/compiler/ghci/ByteCodeGen.lhs index 8a4b5e29a959368906745aa90192d046e4745e65..4ec80438519176c2fa89ab6556b4baf18b4b5da9 100644 --- a/compiler/ghci/ByteCodeGen.lhs +++ b/compiler/ghci/ByteCodeGen.lhs @@ -438,7 +438,7 @@ schemeE d s p (AnnLet binds (_,body)) compile_bind d' fvs x rhs size arity off = do bco <- schemeR fvs (x,rhs) - build_thunk (fromIntegral d') fvs size bco off arity + build_thunk d' fvs size bco off arity compile_binds = [ compile_bind d' fvs x rhs size arity n @@ -1203,7 +1203,7 @@ pushAtom d p (AnnVar v) = return (unitOL (PUSH_PRIMOP primop), 1) | Just d_v <- lookupBCEnv_maybe p v -- v is a local variable - = let l = d - fromIntegral d_v + sz - 2 + = let l = d - d_v + sz - 2 in return (toOL (genericReplicate sz (PUSH_L l)), sz) -- d - d_v the number of words between the TOS -- and the 1st slot of the object