X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=inline;f=compiler%2Fcmm%2FCmmInfo.hs;h=017efe47f57604e738c32579354e68bcf81d676b;hb=263a30f1db8fc4f5b6cecc26176c6f881807e348;hp=78ff5af0cafd365400f21213daede81c68e04fd2;hpb=1f8efd5d6214c490ef4942134abf5de9f468d29c;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmInfo.hs b/compiler/cmm/CmmInfo.hs index 78ff5af..017efe4 100644 --- a/compiler/cmm/CmmInfo.hs +++ b/compiler/cmm/CmmInfo.hs @@ -165,8 +165,8 @@ mkInfoTableAndCode info_lbl std_info extra_bits entry_lbl args blocks | otherwise -- Separately emit info table (with the function entry = -- point as first entry) and the entry code - [mkDataLits info_lbl (CmmLabel entry_lbl : std_info ++ extra_bits), - CmmProc [] entry_lbl args blocks] + [CmmProc [] entry_lbl args blocks, + mkDataLits info_lbl (CmmLabel entry_lbl : std_info ++ extra_bits)] mkSRTLit :: CLabel -> C_SRT @@ -214,7 +214,9 @@ mkLiveness uniq live = mkBits (reg:regs) = take sizeW bits ++ mkBits regs where sizeW = case reg of Nothing -> 1 - Just r -> machRepByteWidth (localRegRep r) `quot` wORD_SIZE + Just r -> (machRepByteWidth (localRegRep r) + wORD_SIZE - 1) + `quot` wORD_SIZE + -- number of words, rounded up bits = repeat $ is_non_ptr reg -- True <=> Non Ptr is_non_ptr Nothing = True